今日遇到一例非常诡异的问题。
今天做物理dg ,一个rac 与一台单机的dg。 先做异机恢复,在RAC通过rman 备份出database,pfile,以及standby controlfile
然后cp 这些备份集到 单机中。
数据库版本是11203 for rhel5.6 x86_64
-----------------------------------------上面是前提-----------------------------------------
修改pfile后。sqlplus nomount 一切正常
进入rman
RMAN> restore standby controlfile from '/rman_backup/standby_0jof2jo4_1_1.ctl';
Starting restore at 19-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=24 device type=DISK
channel ORA_DISK_1: restoring control file
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/19/2013 09:42:16
RMAN-10038: database session for channel ORA_DISK_1 terminated unexpectedly
报了这个错误。再次restore
RMAN> restore standby controlfile from '/rman_backup/standby_0kof3at4_1_1.ctl'
2> ;
Starting restore at 19-JUL-13
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/19/2013 09:55:24
RMAN-00600: internal error, arguments [10019] [krmxcr] [] [] []
RMAN-00600: internal error, arguments [10019] [krmxcr] [] [] []
非常之奇怪。
开始猜测。
首先,修改init 将controlfile的路径从+data/*** 修改为本地文件路径,我这里修改为/u01/ceshi/control1.ctl
restore。发现很快可以完成,并且无报错。
将问题锁定到Oracle用户 与asm磁盘组之间的连接上。
是否是oracle无法和磁盘组进行连接?(我先进入grid=>asmcmd=>cp 随便个文件 进入 相关磁盘组。没问题。所以怀疑oracle和asm的连接)
1、检查 grid 和oracle 的ORACLE_HOME/bin 下面的 oracle。权限是否正确
-rwsr-s--x 1 oracle asmadmin 232399473 Jul 19 08:58 oracle
如果不是,请chmod +s $ORACLE_HOME/bin/oracle 至于s是什么权限,自己去查。
2、检查oracle用户的用户组。是否缺少 asmdba oper asmoper 相关组。也会造成无法连接
3、进入grid=》crs_stat -v -t 查看ASM状态是否正确,看相关磁盘组是否mount
这次诡异就诡异在哪里呢。上面的一些check下来。再去restore 还是报错。
现在已经属于无理性了。只能乱拳老师傅
单机进入grid=>crs_stop -all =>crs_start -all
再次测试。报错依旧
乱拳打死老师傅2
单机进入oracle=>dbca=>随便创建个库,发现在创建库的时候是可以认到磁盘组(我这里是+DATA)
创建完成,中途无报错(除了一个em的)
单机进入oracle=>dbca=>删除刚才创建的库
再次进入rman ,restore。正常了。
事实证明。谁说我们理科生必须理性而不感性的?你看看,偶尔不理性一把也是能解决很多错误的嘛!网上的谣言要不得!
推荐阅读:
ORA-00600 [2662]错误解决
ORA-00600: internal error code, arguments: [4194]解决方法
ORA-00600: internal error code, arguments: [13013]解决方法