适用于:
Oracle Database – Enterprise Edition – 版本11.2.0.2 及以上
本文信息适用于任何平台。
症状
在归档重做日志应用期间,RMAN Duplicate from active database(备用数据库)失败。
有时后续的重新尝试会成功。
有时实例的热启动能更正问题。
++ 问题是频繁但间歇的。
触发错误的代码:
connect target sys/${sys_pwd}@${_TargetDb}
connect auxiliary sys/${sys_pwd}@TNSDXSBL2
run {
duplicate target database to DXSBL2
from active database
db_file_name_convert=(‘/u08/oradata/SXSBL/’,’/u31/oradata/DXSBL2/’
,’/u09/oradata/SXSBL/’,’/u32/oradata/DXSBL2/’
,’/u10/oradata/SXSBL/’,’/u32/oradata/DXSBL2/’)
logfile
group 1 (‘/u31/oradata/DXSBL2/redo01a.dbf’,’/u32/oradata/DXSBL2/redo01b.dbf’) SIZE 100M,
group 2 (‘/u31/oradata/DXSBL2/redo02a.dbf’,’/u32/oradata/DXSBL2/redo02b.dbf’) SIZE 100M,
group 3 (‘/u31/oradata/DXSBL2/redo03a.dbf’,’/u32/oradata/DXSBL2/redo03b.dbf’) SIZE 100M,
group 4 (‘/u31/oradata/DXSBL2/redo04a.dbf’,’/u32/oradata/DXSBL2/redo04b.dbf’) SIZE 100M;
}
症状:
<< Auxiliary instance alert log >>
alter database recover logfile ‘/u33/oradata/DXSBL2/archive/DXSBL2_1_21379_681398425.arc’
Media Recovery Log /u33/oradata/DXSBL2/archive/DXSBL2_1_21379_681398425.arc
Fri Feb 24 05:47:16 2012 Recovery Slave PR09 died <====
Fri Feb 24 05:47:17 2012
Recovery interrupted!
Recovered data files to a consistent state at change 390182553245
Media Recovery failed with error 448
Errors in file /u01/app/oracle/diag/rdbms/dxsbl2_devdb01/DXSBL2/trace/DXSBL2_pr00_17882.trc:
ORA-00283: recovery session canceled due to errors
ORA-00448: normal completion of background process
ORA-10878 signalled during: alter database recover logfile ‘/u33/oradata/DXSBL2/archive/DXSBL2_1_21379_681398425.arc’…
<< another attempt..auxiliary instance alert log >>
Parallel Media Recovery started with 64 slaves
ORA-279 signalled during: alter database recover if needed
start until change 390190874621 using backup controlfile
…
alter database recover logfile ‘/u33/oradata/DXSBL2/archive/DXSBL2_1_21523_681398425.arc’
Media Recovery Log /u33/oradata/DXSBL2/archive/DXSBL2_1_21523_681398425.arc
Wed Feb 29 05:42:11 2012 Recovery Slave PR0E died <====
Wed Feb 29 05:42:11 2012
Recovery interrupted!
Recovered data files to a consistent state at change 390190871699
Media Recovery failed with error 448
Errors in file /u01/app/oracle/diag/rdbms/dxsbl2_devdb01/DXSBL2/trace/DXSBL2_pr00_14458.trc:
ORA-00283: recovery session canceled due to errors
ORA-00448: normal completion of background process
ORA-10878 signalled during: alter database recover logfile ‘/u33/oradata/DXSBL2/archive/DXSBL2_1_21523_681398425.arc’…
..
Recovery slave PR0E died
在跟踪文件中没有线索
原因
问题似乎由于内存crunch。
复制进程触发并行恢复,我们无法像在’Recover database … noparallel’中控制它。
即使在辅助实例中设置PARALLEL_MAX_SERVERS=0 也没有帮助。
解决方案
当使用slave执行RMAN 时,使用的内存会是large_pool。
当前值:
large_pool_size = 16M 似乎不足
所以增加 large_pool_size 能解决问题。
|