RAC一节点异常-ORA-01078、ORA-01565、ORA-017503、ORA-01034、ORA-27123
曲折离奇的故事都是从平淡无奇开始的。
下班没多久应用统计的指标告警,数量翻倍。
……
最后不知道怎么找到库上,最后又找出,下班后没多久RAC中的一个节点(4节点的RAC,据说是节点3)的防火墙开了(也不知道是怎么开的,经过下面的查看猜测是几个节点都开了)。
1.开始执行crsctl status res -t显示节点3挂了,我登上去看的时候,节点3和节点1都挂了
节点3 oracle的alert log
ORA-29740 实例逐出
节点1 oracle的alert log
根据日志看节点1早就挂了,先与节点3
为啥他们看到只有节点3挂了。
crsctl status res –t发现3节点db和asm磁盘组都是offline,asm实例也不在;
crsctl check crs
root:
crsctl stop crs报错
crsctl start crs 报错
或许有其他方法(待测试),简单粗暴的方法reboot主机
2.节点1
直接reboot主机
3.crsctl status res –t
打完收工(看似完美)。
4.过来一两个小时,电话响了
状态好像都没问题啊,可监听有问题
比较节点2和节点1
查看节点2的oracle alert log,
16:10分时是2,3,4三个实例存活
这是不是就很奇怪了,明明17:53分节点2也挂了,为啥crsctl status resource -t显示正常呢?
监听也不正常。
用ezconnect连接节点2的1521端口;其他三个节点用ezconnect连接是正常的
继续使用重启大法,结果实例2直接offline了,而且oracle 的alert log中竟没一条新的记录,最后的记录还是17:53分
手动连进去startup,oracle的alert log同样没有新的记录。
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file ‘+DATA/orcl/spfileorcl.ora’
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux-x86_64 Error: 13: Permission denied
Additional information: 26
Additional information: 262151
(为了百度能搜到,我手动敲出来了)
实在不知道什么原因了,百度了,参考下面文章,
https://blog.csdn.net/qq_38815172/article/details/74315866
结果跟文章中一样,权限不对
经过上面的处理已经正常了。
5. 额外看几个节点的/var/log/messages
节点1:
16:05和17:42这个是否有异常?
节点2(上面的截图direct connection failure with ASM,所以怀疑是不是操作系统层面有什么问题):
16:13 oracle:page allocation failure
17:46
节点3:
16点多没异常日志
17:47
节点4:
17:47
节点4的alert log
16:10 把实例1逐出,只剩2,3,4节点
17:52分 实例4被实例2逐出,然后17:53分实例4正常启动
17:54分 实例4启动完成
22:24分 有实例3和实例4
22:35 有实例1,实例3和实例4
凌晨2:18 实例1,实例2,实例3和实例4
从上面的log理出:
1)16:10分实例1被逐出;
2)17:52分实例4被实例2逐出,接着实例4重启了;
3)17:52分实例3也被实例2逐出;
4)17:52:15秒只有实例2是活着的;
5)17:53:43秒因ERROR direct connection failure with ASM,实例2挂掉(从操作系统日志看好像也没啥问题);
节点2的asm的alert log
节点4的asm alert log里显示实例2和实例3被逐出(应该是asm实例)
6)17:54分实例4启动完成;
7)22:00多分别重启节点3和节点1所在主机,实例3和实例1加入集群;
8)凌晨2:00多实例2加入集群。
6. 为啥crsctl status resource -t为什么不准?
这个不知道了。
只能以后确认的时候,登录到数据库里看看实例状态。