Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5608001
  • 博文数量: 745
  • 博客积分: 10075
  • 博客等级: 上将
  • 技术积分: 7716
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-29 12:09
文章分类

全部博文(745)

文章存档

2019年(1)

2016年(1)

2010年(31)

2009年(88)

2008年(129)

2007年(155)

2006年(197)

2005年(143)

分类: Oracle

2010-01-19 21:39:32

前天按照《大话ORACLE RAC》一书中介绍RAC和STREAM相关章节的实验步骤在HP rx8640上搭建了类似的实验环境做实验,结果失败了。昨天跟着网上搜来的一篇《一步一步学ORACLE STREAM 》的文章以两个单实例搭建实验平台初获成功,晚上粗略研读了一下ORACLE的官方文档《Streams Concepts and Administration 》,无奈太过繁琐,没有耐心和勇气继续读下去。今天闲来无事,硬着头皮再次挑战单实例和RAC下的ORACLE STREAM实现,按照昨天的思路,居然成功了,心里真是高兴。
 
细想开来,其实单实例也好,RAC 也好,数据库始终只有一个,区别只是实例多少的不同,实际操作步骤还是大同小异的。这让我想起前段时间操作的ORACLE RAC数据库版本升级(从10.2.0.1升级到10.2.0.4),我执行了两次升级,第一次当然是顺利的,第二次升级失败那是必然的了,因为数据库只有一个,升级也只需要一次即可,再次升级就是画蛇添足。这里又联想起无论是参加ORACLE原厂OCP培训还是看到李丙洋的《涂抹ORACLE》里面都着重指出一个容易混淆的概念:实例是实例,数据库是数据库,如果混为一谈就不好了。我之所以犯错,归根结底还是对数据库的概念理解不够透彻。
 
ORACLE官方文档《concepts》第四十一页里面有一句话说得很清楚:
"An oracle database server consists of an oracle database and an oracle insance. Every time a database is started, a system global area(SGA) is allocated and oracle background processes are started. Then combination of the background processes and memory buffers is called an oracle instance."

这句话里面有两层意思,第一,数据库是由数据文件和实例两部分组成;第二,实例只是一组内存结构,由内存缓冲区和后台进程组成。我们常常对单个数据库进行操作,所以容易混淆数据库和实例的概念,认为实例就是数据库,数据库就是实例,实际根本不是这么回事。
 
理解了这个概念,然后再回过头来做实验,就相对比较容易了。其实无论是单实例数据库也好,ORACLE RAC也好(多实例数据库),只要认清了数据库只有一个,无论是升级也好,构建高可用性也好,按照单个节点的思路走下去就行。就比如说RAC 数据库升级,所不同的无非就是需要额外修改一下参数文件里面的个别参数,操作起来也挺简单的。基本概念很重要,这也是修房子的时候为什么要先打地基,地基打得牢,房子才盖得高,想想学技术也是这个道理。
 
下面言归正传,回到此次实验。
阅读(1889) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~