(只添加节点不装集群软件+数据库软件)
linux 6.5 +oracle11g-11.2.0.4-RAC集群
主机名1:rac1
主机名2:rac2
数据库名:racdb
vip:rac-vip
priv:rac-priv
2个节点实例均正常运行,在线删除节点
登陆任一节点,执行
SQL> select thread#,status,instance from v$thread;
THREAD# STATUS
---------- ------
INSTANCE
--------------------------------------------------------------------------------
1 OPEN
rac1
说明2个节点,实例名是rac1
rac1:/u01/app/11.2.0/grid_1/bin@rac1>olsnodes -t –s (用grid用户即可)
rac1 Active Unpinned
操作系统设置
OS版本必须相同,检查内核参数,系统内存、CPU、文件系统大小、swap空间等。
创建必要的用户及组
用户及用户组UID及GID必须跟其他节点相同,同时对这些用户环境变量进行设置。
网络配置
网络规划,Public及private网络名称必须相同。
共享存储配置
对于共享存储,必须保证在新的节点上是可以访问的,而且对软件安装者必须有读写权限。
创建相关目录
这些目录用户存放GI及Oracle数据库软件,同时要保证用户组及用户对这些目录的权限。
配置RAC等效性
时间同步设置(CTSS )
配置系统参数、创建用户、配置存储等。
配置所有节点间grid、oracle用户无密码等价访问
+ASM1:/home/grid@rac1>cluvfy stage -pre nodeadd -n rac2 -fixup –verbose
日志省略…..
报错信息如果出现
注意:如果我们不使用DNS解析域名方式的话,那么resolv.conf不一致的问题可以忽略 ,但一定不要忽视其他的报错信息
在添加新节点之前首先要输入命令:export IGNORE_PREADDNODE_CHECKS=Y
为什么要输入这个代码,可以用more命令查看 addNode脚本里有这个判断,判断检查,如果不输入
export IGNORE_PREADDNODE_CHECKS=Y,到最后还是会做DNS的检查如同:
所以正确的的方式是:export IGNORE_PREADDNODE_CHECKS=Y
再:
./addNode.sh -silent "CLUSTER_NEW_NODES={rac2}"
"CLUSTER_NEW_VIRTUAL_HOSTNAMES={rac2-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={rac2-priv}"
过程省略。。。。。
到最后会有一个问题,如图:
到这一步,我操作的时候并未显示百分比一直卡在这里,卡了2个多小时,最后解决的方法是看两遍集群的$ORACLE_HOME的文件大小,一致就可以使用下一步操作root.sh 拉起来,因为添加节点的时候是打包一边完好的集群信息和集群软件传输到另一边
root@rac3 ~]# /u01/app/11.2.0/grid_1/root.sh
过程省略….
+ASM1:/home/grid@rac1>cluvfy stage -post nodeadd -n rac2 -verbose
[oracle@rac1~]$ dbca
或用命令行直接添加实例(在已经有节点下面用oracle用户执行)
rac1:/home/oracle@rac1>dbca -silent -addInstance -nodeList rac2 -gdbName rac -instanceName rac2 -sysDBAUserName sys -sysDBAPassword oracle
Adding instance
1% complete
2% complete
6% complete
13% complete
20% complete
26% complete
33% complete
40% complete
46% complete
53% complete
66% complete
Completing instance management.
76% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/rac/rac.log" for further details.
select thread#,status,instance from gv$thread;
crsctl status res –t