oracle10 RAC节点添加过程

来源:互联网 发布:电子图书数据库读秀 编辑:程序博客网 时间:2024/06/06 02:26

数据库原有四个rac节点,后来感觉这么多节点用不上,就删除了两个性能相对差点的节点,只是节点上的软件还保持原来的。前段时间,rac集群中现有的两个节点中的一个节点挂了,只好把原来删除不用的节点添加进来。添加过程颇费周折,大致过程记录下来。
由于要添加的节点上软件都还在,在正常节点rac1上直接使用
./addNode.sh -nocopy -silent “CLUSTER_NEW_NODES”={rac2} “CLUSTER_NEW_PRIVATE_NODE_NAMES”={rac_priv2} “CLUSTER_NEW_VIRTUAL_HOSTNAMES”={rac_vip2}
添加节点rac2。
执行结果如下:

     警告:以下配置脚本需要以各个集群节点中的 "root" 用户的身份执行。#!/bin/sh#Root script to run/opt/app/oracle/product/10.2.0/crs/install/rootaddnode.sh #On nodes hgdbc03/opt/app/oracle/product/10.2.0/crs/root.sh #On nodes hgdbc02要执行配置脚本, 请执行以下操作:    1. 打开终端窗口    2. 以 "root" 身份登录    3. 在每个集群节点中运行脚本/opt/app/oracle/product/10.2.0/crs 的 添加集群节点 已成功。

信息显示添加成功。根据提示,接下来执行脚本rootaddnode.sh。报错,显示“srvctl add nodeapps”这里执行失败。
经调查,vip2信息添加出错。
手动添加vip2信息到OCR中还是不行。手动添加OCR信息方式如下:

  1. crs_stat -p ora.rac01.vip >/tmp/vip.cap 导出rac1vip信息
    修改/tmp/vip.cap里信息,就是把rac1节点的信息换成rac2节点相应的信息。
  2. 拷贝 /tmp/vip.cap 到 /oracle/product/10.2.0/crs/crs/public/ora.rac02.vip.cap
  3. ./crs_profile -create ora.hgdbc02.vip -I /oracle/product/10.2.0/crs/crs/public/ora.rac02.vip.cap -q
  4. ./crs_register ora.rac02.vip

重新addNode.sh,但还是不行。想起以前装RAC时需要执行vipca命令,
vipca -silent nodelist=rac1,rac2 nodevips=rac_vip1/XXXX(ip地址),rac_vip2/XXXX(ip地址)
重启rac2机器, 使用crs_stat在两个节点上都能看到gsd,ons,vip进程都在线。

再次执行addNode.sh,到rootaddnode.sh还是报错,但是错误变为vip重复,无法添加节点。
使用命令删除节点rac2,再次执行addNode.sh,这次顺利执行完毕。

接下来使用添加vip的方法添加asm,inst,lsn服务。手动启动asm,顺利启动。但是在rac2上看不到磁盘组,只能看到磁盘。rac1上能看到磁盘组。

查看rac2的asm启动日志,有报错信息"ERROR: no PST quorum in group 1: required 2, found 0"。

重启rac2的asm服务,还是一样。查看磁盘访问权限,没有问题。
在rac1上备份数据库。停止rac1上的数据库。在RAC1节点上删除diskgroup,重新添加,RAC2上重启ASM服务,两个节点都能看到diskgroup了。

rac1上恢复数据库。rac2启动数据库,报错 "ORA-01620: no public threads are available for mounting"

百度上搜索和oracle thread有关信息。rac1节点上

  1. 添加logfile thread 2
  2. alter system set thread=2 sid=’rac2’
  3. select THREAD#,STATUS,ENABLED,GROUPS,INSTANCE from V$THREAD;
    结果:
SQL> select THREAD#,STATUS,ENABLED,GROUPS,INSTANCE from V$THREAD;   THREAD# STATUS ENABLED      GROUPS INSTANCE---------- ------ -------- ---------- --------------------------------------------------------------------------------         1 OPEN   PUBLIC            5   rac1         2 CLOSED PRIVATE           6 UNNAMED_INSTANCE_2

rac1上执行”alter database enable public thread 2;”

rac2上启动数据库,ok,终于看到数据库正常启动日志了。

添加节点的过程断断续续,由于数据库白天有程序访问,有些可能会引起数据库停止的操作只能在晚上或者周末操作,持续了几天。过程虽然曲折,但是看到最后两个节点正常运行,还是挺高兴的。

0 0
原创粉丝点击