一次RMAN备份报错的诊断过程(六)

今天检查数据库中的备份输出脚本时,发现RMAN备份出现了错误。

解决cluster无法启动的问题。

一次RMAN备份报错的诊断过程(一):http://yangtingkun.itpub.net/post/468/493262

一次RMAN备份报错的诊断过程(二):http://yangtingkun.itpub.net/post/468/493273

一次RMAN备份报错的诊断过程(三):http://yangtingkun.itpub.net/post/468/493281

一次RMAN备份报错的诊断过程(四):http://yangtingkun.itpub.net/post/468/493308

一次RMAN备份报错的诊断过程(五):http://yangtingkun.itpub.net/post/468/493358

 

 

前面通过了多种方法,但是都无法解决这个问题,只好通过重启数据库来解决,在重启数据库的时候发现,问题很可能不是数据库造成的,而是CLUSTER状态异常导致的。

在前面无论是关闭数据库,还是关闭CLUSTER,都无法顺利正常关闭,最终都需要kill的方法来解决,正是使用了这种极端的手段,导致两个节点的服务器全部重启,最郁闷的是,其中一个节点的无法正常启动,另一个节点虽然顺利启动,但是启动cluster的时候出现了错误:

bash-3.00# more crsctl.2714
OCR initialization failed accessing OCR device: PROC-26: Error while accessing the physical storage Operating System error [No such device or address] [6]

以前碰到过类似的情况,不过上一次碰到这个问题时,两个节点都处于启动状态,所以大约10分钟后,CLUSTER服务和数据库就顺利启动了,但是现在一个节点无法正常启动,另一个节点无法访问OCR设置,也无法启动cluster,导致数据库无法启动。

咨询了一下coolyl,认为问题应该和Oracle关系不大,是VERITASCFS没有启动导致的,从操作系统检查虽然可以看到路径存在,但是无论是用sqlplus还是dd直接访问,都无法访问到对象:

bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期三 5 27 14:20:18 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

已连接到空闲例程。

SQL> startup mount
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '/dev/vx/rdsk/datadg/tradedb_spfile'
ORA-27041: unable to open file
SVR4 Error: 6: No such device or address
Additional information: 2
SQL> exit
已断开连接
bash-3.00$ ls -l /dev/vx/rdsk/datadg/tradedb_spfile
crw-rw----   1 oracle   oinstall 311, 42038 May 27 12:30 /dev/vx/rdsk/datadg/tradedb_spfile
bash-3.00$ dd if=/dev/vx/rdsk/datadg/tradedb_spfile f=/export/home/oracle/spfiletradedb.ora
dd: /dev/vx/rdsk/datadg/tradedb_spfile: open: No such device or address

由于对veritasCFS不熟悉,只好等硬件人员启动节点1,由于节点1在启动的时候还监测到了坏块,因此启动还需要一段时间。

正在没有什么办法可想的时候,得到了高人相助——shahand不愧是veritas的专业人士,简单几个命令就解决了问题。

bash-3.00# ls -l /opt/VRTS*/bin/gab*
lrwxrwxrwx   1 root     root          15 Apr 17  2007 /opt/VRTS/bin/gabconfig -> /sbin/gabconfig
lrwxrwxrwx   1 root     root          17 Apr 17  2007 /opt/VRTS/bin/gabdiskconf -> /sbin/gabdiskconf
lrwxrwxrwx   1 root     root          15 Apr 17  2007 /opt/VRTS/bin/gabdiskhb -> /sbin/gabdiskhb
lrwxrwxrwx   1 root     root          14 Apr 17  2007 /opt/VRTS/bin/gabdiskx -> /sbin/gabdiskx
lrwxrwxrwx   1 root     root          13 Apr 17  2007 /opt/VRTS/bin/gabport -> /sbin/gabport
bash-3.00# cd /opt/VRTS
bash-3.00# cd bin
bash-3.00# ./gabconfig -a
GAB Port Memberships
===============================================================
bash-3.00# ./gabconfig -l
GAB Driver Configuration
Driver state         : Configured
Partition arbitration: Disabled
Control port seed    : Disabled
Halt on process death: Disabled
Missed heartbeat halt: Disabled
Halt on rejoin       : Disabled
Keep on killing      : Disabled
Quorum flag          : Disabled
Restart              : Enabled
Node count           : 2
Disk HB interval (ms): 1000
Disk HB miss count   : 4
IOFENCE timeout (ms) : 15000
Stable timeout (ms)  : 5000
bash-3.00# ./gabconfig -x
bash-3.00# ./gabconfig -a
GAB Port Memberships
===============================================================
Port a gen  1f5c401 membership ;1                             
Port b gen  1f5c404 membership ;1                             
Port f gen  1f5c40e membership ;1                             
Port h gen  1f5c403 membership ;1                             
Port q gen  1f5c40c membership ;1                             
Port v gen  1f5c408 membership ;1                             
Port w gen  1f5c40a membership ;1                             
bash-3.00# vxprint -v
Disk group: rootdg

TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
v  opt          fsgen        ENABLED  40968576 -        ACTIVE   -       -
v  rootvol      root         ENABLED  138861696 -       ACTIVE   -       -
v  swapvol      swap         ENABLED  65553792 -        ACTIVE   -       -
v  usr          fsgen        ENABLED  20494464 -        ACTIVE   -       -
v  var          fsgen        ENABLED  20494464 -        ACTIVE   -       -

Disk group: datadg

TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
v  ocr1         fsgen        ENABLED  614400   -        ACTIVE   -       -
v  ocr2         fsgen        ENABLED  614400   -        ACTIVE   -       -
v  tradedb_anhui_1 fsgen     ENABLED  8390656  -        ACTIVE   -       -
v  tradedb_anhui_2 fsgen     ENABLED  8390656  -        ACTIVE   -       -
v  tradedb_anhui_3 fsgen     ENABLED  8390656  -        ACTIVE   -       -
.
.
.
v  vot1         fsgen        ENABLED  614400   -        ACTIVE   -       -
v  vot2         fsgen        ENABLED  614400   -        ACTIVE   -       -
v  vot3         fsgen        ENABLED  614400   -        ACTIVE   -       -
bash-3.00# ps -ef|grep ora
  oracle  5682  2435   0 14:18:54 pts/1       0:00 -sh
  oracle  8487  8485   0 15:20:34 ?           0:00 /opt/oracle/product/10.2/crs/bin/ocssd.bin
    root   941     1   0 13:08:11 ?           0:01 /opt/oracle/product/10.2/crs/bin/crsd.bin reboot
  oracle  2177  2170   0 13:11:48 ?           0:00 /usr/lib/ssh/sshd
  oracle   939     1   0 13:08:11 ?           0:00 sh -c sh -c 'ulimit -c unlimited; cd /opt/oracle/product/10.2/crs/log/ahrac2/ev
  oracle  2179  2177   0 13:11:48 pts/1       0:00 -sh
  oracle  8485  8482   0 15:20:34 ?           0:00 /bin/sh -c ulimit -c unlimited; cd /opt/oracle/product/10.2/crs/log/ahrac2/cssd
    root  8422  8356   0 15:20:32 ?           0:00 /opt/oracle/product/10.2/crs/bin/oprocd run -t 1000 -m 500 -f
  oracle  9149     1   0 15:20:53 ?           0:00 /opt/oracle/product/10.2/database/bin/tnslsnr LISTENER_AHRAC2 -inherit
  oracle  8365   939   0 15:20:32 ?           0:00 /opt/oracle/product/10.2/crs/bin/evmd.bin
  oracle  3807  3804   0 13:30:45 ?           0:00 /usr/lib/ssh/sshd
  oracle  8482  8357   0 15:20:34 ?           0:00 sh -c /bin/sh -c 'ulimit -c unlimited; cd /opt/oracle/product/10.2/crs/log/ahra
  oracle  9267  9265   0 15:20:57 ?           0:00 /opt/oracle/product/10.2/crs/opmn/bin/ons -d
  oracle  5697  5682   0 14:19:23 pts/1       0:00 bash
  oracle  3809  3807   0 13:30:46 pts/3       0:00 -sh
  oracle  9195     1   0 15:20:55 ?           0:00 /opt/oracle/product/10.2/database/bin/racgimon startd tradedb
    root  9913  3858   0 15:21:21 pts/3       0:00 grep ora
  oracle  9181   941   0 15:20:54 ?           0:00 /bin/sh /opt/oracle/product/10.2/database/bin/racgwrap start
  oracle  9265     1   0 15:20:57 ?           0:00 /opt/oracle/product/10.2/crs/opmn/bin/ons -d
  oracle  8773  8365   0 15:20:44 ?           0:00 /opt/oracle/product/10.2/crs/bin/evmlogger.bin -o /opt/oracle/product/10.2/crs/
  oracle  9190  9181   0 15:20:54 ?           0:00 /opt/oracle/product/10.2/database/bin/racgmain start
  oracle  9298  9195   0 15:20:58 ?           0:00 /opt/oracle/product/10.2/database/bin/racgeut -e _USR_ORA_DEBUG=0 -e ORACLE_SID
  oracle  9331  9325   8 15:20:58 ?           0:22 oracletradedb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
  oracle  9299  9298   0 15:20:58 ?           0:00 /opt/oracle/product/10.2/database/bin/racgmdb -s open
  oracle  9325  9299   0 15:20:58 ?           0:00 /opt/oracle/product/10.2/database/bin/sqlplus

当两个节点都正常关闭时,任何一个节点先启动后,都可以接管CFS,并加载共享存储设备,但是如果两个节点的状态不正常,就要求两个节点都处于启动状态,CFS才能自动解决状态错误,并加载共享存储,当前由于节点状态异常,且一个无法正常启动,导致CFS没有正常加载,也没有办法自己解决这个错误,需要手工干预。

通过上面的命令gabconfig –x,使得当前节点可以加载共享存储,加载完毕后,一直在检查的cluster后台进程终于可以顺利启动了。

CLUSTER启动后,数据库也顺利启动,而且前面描述的bug现象也消失了,RMAN也可以顺利的连接到数据库中。

随后另一个节点启动成功,执行/etc/init.d/init.crs start后,CLUSTER和数据库顺利启动。

至此问题终于解决。简单总结一下,开始的时候发现问题是由于RMAN连接报错,随后检查发现大量有3JOB一直在运行,其中最早开始运行的JOB在等待其他节点的缓存数据,最后发现节点1上存在大量僵死的racgmain check进程。

一直认为是数据库中的默写资源被占用,因此杀掉了大量的僵死的会话,但是问题一直没有解决,知道最后尝试重启数据库时发现,数据库的状态和CLUSTER的状态都是不正常的,说明CLUSTER目前工作已经不正常了,因此一些gc cr requect请求会被Hang住,RMAN登陆时要锁住控制文件也无法实现,节点1上启动的大量的racgmain check进程也正是说明了这一点。

也正是CLUSTER状态不正常,导致/etc/init.d/init.crs stop无法正常关闭CLUSTER,造成节点异常重启,并最终导致了OCR设备无法访问的错误。

至于是什么问题导致了CLUSTER状态异常,目前恐怕已经不可考证了,可能是网络的闪断,也可能是CLUSTER或者CFSbug造成的,Oraclemetalink上有一些类似的bug描述,不过现在已经无法验证了。

如果以后在碰到类似的问题(希望还是不要碰到了),到时候可以再诊断一下。

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值