东方不败之半生求败:vmware+linux+oracle10g rac全过程(4) - 副节点,集群设置和故障处理

来源:百度文库 编辑:中财网 时间:2024/05/10 13:50:32
主节点设置完毕之后,下面来到副节点的设置。说点题外话,在没有看君三思《手把手教你用VMware在linux下安装oracle10g RAC》这篇文章的时候,我没有把握好顺序,也就是说没有按照先主后副的顺序来进行实验,完全没有想到可以在主节点配置完成之后克隆一个副节点出来,稍加修改,就成了一个完备的系统。我最初做实验的时候,同时配置两个虚拟机,同时安装两套linux操作系统。在安装操作系统的时候,我的电脑基本就不动了,CPU占用率居高不下。正常情况下两个小时就完工了,我同时安装两套操作系统用去了足足三个半小时,后来因为不符合要求还是其他什么原因,我又删去一个。这样的傻事我连续干了两次,在看到三思文章里面系统克隆大法的时候我心都要碎了,我想的是为什么没有早一些看到这篇美文。在即将隆重介绍的就是系统克隆大法之前再说点题外话,这个题外话尤为重要,因为这个地方卡壳,导致我重装系统三次有余,累计起来,我重装系统的次数已经达到了十次。不过也是在最后一次重装系统的时候,找到了其中的奥妙所在。先献上一副美图:这副图里面展示了三个文件夹,其中RAC1文件夹包含了主节点的配置文件、RAC2文件夹包含了副节点的配置文件(这个文件夹里面的内容实际是从RAC1里面克隆过来的)、raw_disk文件夹里面存放的便是裸设备文件。而在这之前实际存在的文件夹只有两个:RAC1和RAC2。至于raw_disk里面的文件是和RAC1里面的文件放置在一起的。自然,经过克隆之后,RAC2文件夹里面也有了裸设备文件。看上去很美,因为克隆把包括裸设备文件在内的所有文件都给弄过来了,但实际不是这么回事,这么做恰恰为之后创建共享磁盘这一实验步骤埋下了剧毒,具体原因写到创建共享磁盘的时候再点明,那样会印象更加深刻一些。这里先按照正确的方法往下做:1,关闭主节点(shutdown -hy 0掉linux操作系统),然后在和RAC1、raw_disk文件夹相同目录下创建目录RAC2,然后将RAC1目录下所有文件运用操作系统复制粘贴技术原模原样的给弄到RAC2下来:这里根据各自系统分配空间而定,因为我前期给用来创建linux操作系统的本地虚拟磁盘指定了25GB大小,所以复制的时候时间稍长,有七分钟左右。2,复制完毕之后,可以看到RAC2下的文件和RAC1无论大小以及文件名完全相同:3,使用文本编辑器打开RAC2下的vmx文件进行修改,将凡是命为RAC1的地方改为RAC2,如下图所示:这里需要更改的只有两处,改完之后我们退回到RAC2目录下,将RAC1.VMDK这个文件改为RAC2.VMDK:4,改完之后,我们在虚拟机中按照RAC2的路径对vmx文件做open操作,这样,另一个活生生的系统又出现在人民大众面前:5,点击绿色启动按钮进行对RAC2的启动,在弹出来的对话框中选择“CREATE”:6,启动到系统后,因为保留了RAC1的所有参数,所以我们要略做一些修改,首当其冲的,自然是系统名称,修改过程如下:7,然后将网卡的MAC地址修改为正确形式,首先通过ifconfig命令记录正确的网卡MAC地址,注意这个地方我们用ifconfig观察到的MAC地址是正确的,而存在于/etc/sysconfig/network-scripts目录下诸如ifcfg-eth0、ifcfg-eth1、ifcfg-eth2等文件下的MAC地址是错误的,我们要做的就是用ifconfig命令记录下来正确的MAC地址去替换ifcfg-ethx文件中错误的MAC地址:有一点要引起注意,在我们克隆过来的系统刚启动时,所有之前设置的网卡,不管是动态的、静态的,这个时候都会作为动态获取IP地址去获得一个和本机处于同一网段的IP地址,所以除了MAC地址之外,还需要我们将动态获得的IP地址还原为/etc/hosts文件中为RAC2定义的IP地址,然后重启网络,如下图所示:8,除此之外,还要切换到oracle用户下修改ORACLE_SID这个环境变量:9,值得一提的是,兴许有很多人会在这个过程中忽略一点,也包括我。这一点如非仔细观察不易发现,而忽略这一点导致的后果就是在启动系统到sendmail的时候会停留很久,短则三五分钟,长则十二、三分钟,让人误解系统死机。好心好意的重启系统,到这个地方又很自然的放慢了春天的脚步,这就很让人郁闷了。经过多次观察,我终于发现了症结所在。原来在系统启动到sendmail这个模块的时候会去检查环回地址loopback ip,如果这个地方设置有问题或者跟系统自身不符,那么就会花时间去不断的检测,检测到最后也没有结果系统就主动放弃,跳过这一环节去执行剩余的启动进程。这就是为什么系统久久停留在sendmail这里挥之不去的原因,弄清这点之后,这个问题也就迎刃而解了:

至此,副节点的设置完毕,我们需要做的,就是重启系统,让新的主机名、IP地址等生效。

下面开始配置clusterware:1,设置ssh设置ssh是整个实验过程不可或缺的环节,简单说就是配置主节点和副节点之间的信任机制,让两台机器能够相互通信。这点跟在三大unix平台hp/aix/solaris下建立.rhosts文件然后添加各节点IP地址跟主机名到文件中类似。首先在主节点RAC1上ping副节点RAC2上的不同网段地址看是否能ping通:2,在主节点上以oracle用户身份生成用户的公匙和私匙:3,在副节点RAC2上执行相同的操作,确保通信无阻:4,在主节点RAC1上执行以下操作:5,主节点上执行检验:要注意观察返回时间误差不要相差太大,否则需要执行时间同步。6,在副节点上执行类似操作:7,接下来要配置共享磁盘,这一步非常之关键,我很多次都在这里遭遇滑铁卢,但也因为碰到的、解决的问题的增多,这一步执行起来也越来越顺利。下面演示具体过程,首先在主节点上配置共享磁盘:8,在副节点RAC2上执行类似操作:9,在主节点RAC1上创建卷组VOL1/VOL2,分别对应/dev/sdd和/dev/sde:10,在主节点上配置,在副节点上扫描,如果能扫描出主节点上创建的VOL1/VOL2,那表示成功:到这里,clusterware的配置完成,下一节要花点时间介绍创建共享磁盘中可能遇到的不少问题以及解决方案。clusterware的配置在整个实验过程中是最为核心的步骤,而ASM磁盘的创建过程又是核心中的核心。如果这一步走对了,接下来就轻松很多。反之,如果这一步始终过不去,那不仅后面的实验没法进行,而且很打击人的积极性。我就在这一步踯躅了很长时间,因为所遭遇的故障久久无法解决,比如无法创建VOL1/VOL2的问题,比如在主节点上创建了VOL1/VOL2,但是在副节点上无法识别到的问题等等。还好,搜索引擎足够强大,很多问题我碰到的,人家也碰到了,而且也给出了解决方案,顺着一个个的解决方案总算是过了这一关,下面来具体探讨一下所遭遇的故障们。1,同样的,为了跟前面的文章首尾呼应,这里先贴出一副图:这幅图所透露出来的一个强烈的信息就是,裸设备文件和系统文件一定要隔离开,分别存放于不同的文件夹。为什么要这样做前面没有提,这里详细解释一下。我刚开始做实验的时候就是把系统文件跟裸设备文件全置放在一个文件夹内,到克隆操作系统的时候,这些文件也跟着一起到了副节点。到了创建共享磁盘的时候,潜伏的毒药就释放出来。比如我在RAC1上面创建了VOL1/VOL2,但是在RAC2上执行/etc/init.d/oracleasm scandisks后再执行/etc/init.d/oracleasm listdisks,没有任何显示,也就意味着在RAC2节点上识别不到RAC1节点上使用裸设备文件所创建的卷VOL1/VOL2。造成这种现象的原因是此刻在RAC1和RAC2之间已经不存在任何联系,大家各自为政。在RAC1中存在实验所需裸设备文件,但是在系统克隆阶段,这些裸设备文件又随之涌入到了RAC2中,成了RAC2所独有的裸设备。举个简单的例子,政府规定低保户可以享受每月500圆人民币的补贴用来维持生活,甲因为家境贫困(没有裸设备),每月都靠政府发放的500圆人民币过日子。突然有一天,甲买福利彩票中了500万人民币(得到了裸设备),突然一跃成为富人阶级,那么他当然无权继续享受每月500圆的补贴了。理解了这一点,就比较好解决了,按照之前给出的正确方法,将系统文件和裸设备文件隔离开,分别存放在不同的文件夹,这样系统克隆的时候就把裸设备文件排除在外。RAC1创建了VOL1/VOL2之后,RAC2再一扫描,就能够顺利的看到VOL1跟VOL2的身影了,这也就代表着共享磁盘创建成功。2,针对另外一个问题再给出一幅图片:这幅图前面已经单独给过一次,而且也就为什么这样做给出了详细的解释,这里再啰嗦一下。除去系统磁盘之外的四块磁盘不能在安装操作系统的时候捆绑在一起,否则后期磁盘分区的时候系统会提示你分区信息已经存在,如果你删去已经存在的分区再重新格式化磁盘并重新分区,在系统还没有重启的时候兴许感觉不出来,但只要系统一重启,就再也无法正常进入到系统了,因为作为系统一个组成部分遭到了毁灭性的破坏,系统也随之灰飞烟灭了。如果在没有重启的情况下,再使用这重新分区的磁盘来创建ASM磁盘,这时系统会认为这块盘还处于繁忙状态,并不是一块干净的磁盘,所以就无法创建可用的ASM磁盘。碰到这样的问题,我还没有发现比较好的解决办法,唯有从头再来,这实在是一件让人痛苦不堪的事,这样的事,经历过一次也就够了。3,在给出一张很有代表性的图片:我看很多人在网上都贴出了类似这样的图片,问创建ASM磁盘不成功跟这个有没有关系,因为较之官方给出的配置过程不太一样,似乎少了些步骤:Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [ OK ]
Loading module "oracleasm": [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks: [ OK ]看到了吧,官方给出的配置过程和我实验中的配置过程还真不一样,乍看上去是少了一些步骤。很奇怪,我每次ASM磁盘配置过程都和我贴图上面一样,从来没有一次与官方这个配置雷同。在我还没有找到为什么不能创建ASM磁盘时我还真怀疑大概跟配置过程不完整有关系,也导致我一怒之下关了虚拟机,删去所有系统文件,从头来过(算上这一次,重装操作系统次数达到11次),但让人气馁非常的是到配置ASM磁盘的时候仍然和之前所显示一模一样。在我发现不能创建ASM磁盘的原因竟然跟安装操作系统时犯下的错误有关之后,我跳过这一步不去管它,继续创建VOL1跟VOL2,然后再RAC2节点上scandisks、listdisks,发现也能成功识别到VOL1跟VOL2,这说明我的配置也是没有问题的,虽然跟官方仍然存在那么一点点不同。这段文字写完,希望所有对ASM磁盘配置过程心存疑虑的人们放心大胆的朝前迈,一点问题没有。