在使用RMAN备份数据库归档日志时,出现这样的错误,"RMAN-8137: WARNING: archived log not deleted as it is still needed"。
这是备份归档日志后跟着删除已备份的归档文件操作时失败的提示。
RMAN备份删除归档日志文件的脚本如下所示:
backup archivelog all format '/rman_bak/archivelog_%U.%T' delete all input;
这里数据库系统为oracle 10.2.0.3,配置了两个standby库,组成一对二的data guard环境。
(miki西游 @mikixiyou 文档,原文链接: http://mikixiyou.iteye.com/blog/1553055
)
分析问题
这种RMAN-8137错误是指归档日志在RMAN试图删除它们时,提示该归档日志文件在standby库还没有应用,所以不能删除。这是保护data guard的机制。
使用下列SQL检查归档日志文件是否应用。
select thread#, sequence#, completion_time,APPLIED
from v$archived_log
where dest_id = 2
and applied = 'NO'
and completion_time>sysdate-2
ORDER BY THREAD#,SEQUENCE#, COMPLETION_TIME;
结果显示,最近两天确实有很多归档日志没有应用。
在检查v$archive_gap时,没有发现任何记录。
检查data guard的配置环境时,没有发现什么错误。在该环境最初运行时,也出现过该错误,那是由于standby的初始化参数配置不正确导致。
在
Oracle Data Guard 10g 简要配置
http://mikixiyou.iteye.com/blog/1489087
一文中,我描述了该错误信息。
Oracle的metalink提示,这可能是一种bug,参见文档Archive Log not Getting Deleted Using Rman With Rman-08137 [ID 964522.1]
给出了解决方法,强制删除已经备份过的归档日志文件。
delete force archivelog until time 'trunc(sysdate-4)' backed up 1 times to device type disk;
但我又发现一个现象,使用这个SQL查询归档日志的应用情况时,
select thread#, sequence#, completion_time,APPLIED
from v$archived_log
where dest_id = 2
-- and applied = 'NO'
and completion_time>sysdate-2
ORDER BY THREAD#,SEQUENCE#, COMPLETION_TIME;
THREAD# SEQUENCE# COMPLETION_TIME APPLIED
1 1 81516 2012-6-4 11:17:11 NO
2 1 81517 2012-6-4 11:18:12 YES
3 1 81518 2012-6-4 11:19:15 YES
4 1 81519 2012-6-4 11:20:15 NO
--------------------------------------------------------
6 1 81521 2012-6-4 11:22:21 YES
--------------------------------------------------------
8 1 81523 2012-6-4 11:24:25 YES
9 1 81524 2012-6-4 11:25:25 NO
--------------------------------------------------------
19 1 81534 2012-6-4 11:35:44 YES
结果显示,有的日志文件的applied是YES,有的是NO。
这下无解了。有成功也有失败的apply。
分享到:
相关推荐
RMAN - Getting Started
rman-xttconvert_2.0.zip
rman-xttconvert_2.0.rar,mos下载的,需要的拿走。。。
rman 清理过期归档日志,oracleg归档日志满了,可以使用的
ORACLR中的问题
oracle rman占用磁盘空间,利用Windows计划任务执行该脚本释放空间,脚本内相关路径需根据实际情况进行更改
oracle归档日志步骤+RMAN步骤 . set ORACLE_SID=EKP sqlplus /nolog conn / as sysdba SQL> archive log list; show parameter db_reco show parameter log_archive alter system set db_recovery_file_...
利用RMAN删除指定几时间前的归档.这是我的日常操作记录,供参考!
Oracle-Rman备份详细讲解
如何使用Oracle 11g R2的RMAN機制進行備份、備援、資料庫複製等工作
[oracle@source]$ unzip rman_xttconvert_VER4.zip Archive: rman_xttconvert_v3.zip inflating: xtt.properties inflating: xttcnvrtbkupdest.sql inflating: xttdbopen.sql inflating: xttdriver.pl inflating: ...
1,查看当前归档模式 SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 210 Current log ...
本文主要描述Oracle DB 在使用rman进行恢复时,如何利用rman注册备份集的方式达到主库和目标库数据一致的目的。当然Oracle数据库的话使用DG或ADG技术、或者rman的duplicate技术都是非常好的选择。
Centos7.6下Oracle开启归档日志和Rman恢复.docx
Oracle-使用RMAN-将-DB-从10g-直接-Restore-到11g-示例
oracle 回闪日志 满了 ORA-03113 通信信道结束 进入 rman 删除日志
内部新员工oracle培训手册-RMAN增量备份全过程-linux54-oracle112.doc
【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本
oracle 异构平台数据库迁移必备工具,脚本。rman_xttconvert_2.0 rman_xttconvert_v3 rman_xttconvert_VER4 统一打包。