环境:Oracle 10g 10.2.0.4 on SUSE 11 + Oracle Data Guard
说明:每天凌晨Standby DB定时只读打开供统计用,之后再继续同步。
故障现象:
执行copy datafile命令报错RMAN-10006.
如下所示:
RMAN> copy datafile 14 to '/u/oracle/oradata/XXDB22/db2_c037dat03.dbf';
Starting backup at 04/25/2011 10:44:31
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1602 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00014 name=/u/oracle/oradata/XXDB22/db_c037dat03.dbf
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03004: fatal error during execution of command
RMAN-10006: error running SQL statement: select sofar, context, start_time from v$session_longops where (start_time > nvl(:1, sysdate-100) or start_time = nvl(:2, sysdate+100)) and sid = :3 and serial# = :4 and opname like 'RMAN:%' order by start_time desc, context desc
RMAN-10002: ORACLE error: ORA-00000: normal, successful completion
故障解决:
平时甚少会在Standby DB上执行RMAN操作,第一次碰到这样的报错。
查询metalink,发现是oracle的Bug。
Metalink NoteID:1080134.1.
Cause
Unpublished Bug 4230058: FAIL TO CONNECT TO RMAN AFTER PHYSICAL STANDBY IS OPENED READ ONLY
If the standby database is opened readonly and then managed recovery is restarted without bouncing the database, queries against v$session_longops will fail with:
ORA-01219: database not open: queries allowed on fixed tables/views only
RMAN likewise will fail trying to access this view with RMAN-10006 error.
Solution
Restart the standby database after opening it in READ ONLY mode before restarting the Managed Recovery process.
重启Standby DB后成功执行RMAN命令。
RMAN> copy datafile 14 to '/u/oracle/oradata/XXDB22/db2_c037dat03.dbf';
Starting backup at 04/25/2011 10:55:53
copy datafile 15 to '/u/oracle/oradata/XXDB22/db2_c037dat02.dbf';
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=1627 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00014 name=/u/oracle/oradata/XXDB22/db_c037dat03.dbf
output filename=/u/oracle/oradata/XXDB22/db2_c037dat03.dbf tag=TAG20110425T105554 recid=53 stamp=749386639
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:35
Finished backup at 04/25/2011 10:57:29
Starting Control File and SPFILE Autobackup at 04/25/2011 10:57:29
piece handle=/u/oracle/product/10.2.0/db_1/dbs/c-1988110398-20110425-00 comment=NONE
Finished Control File and SPFILE Autobackup at 04/25/2011 10:57:31
相关阅读:
Oracle DG 修改逻辑Standby端数据
Oracle DG 逻辑Standby创建说明
Oracle DG 逻辑Standby的相关视图管理
Oracle 10g rac Standby 归档日志自动删除脚本
DataGuard 之物理Standby 的监控与管理