Rman Crosscheck删除失效归档

一 环境

OS

RHEL5.4 x86_64

DB

SQL> COL PRODUCT FORMAT A55
SQL> COL VERSION FORMAT A15
SQL> COL STATUS FORMAT A15
SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION;
 
PRODUCT                                                 VERSION         STATUS
------------------------------------------------------- --------------- ---------------
NLSRTL                                                  10.2.0.4.0      Production
Oracle Database 10g Enterprise Edition                  10.2.0.4.0      64bi
PL/SQL                                                  10.2.0.4.0      Production
TNS for Linux:                                          10.2.0.4.0      Production
 
SQL>

RMAN 备份脚本

 $cat /home/oracle/db_script/rman/testdb2/rman_testdb2_full.sh
#!/bin/bash
export ORACLE_BASE=/oracle/database
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=testdb2

rman_backup_script=/home/oracle/db_script/rman/testdb2/
rman_backup_dir=/oracle/database/backup/rman/testdb2/
dt=`date +%m%d`

rman target / >>$rman_backup_script/rman_${ORACLE_SID}_full_${dt}.log <run{
backup database format '$rman_backup_dir/db_%d_%T_%s_%p_%t' plus archivelog format='$rman_backup_dir/arch_%d_%T_%s_%p_%t' delete all input;
}
run{
crosscheck backup;
crosscheck backupset;
delete noprompt expired backup;
delete noprompt obsolete;
}
exit
EOF

二 问题描述

用上面的脚本备库,看rman日志报错.(脚本中仅对备份出来的文件做check了)
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
using channel ORA_DISK_1
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Archive Log          1541   10-FEB-11          /oracle/database/arch/testdb2/1_28_741358677.dbf

RMAN-06207: WARNING: 1 objects could not be deleted for DISK channel(s) due
RMAN-06208:          to mismatched status.  Use CROSSCHECK command to fix status
RMAN-06210: List of Mismatched objects
RMAN-06211: ==========================
RMAN-06212:   Object Type   Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Archivelog      /oracle/database/arch/testdb2/1_28_741358677.dbf

三原因

某个时候使用操作系统命令将/oracle/database/arch/testdb2/1_28_741358677.dbf 归档日志文件删除.但数据库中却没有将些文件相应状态更新所致.

四操作解决

提示说用crosscheck命令固定状态.
RMAN> crosscheck archivelog all;

released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=138 devtype=DISK
validation failed for archived log
archive log filename=/oracle/database/arch/testdb2/1_28_741358677.dbf recid=1541 stamp=742754094
validation succeeded for archived log
archive log filename=/oracle/database/arch/testdb2/1_5_742754162.dbf recid=1547 stamp=743292043
validation succeeded for archived log
archive log filename=/oracle/database/arch/testdb2/1_6_742754162.dbf recid=1548 stamp=743662868
validation succeeded for archived log
archive log filename=/oracle/database/arch/testdb2/1_7_742754162.dbf recid=1549 stamp=743738412
validation succeeded for archived log
archive log filename=/oracle/database/arch/testdb2/1_8_742754162.dbf recid=1550 stamp=744098442
validation succeeded for archived log
archive log filename=/oracle/database/arch/testdb2/1_9_742754162.dbf recid=1551 stamp=744739215
...
...

注意 /oracle/database/arch/testdb2/1_28_741358677.dbf 此无效文件被放在了第一条. 做DBA一定要仔细,不能惯性思考问题.

删除无效归档日志
RMAN> delete expired archivelog all;

using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=131 devtype=DISK

List of Archived Log Copies
Key     Thrd Seq     S Low Time  Name
------- ---- ------- - --------- ----
1541    1    28      X 10-FEB-11 /oracle/database/arch/testdb2/1_28_741358677.dbf

Do you really want to delete the above objects (enter YES or NO)? y
deleted archive log
archive log filename=/oracle/database/arch/testdb2/1_28_741358677.dbf recid=1541 stamp=742754094
Deleted 1 EXPIRED objects


RMAN>


个人总结

谢谢张宏伟老师的提示.
SQL> select name,sequence#,RESETLOGS_TIME,first_time from v$archived_log where name like '%_28_%';
 
NAME                                                                              SEQUENCE# RESETLOGS_TIME FIRST_TIME
-------------------------------------------------------------------------------- ---------- -------------- -----------
/oracle/database/arch/testdb2/1_28_741358677.dbf                                         28 1/25/2011 12:5 2/10/2011 4
/oracle/database/arch/testdb2/1_28_742754162.dbf                                         28 2/10/2011 4:36 5/6/2011 1:
 
SQL>

确定数据库真记录着这个日志.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11780477/viewspace-709602/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11780477/viewspace-709602/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值