当我们因为某些原因通过手工方式删除了某些备份之后,RMAN将无法找到这些文件,但是这些文件在RMAN的备份记录中仍然存在,为了去除这些这些记录,可以使用RAMN的crosscheck命令,通过执行这个命令,RMAN可以去磁盘上检查这些文件是否存在,如果不再存在,RMAN会将文件标记为EXPIRED,然后这些信息可以被安全清除。
可以参考以下示例:
RMAN> crosscheck backup;
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/backup/full_EYGLE_20070302_6 recid=6 stamp=616158338
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/backup/arch_EYGLE_20070302_7 recid=7 stamp=616158450
……
backup piece handle=/oracle/backup/control01.ctl recid=16 stamp=618338836
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/oracle/backup/0hidm6vc_1_1618338EYGLExxx recid=17 stamp=618339309
Crosschecked 10 objects
然后可以删除这些过期的备份:
RMAN> delete expired backup;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Piece Name
------- ------- --- --- ------- ------ ----------
6 6 1 1 EXPIRED DISK /oracle/backup/full_EYGLE_20070302_6
7 7 1 1 EXPIRED DISK /oracle/backup/arch_EYGLE_20070302_7
8 8 1 1 EXPIRED DISK /oracle/backup/arch_EYGLE_20070302_8
9 9 1 1 EXPIRED DISK /oracle/backup/full_EYGLE_20070302_9
10 10 1 1 EXPIRED DISK /oracle/backup/arch_EYGLE_20070302_10
13 13 1 1 EXPIRED DISK /oracle/backup/arch_EYGLE_20070308_13
14 14 1 1 EXPIRED DISK /oracle/backup/full_EYGLE_20070308_14
15 15 1 1 EXPIRED DISK /oracle/backup/arch_EYGLE_20070308_15
16 16 1 1 EXPIRED DISK /oracle/backup/control01.ctl
Do you really want to delete the above objects (enter YES or NO)? YES
deleted backup piece
backup piece handle=/oracle/backup/full_EYGLE_20070302_6 recid=6 stamp=616158338
deleted backup piece
backup piece handle=/oracle/backup/arch_EYGLE_20070302_7 recid=7 stamp=616158450
deleted backup piece
backup piece handle=/oracle/backup/arch_EYGLE_20070302_8 recid=8 stamp=616158655
。。。。。。。。。
deleted backup piece
backup piece handle=/oracle/backup/arch_EYGLE_20070308_15 recid=15 stamp=616693985
deleted backup piece
backup piece handle=/oracle/backup/control01.ctl recid=16 stamp=618338836
Deleted 9 EXPIRED objects
当手动删除了归档日志之后,可以用类似的命令来验证归档日志文件:
RMAN> crosscheck archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
validation succeeded for archived log
………
archive log filename=/oracle/9.2.0/dbs/arch1_6.dbf recid=6463 stamp=617143390
validation succeeded for archived log
archive log filename=/oracle/9.2.0/dbs/arch1_7.dbf recid=6464 stamp=617143394
validation failed for archived log
archive log filename=/oracle/9.2.0/dbs/arch1_8.dbf recid=6465 stamp=617143398
validation failed for archived log
archive log filename=/oracle/9.2.0/dbs/arch1_9.dbf recid=6466 stamp=617143403
Crosschecked 8 objects
通过以下命令可以删除这些缺失的归档日志信息:
RMAN> delete noprompt expired archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
List of Archived Log Copies
Key Thrd Seq S Low Time Name
------- ---- ------- - --------- ----
6465 1 8 X 13-MAR-07 /oracle/9.2.0/dbs/arch1_8.dbf
6466 1 9 X 13-MAR-07 /oracle/9.2.0/dbs/arch1_9.dbf
deleted archive log
archive log filename=/oracle/9.2.0/dbs/arch1_8.dbf recid=6465 stamp=617143398
deleted archive log
archive log filename=/oracle/9.2.0/dbs/arch1_9.dbf recid=6466 stamp=617143403
Deleted 2 EXPIRED objects
在一些紧急的归档日志用尽磁盘空间导致数据库挂起的情况,可能需要手工清除部分归档日志,这可以使用RMAN来进行,使用LIST命令可以查看备份过的日志信息:
RMAN> LIST BACKUP OF ARCHIVELOG FROM SEQUENCE 140 thread 1;
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
2 7.73M DISK 00:00:07 26-DEC-10
BP Key: 2 Status: AVAILABLE Compressed: YES Tag: TAG20101226T220942
Piece Name: +FSHDG/rac/backupset/2010_12_26/annnf0_tag20101226t220942_0.271
List of Archived Logs in backup set 2
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 140 8925547095294 26-DEC-10 8925547095321 26-DEC-10
1 141 8925547095321 26-DEC-10 8925547095339 26-DEC-10
1 142 8925547095339 26-DEC-10 8925547095614 26-DEC-10
1 143 8925547095614 26-DEC-10 8925547095629 26-DEC-10
1 144 8925547095629 26-DEC-10 8925547123180 26-DEC-10
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
10 5.50K DISK 00:00:01 26-DEC-10
BP Key: 10 Status: AVAILABLE Compressed: YES Tag: TAG20101226T221136
Piece Name: +FSHDG/rac/backupset/2010_12_26/annnf0_tag20101226t221136_0.297
List of Archived Logs in backup set 10
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 145 8925547123180 26-DEC-10 8925547123256 26-DEC-10
RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 144;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=139 instance=rac1 devtype=DISK
List of Archived Log Copies
Key Thrd Seq S Low Time Name
------- ---- ------- - --------- ----
218 1 142 A 26-DEC-10 +FSHDG/rac/archivelog/2010_12_26/thread_1_seq_142.262
221 1 143 A 26-DEC-10 +FSHDG/rac/archivelog/2010_12_26/thread_1_seq_143.267
222 1 144 A 26-DEC-10 +FSHDG/rac/archivelog/2010_12_26/thread_1_seq_144.269
deleted archive log
archive log filename=+FSHDG/rac/archivelog/2010_12_26/thread_1_seq_142.262
deleted archive log
archive log filename=+FSHDG/rac/archivelog/2010_12_26/thread_1_seq_143.267
deleted archive log
archive log filename=+FSHDG/rac/archivelog/2010_12_26/thread_1_seq_144.269
Deleted 10 objects
删除也可以通过制定时间来进行:
RMAN> delete noprompt archivelog until time 'sysdate -1';
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=138 instance=rac1 devtype=DISK
List of Archived Log Copies
Key Thrd Seq S Low Time Name
------- ---- ------- - --------- ----
205 2 75 A 26-DEC-10 +FSHDG/rac/archivelog/2010_12_26/thread_2_seq_75.314
207 2 76 A 26-DEC-10 +FSHDG/rac/archivelog/2010_12_26/thread_2_seq_76.259
deleted archive log
archive log filename=+FSHDG/rac/archivelog/2010_12_26/thread_2_seq_75.314
deleted archive log
archive log filename=+FSHDG/rac/archivelog/2010_12_26/thread_2_seq_76.259
Deleted 10 objects
使用RMAN进行维护,可以保证RMAN的信息一致,任何时候我们都应当通过RMAN来进行相关备份的维护操作。
最后修改时间:2019-11-20 20:20:33
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




