ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RAC环境中修改系统时间可能导致SRVCTL命令失败

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

原创 Linux操作系统 作者:yangtingkun 时间:2007-07-13 00:00:00 0 删除 编辑

测试环境中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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1954
  • 访问量
    10889400