最近,一套oracle 11.2.0.4 rac集群的一个sun solaris节点主机更换主板电池,电池更换引起主机系统时间倒退到2000年1月1日,与正常节点时间相差21年,最终导致异常节点GI集群服务crsd无法启动,纠正系统时间后,异常节点GI集群服务正常启动。
问题现象:
更换主机主板电池之前,由于主机1节点有带库emc agent代理进程存在,导致集群服务无法正常停止;此时,系统时间还是正常的。
由于MCagent服务无法正常停止,操作同事对集群进程进行了kill -9强制关闭集群,这也是问题排查导向出现偏差,现场同事一直以为是对集群进程kill -9导致集群crsd服务无法启动。
更换主机主板电池的节点,重启之后GI集群服务无法启动;主板电池更换后,集群GI服务crsd无法启动。
问题分析:
查看ohasd日志,发现集群正在启动crsd服务,一直刷新crsd相关的日志并无异常提示,但是日志输出时间明显不对,系统时间变成了2000年01月01日,正常节点的时间是2021年11月27日,怀疑是系统时间的问题导致crsd无法启动。
查看系统时间,发现系统时间与ohasd日志打印时间一致是2000年01月01日。
问题处理:
调整问题节点的系统时间:
重启问题节点的crs集群服务,很快crsd出现了starting标志,之前很长时间没有任何提示:
稍等片刻,异常节点的crsd正常启动,ASM和DB实例正常启动
总结:
系统主板电池更换,主机时间一定会发生变化,对于oracle集群来说,一旦集群节点间时间相差过大,crs将无法正常启动,因此更好主板和主板电池后要注意调整系统时间;建议oracle 集群设置ntp时钟同步避免时间问题导致oracle集群无法启动。