rman 中的 delete all input 和 delete input 的区别
Kevin Zou
2011-8-30
为了研究清楚rman 中的 delete all input 和 delete input 的区别,做了一个测试,在测试前带有2个问题:
1)如果在LOCAL SERVER上设定了2个本地归档目录,那在RMAN BACKUP ARCHIVELOG时,是不是同一个SEQUENCE的ARCHIVEDLOG备份两次呢?
2)如何实现在每次BACKUP ARCHIVELOG后,删除本地的全部已经备份的ARCHIVEDLOG呢?
我的测试环境:
WINDOWS XP + ORACLE 10.2.0.1
两个ARCHIVED LOG DESTINATION分别是:
log_archive_dest_1 string location=D:\oracle\oradata\TEST\arch11
log_archive_dest_2 string location=D:\oracle\oradata\TEST\arch12
|
Note: The BACKUP ARCHIVELOG command only backs up one copy of each distinct log sequence number, so if the DELETE INPUT option is used without the ALL keyword, RMAN only deletes the copy of the file that it backs up.
看到ORACLE只选取了其中一个的ARCHIVED DESTINATION作为RMAN BACKUP 源。而且备份完成后也只是删除了log_archive_dest_1 目录下的归档日志。
是不是log_archive_dest_2的归档日志文件就一直保留在SERVER上呢?
不是的。
再次执行backup archivelog 命令会发现,系统会把log_archive_dest_2 上次已经备份的日志全部删除,只保留上次备份结束新增的归档日志。而log_archive_dest_1 又是删除的干净。
上次备份了SEQUENCE =48/49/50的日志,下次的备份就会删除log_archive_dest_2中SEQUENCE =48/49/50的日志。
至于为什么只选择log_archive_dest_1 作为备份源:
|
这里把log_archive_dest_1置空,把log_archive_dest_10 改为location=D:\oracle\oradata\TEST\arch11.
可以看到RMAN选择log_archive_dest_2 作为备份源。
至于RMAN选择哪个作为备份源,我想其实每个dest 的相同的SEQUENCE的归档日志都是相同的,那RMAN选择了编号靠前的dest作为备份源。
如果要删除已经备份的日志,要加上DELETE ALL INPUT 。
|
看到两个归档目录中的日志都被删除。
-THE END-