RAC环境中修改系统时间可能导致SRVCTL命令失败

测试环境中netbackup的测试license到期了,为了能继续测试,将RAC环境的两个节点的数据库服务器系统时间向前调整了两个月。

这次时间的调整,并没有导致RAC环境的重启,不过却造成了SRVCTL命令的错误。


时间调整后,数据库工作正常,这倒是很出乎意料。在有些环境中,调整时间超过几秒种,就可能造成RAC环境中的一个节点重启。

不过虽然节点没有重启,但是数据库还是处于不正常的工作状态,随后试图通过srvctl命令关闭数据库时发现:

$ srvctl stop db -d testrac
PRKP-1002 : Error stopping instance testrac1 on node racnode1
CRS-0216: ???????????? 'ora.testrac.testrac1.inst'??
PRKP-1002 : Error stopping instance testrac2 on node racnode2
CRS-0216: ???????????? 'ora.testrac.testrac2.inst'??

再次执行上面的命令,没有报错,不过数据库并没有被关闭。

尝试用sqlplus直接关闭两个实例,没有发现任何问题。

尝试用srvctl打开数据库:

$ srvctl start db -d testrac
PRKP-1001 : Error starting instance testrac1 on node racnode1
CRS-0215: ???????????? 'ora.testrac.testrac1.inst'??
PRKP-1001 : Error starting instance testrac2 on node racnode2
CRS-0215: ???????????? 'ora.testrac.testrac2.inst'??

检查rac环境的日志:

2007-05-11 18:34:48.065: [ CRSRES][115097] `ora.testrac.testrac2.inst` is already OFFLINE.
2007-05-11 18:38:59.153: [ CRSRES][115106] startRunnable: setting CLI values
2007-05-11 18:38:59.189: [ CRSRES][115106] Attempting to start `ora.testrac.testrac2.inst` on member `racnode2`
2007-05-11 18:39:00.750: [ OCRSRV][26]th_select_handler: Failed to retrieve procctx from ht. constr = [27904800] retval lht [-27] Signal CV.
2007-05-11 18:39:00.798: [ OCRSRV][26]th_select_handler: Failed to retrieve procctx from ht. constr = [27078112] retval lht [-27] Signal CV.
2007-05-11 18:39:00.899: [ CRSRES][115107] Attempting to start `ora.testrac.testrac1.inst` on member `racnode1`
2007-05-11 18:39:01.938: [ OCRSRV][26]th_select_handler: Failed to retrieve procctx from ht. constr = [27077936] retval lht [-27] Signal CV.
2007-05-11 18:39:23.006: [ OCRSRV][26]th_select_handler: Failed to retrieve procctx from ht. constr = [31377760] retval lht [-27] Signal CV.
2007-05-11 18:44:43.156: [ CRSRES][115155] Attempting to start `ora.testrac.db` on member `racnode1`
2007-05-11 18:44:43.955: [ CRSRES][115155] Start of `ora.testrac.db` on member `racnode1` succeeded.
2007-05-11 18:49:29.680: [ CRSEVT][115106] CAAMonitorHandler :: 0:Action Script /data/oracle/product/10.2/database/bin/racgwrap(start) timed out for ora.testrac.testrac2.inst! (timeout=600)
2007-05-11 18:49:29.681: [ CRSAPP][115106] StartResource error for ora.testrac.testrac2.inst error code = -2
2007-05-11 18:59:59.881: [ CRSEVT][115106] CAAMonitorHandler :: 0:Action Script /data/oracle/product/10.2/database/bin/racgwrap(stop) timed out for ora.testrac.testrac2.inst! (timeout=600)
2007-05-11 18:59:59.882: [ CRSAPP][115106] StopResource error for ora.testrac.testrac2.inst error code = -2
2007-05-11 18:59:59.933: [ CRSRES][115106] X_OP_StopResourceFailed : Stop Resource failed
(File: rti.cpp, line: 1698

发现Oracle在运行racgwrap命令的时候出现了timeout的错误。通过ps –ef检查,发现大量/data/oracle/product/10.2/database/bin/racgmain stop的僵死进程。

尝试以root运行/etc/init.d/init.crs stop,发现并没有结束上面的僵死进程,运行/etc/init.d/init.crs start也无法启动rac环境。

最后将整个操作系统重启后,问题得以解决。

$ srvctl stop db -d testrac
$ srvctl start db -d testrac

对于产品系统而言,调整时间一定要谨慎,尤其对于RAC环境,即使当时没有造成节点的重启,也可能导致系统处于不正常的状态中。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69348/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-69348/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值