`
mikixiyou
  • 浏览: 1098776 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353093
社区版块
存档分类
最新评论

归档不能删除报RMAN-8137错解决过程

阅读更多

在使用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。

分享到:
评论

相关推荐

    oralce自动备份

    RMAN提供验证备份的功能,可以确保在需要时能成功恢复。 8. 介质管理:自动备份可能涉及磁盘、磁带或云存储等多种介质。理解如何管理这些介质,确保备份的可用性和长期保存,是实现自动备份的关键。 9. 日志管理:...

    oracle备份与恢复的文档

    - **人为错误恢复**:例如删除了重要表或修改了关键数据,此时可以利用RMAN的闪回功能进行恢复。 #### 六、备份与恢复的最佳实践 1. **定期测试**:定期进行备份与恢复的测试,确保备份文件的有效性和恢复流程的...

    Oracle DBA的一些课件和习题

    - RMAN备份:Oracle的恢复管理器(RMAN)是进行数据库备份和恢复的主要工具,了解其基本命令和策略非常重要。 - 数据恢复:学习如何使用闪回技术、归档日志和完整备份来恢复丢失的数据。 6. **安全性**: - 用户...

    Oracle Database 11g: 数据库管理 - 课堂练习Il

    PL/SQL是Oracle扩展的SQL,支持过程化编程,可以编写存储过程、函数、触发器等,提高应用程序的效率和安全性。 三、数据库实例与启动关闭 在Oracle 11g中,数据库实例是内存结构和后台进程的集合,用于处理数据库的...

    精通ORACLE.10G备份与恢复

    这种恢复方式通常用于解决某些特殊的问题,比如误删除数据等情况。 ##### 3. 表空间恢复 表空间恢复是指对单个表空间进行恢复操作,而无需恢复整个数据库。这种方式可以更灵活地管理数据恢复过程。 #### 五、...

    Oracle常用傻瓜問題1000問

    了解完整备份、增量备份、归档日志模式和不完全恢复策略是确保数据安全的关键。 8. 性能优化:通过分析和调整SQL语句、索引、表分区、内存结构(如PGA、SGA)和数据库参数,可以提高Oracle的性能。工具如AWR(自动...

    oracle培训教程

    PL/SQL是Oracle扩展的编程语言,支持过程化逻辑,常用于编写存储过程、函数和触发器,提高应用性能和数据库安全性。 三、数据库实例与服务 Oracle数据库实例是内存结构和后台进程的集合,它们与物理数据库文件交互...

    Oracle8数据库管理员手册.rar

    7. **故障排查**:理解日志文件(例如,归档重做日志、报警日志)和跟踪文件的用途,以及如何解读这些文件,是解决Oracle8中的问题的关键。 8. **表和索引管理**:创建、修改和删除表,以及管理索引是数据库管理员...

    Oracle.DBA手记2.数据库诊断案例与内部恢复实践

    7. **逻辑恢复**:如何使用SQL来恢复已删除的记录,以及如何处理逻辑错误,如更新错误或删除错误。 8. **故障隔离与定位**:通过跟踪文件和报警日志来识别问题,使用AWR(自动工作负载仓库)和ASH(活动会话历史)...

Global site tag (gtag.js) - Google Analytics