删除归档日志和过期备份
删除归档日志
删除某个Sequence之前(包含该Sequence)的归档日志
RMAN>delete archivelog until sequence xxx; RMAN>delete archivelog from sequence xxx until sequence xxx;
删除系统时间1天以前的归档日志,不会删除闪回区有效的归档日志(可以指定删除多久日志)
RMAN>delete archivelog all completed before 'sysdate-1';
force参数表示会删除有效归档日志
RMAN>delete force archivelog all completed before 'sysdate-1';
删除某个时间段的归档日志,例如删除20天前到2天前的归档日志。
RMAN>delete archivelog from time 'sysdate-20' until time 'sysdate-2'; RMAN>delete archivelog from time 'sysdate-1';
删除所有的归档日志。
RMAN>delete noprompt archivelog all; RMAN>delete noprompt archivelog all completed before 'sysdate'; RMAN> delete expired archivelog all;
注意:delete expired archivelog all 实际上此命令不会真正删除归档日志,它删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了文件的信息,实际删除的只是RMAN资料库或控制文件中的记录;
RMAN> delete obsolete; RMAN> delete noprompt obsolete;
注意:delete obsolete这个是清理过期备份,它也会删除过期的归档日志。但是特殊情况下,除闪回区有效的归档日志不会删除。
上面都是使用RMAN命令删除归档日志,最后一种方式,也是最不推荐的一种方式就是使用命令从系统系统删除归档日志,使用rm删除了备份文件后,需要执行crosscheck archivelog all命令校检归档日志是否失效。
删除备份
删除过期备份
删除过期备份,RMAN会根据备份冗余策略确定备份是否过期。然后删除过期的备份。
RMAN> report obsolete; RMAN> delete obsolete; 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 -------------------- ------ ------------------ -------------------- Backup Set 1 18-MAY-17 Backup Piece 1 18-MAY-17 /u03/backup/backupsets/ora_df944345823_s1_s1 Control File Copy 1 18-MAY-17 /u03/backup/backupsets/controlfile.copy Do you really want to delete the above objects (enter YES or NO)? yes deleted backup piece backup piece handle=/u03/backup/backupsets/ora_df944345823_s1_s1 recid=1 stamp=944345824 deleted control file copy control file copy filename=/u03/backup/backupsets/controlfile.copy recid=1 stamp=944347366 Deleted 2 objects
删除无效备份
RMAN> delete expired backup;
关于delete obsolete 与delete expired backup的区别:
备份集有两种状态A(Available,RMAN认为该项存在于备份介质上), X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上),一般要运行CROSSCHECK才能检查,关于delete expired与delete obsolete的区别
delete obsolete 会删除旧于备份保留策略定义的备份数据同时也更新RMAN资料库以及控制文件。
delete expired 删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录信息,也就是说delete expired是不会删除备份集文件的。
删除EXPIRED副本
RMAN> delete expired copy;
删除特定印象副本
RMAN> delete datafile copy 'xxxxxxxxxxx';
删除特定备份集
RMAN> delete backupset 24; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 24 24 1 1 AVAILABLE DISK /u01/app/oracle/flash_recovery_area/GSP/backupset/kerryfull_GSP_20170520_25 Do you really want to delete the above objects (enter YES or NO)? yes deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/GSP/backupset/kerryfull_GSP_20170520_25 RECID=24 STAMP=944472557 Deleted 1 objects
删除特定备份片
RMAN> delete backuppiece '/u01/app/oracle/flash_recovery_area/GSP/backupset/kerryfull_GSP_20170520_26'; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 25 25 1 1 AVAILABLE DISK /u01/app/oracle/flash_recovery_area/GSP/backupset/kerryfull_GSP_20170520_26 Do you really want to delete the above objects (enter YES or NO)? yes deleted backup piece backup piece handle=/u01/app/oracle/flash_recovery_area/GSP/backupset/kerryfull_GSP_20170520_26 RECID=25 STAMP=944472653 Deleted 1 objects
删除所有备份集
RMAN> delete backup; RMAN> delete noprompt backup;
删除所有备份文件副本
RMAN> delete datafilecopy all;
删除某个备份文件副本
RMAN> delete datafilecopy xxx;