暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

RMAN归档日志维护与crosscheck命令

原创 eygle 2019-11-20
2235

当我们因为某些原因通过手工方式删除了某些备份之后,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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论