2019独角兽企业重金招聘Python工程师标准>>>
近日发现公司几台重要系统rac数据库,/etc/hosts里边没有scan vip的任何信息,但是通过
#srvctl config scan却看到了scanvip,后来和以前的同事沟通了下,说可能是以前dba故意干的!!!
坑!!!留下的坑!!!!你懂的!!!!!
ok,不管前任了,因为前任都换了好几任了。
针对公司数据库版本——oracle 11.2.0.3 rac,我也做了一个小测试:
结论:
1: rac正常配置并运行后,可以删除/etc/hosts文件中的scan vip信息,删除该信息后,数据库仍旧可以正常运行,但是一旦重启网卡或者reload网卡,该节点就会掉线,且该实例将永远也无法启动。
2:就算删除掉/etc/hosts里边所有scan信息,实例无法启动,但是只需要再在/etc/hosts添加任意一条正确的scanvip信息,实例又可以正常启动,且节点都保持在线
以下实验过程,这里我把所有的scan vip信息都删掉
先确定系统版本
[oracle@node2 ~]$ cat /etc/issue
Oracle Linux Server release 6.5
Kernel \r on an \m
数据库版本如下:
首先,系统正常运行,我ping以下所有的VIP,这里我的scanIP有两个
接下来,我把 /etc/hosts/里边的scanvip都干掉,如下
然后重新ping所有vip,结果和原来一样。
但是当我再任意节点service network reload时,你懂得,这个节点立马重启。
此时看看实例状态;
节点2已经死了,看看操作系统(我用的是虚拟机)已经正在重启了。
稍等片刻,系统启动后,我接下来再节点试图启动该实例,可惜
很显然,无法解析scanip。
OK,我现在将节点的scanip添加进去(原来有两条scanvip信息的,我只添加一条),再尝试启动以下实例,是否OK
结果很显然,数据库实例再启动过程会自动去解析scanvip且至少的解析一条正常的scanvip,实例才能正常启动。