删除备份
删除指定的备份:
1、 先用LIST命令找到备份唯一标识。
LIST BACKUP OF DATABASE ARCHIVELOG ALL; # lists backups of db files and logs LIST COPY; # lists only image copies LIST BACKUP; # lists everything |
2、 删除指定的备份存储库记录和备份文件。
DELETE BACKUPPIECE 101; DELETE CONTROLFILECOPY '/tmp/control01.ctl'; DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300; |
批量删除:
DELETE BACKUP; # deletes all backups on disk and tape DELETE BACKUP OF TABLESPACE users DEVICE TYPE sbt; # delete only from tape DELETE COPY OF CONTROLFILE LIKE '/tmp/%'; # LIKE specifies name of the copy DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 3 TIMES TO sbt; # backs up only if already backed up 3X to tape |
删除无效备份:
RMAN>CROSSCHECK BAKCUP; RMAN>DELETE EXPIRED BACKUP; |
删除过期备份:
RMAN>DELETE OBSOLETE; |
如果没有指定其他参数RMAN默认按照保留冗余策略找到过期备份后执行删除,等效于:
DELETE OBSOLETE REDUNDANCY = 1; |
删除过期备份也可以指定按照时间冗余策略来删除,例如:
DELETE OBSOLETE RECOVERY WINDOW OF 7 DAYS; |
强制删除备份
如果没有执行CROSSCHECK,而磁盘上备份文件确实被删除了,我们执行删除备份的时候会从RMAN收到错误提示,如下:
RMAN> delete backup tag 'TAG20070130T161822'; 使用通道 ORA_DISK_1 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 ------- ------- --- --- ----------- ----------- ---------- 110 115 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_R ECOVERY_AREA\ROME\BACKUPSET\2007_01_30\O1_MF_NNNDF_TAG20070130T161822_ |
多个通道执行交叉验证和删除备份
在执行CROSSCHECK和DELETE之前可以配置或者手工分配多个通道,RMAN将搜索和删除在不同类型的设备上执行的备份文件。适用以下情况:
1、 用一个命令交叉验证或者删除在不同设备上备份的文件(例如磁带和磁盘上都有备份文件)。
2、 交叉验证或者删除工作在RAC环境下备份到每个节点上的备份文件。
RMAN如何在多通道下执行CROSSCHECK和DELETE:
举个例子,我们的备份文件全部在磁盘上,磁带上没有备份文件,而我们给出了如下备份脚本,那么RMAN将会执行前边的两个磁盘CROSSCHECK而不会执行第三条磁带CROSSCHECK.
RUN
...{ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK CONNECT 'SYS/oracle@ |
注意:如果RMAN标记为EXPIRED状态的备份文件被修复后,我们执行DELETE EXPIRED BACKUP;命令后将会收到如下提示:
RMAN> delete expired backup; 使用通道 ORA_DISK_1 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 ------- ------- --- --- ----------- ----------- ---------- 112 117 1 1 EXPIRED DISK D:\ORACLE\PRODUCT\10.2.0\ |
一个命令交叉验证磁盘和磁带备份的例子:
CONFIGURE DEVICE TYPE sbt PARALLELISM 1; CONFIGURE DEFAULT DEVICE TYPE to sbt; CROSSCHECK BACKUP OF DATABASE; |

