

目录:
Crosscheck [backup | backupset | copy | controlfilecopy | archivelog …… all ]
delete expired [backup | backupset | copy | controlfilecopy | archivelog ……all ]
crosscheck backup 验证RMAN列出的知识库与实际文件是否匹配(rman有,但是可能物理存储上被删除了,在列表中把无效的备份标记为)expired
delete expired 删除无效的备份
案例一

——备份集在物理存储被删除了
rman target
RMAN> backup datafile 4 format '/u01/app/oracle/user.bak2';
RMAN> list backup of datafile 4 ;
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13 Full 3.31M DISK 00:00:01 11-OCT-17
BP Key: 13 Status: AVAILABLE 可用 Compressed: NO Tag: TAG20171011T172256
Piece Name: u01/app/oracle/user.bak2
List of Datafiles in backup set 13
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
4 Full 1059011 11-OCT-17 +DATA/orcl/datafile/users.257.828541453
找存储上备份文件并删除
$ rm -rf u01/app/oracle/user.bak2
RMAN 不知道备份被删除
RMAN> list backup of datafile 4 ;
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13 Full 3.31M DISK 00:00:01 11-OCT-17
BP Key: 13 Status: AVAILABLE 还认为是可用 Compressed: NO Tag: TAG20171011T172256
Piece Name: u01/app/oracle/user.bak2
List of Datafiles in backup set 13
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
4 Full 1059011 11-OCT-17 +DATA/orcl/datafile/users.257.828541453
不能直接删除:
RMAN> delete backupset 4;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=30 device type=DISK
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
4 4 1 1 AVAILABLE DISK /u01/app/oracle/user.bak2
Do you really want to delete the above objects (enter YES or NO)? yes
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 提示你用crosscheck检查状态
RMAN-06211: ==========================
RMAN-06212: Object Type Filename/Handle
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Backup Piece /u01/app/oracle/user.bak2
使用crosscheck检查:
RMAN> crosscheck backup;
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/u01/app/oracle/user.bak2 RECID=6 STAMP=953261319
Crosschecked 3 objects
RMAN> delete expired backup;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
6 6 1 1 EXPIRED DISK /u01/app/oracle/user.bak2
Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/u01/app/oracle/user.bak2 RECID=6 STAMP=953261319
Deleted 1 EXPIRED objects
案例二

——归档文件被删除了
SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_8_drqtf20o_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_9_drqtmght_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_10_drqtydtg_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_09_02/o1_mf_1_11_dtod93cr_.arc
+FRA/orcl/archivelog/2017_08_28/thread_1_seq_14.373.953686651
+FRA/orcl/archivelog/2017_08_29/thread_1_seq_15.349.953260631
6 rows selected.
删除o1_mf_1_8_drqtf20o_.arc
$ rm -f /u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_8_drqtf20o_.arc
管理员做备份
RMAN> backup archivelog all;
Starting backup at 29-AUG-17
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 08/29/2017 04:09:51
RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_8_drqtf20o_.arc
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_8_drqtf20o_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_9_drqtmght_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_10_drqtydtg_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_09_02/o1_mf_1_11_dtod93cr_.arc
+FRA/orcl/archivelog/2017_08_28/thread_1_seq_14.373.953686651
+FRA/orcl/archivelog/2017_08_29/thread_1_seq_15.349.953260631
6 rows selected.
从o1_mf_1_8_drqtf20o_.arc开始备份,发现o1_mf_1_8_drqtf20o_.arc没有了。
RMAN> backup database plus archivelog ; #报错
Starting backup at 29-AUG-17
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup plus archivelog command at 08/29/2017 04:13:35
RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_8_drqtf20o_.arc
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
RMAN> crosscheck archivelog all;
RMAN> delete noprompt expired archivelog all;
SQL> select name from v$archived_log;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_9_drqtmght_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_08_10/o1_mf_1_10_drqtydtg_.arc
/u01/app/oracle/arch1/ORCL/archivelog/2017_09_02/o1_mf_1_11_dtod93cr_.arc
+FRA/orcl/archivelog/2017_08_28/thread_1_seq_14.373.953686651
+FRA/orcl/archivelog/2017_08_29/thread_1_seq_15.349.953260631
o1_mf_1_8_drqtf20o_.arc被删除,剩下的文件都是在物理存在的。
再去执行备份
RMAN> backup archivelog all;
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
Finished backup at 29-AUG-17
成功。









