归档日志 delete input 和delete all input 区别

本文探讨了RMAN归档日志删除输入(deleteinput)与删除所有输入(deleteallinput)的区别,通过实验展示了在多归档位置情况下,RMAN的删除行为遵循备份来源原则,同时解释了在不同删除选项下归档日志的清理策略。

关于archivelog delete input 和delete all input区别
1 rman的归档位置定义两个
  log_archive_dest_1                   string      LOCATION=/oracle/archive
  log_archive_dest_2                   string      LOCATION=/oracle/archive2/
2 执行alter system switch logfile命令后两个归档目录下的归档日志
[oracle@oracle archive]$ ls -lt
total 2648
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:29 1_38_791488634.dbf
-rw-r----- 1 oracle oinstall    1536 Aug 17 16:29 1_37_791488634.dbf
-rw-r----- 1 oracle oinstall    1536 Aug 17 16:29 1_35_791488634.dbf
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:29 1_36_791488634.dbf
-rw-r----- 1 oracle oinstall    5120 Aug 17 16:26 1_34_791488634.dbf
-rw-r----- 1 oracle oinstall   59392 Aug 17 16:23 1_33_791488634.dbf
--------------------------------------------------------------------------
[root@oracle archive2]# ls -lt
total 88
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:29 1_38_791488634.dbf
-rw-r----- 1 oracle oinstall  1536 Aug 17 16:29 1_37_791488634.dbf
-rw-r----- 1 oracle oinstall  1536 Aug 17 16:29 1_35_791488634.dbf
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:29 1_36_791488634.dbf
-rw-r----- 1 oracle oinstall  5120 Aug 17 16:26 1_34_791488634.dbf
-rw-r----- 1 oracle oinstall 59392 Aug 17 16:23 1_33_791488634.dbf
3 执行
RMAN> backup database plus archivelog delete input; 查看日志可以发现oracle删除的归档日志仅仅是其备份过的。
archived log file name=/oracle/archive2/1_33_791488634.dbf RECID=321 STAMP=791569408
archived log file name=/oracle/archive/1_34_791488634.dbf RECID=322 STAMP=791569592
archived log file name=/oracle/archive/1_35_791488634.dbf RECID=324 STAMP=791569775
archived log file name=/oracle/archive2/1_36_791488634.dbf RECID=327 STAMP=791569775
archived log file name=/oracle/archive2/1_37_791488634.dbf RECID=329 STAMP=791569778
archived log file name=/oracle/archive/1_38_791488634.dbf RECID=330 STAMP=791569780
archived log file name=/oracle/archive/1_39_791488634.dbf RECID=332 STAMP=791570012
archived log file name=/oracle/archive/1_40_791488634.dbf RECID=334 STAMP=791570187
注意删除的归档日志位置随机有archive2 也有archive。
4 重新切换生成归档日志
[oracle@oracle archive]$ ls -lt
total 2684
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:53 1_46_791488634.dbf
-rw-r----- 1 oracle oinstall    1536 Aug 17 16:53 1_44_791488634.dbf
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:53 1_45_791488634.dbf
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:53 1_42_791488634.dbf
-rw-r----- 1 oracle oinstall    1024 Aug 17 16:53 1_43_791488634.dbf
-rw-r----- 1 oracle oinstall   32768 Aug 17 16:53 1_41_791488634.dbf
----------------------------------------------------------------------------
[root@oracle archive2]# ls -lt
total 92
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:53 1_46_791488634.dbf
-rw-r----- 1 oracle oinstall  1536 Aug 17 16:53 1_44_791488634.dbf
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:53 1_45_791488634.dbf
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:53 1_42_791488634.dbf
-rw-r----- 1 oracle oinstall  1024 Aug 17 16:53 1_43_791488634.dbf
-rw-r----- 1 oracle oinstall 32768 Aug 17 16:53 1_41_791488634.dbf

5 执行backup database plus archivelog delete all input ;查看日志发现oracle删除的归档日志 发现删除了两个目录下的所有日志
archived log file name=/oracle/archive2/1_40_791488634.dbf RECID=335 STAMP=791570187
archived log file name=/oracle/archive/1_41_791488634.dbf RECID=336 STAMP=791571221
archived log file name=/oracle/archive2/1_41_791488634.dbf RECID=337 STAMP=791571221
archived log file name=/oracle/archive2/1_42_791488634.dbf RECID=339 STAMP=791571222
archived log file name=/oracle/archive/1_42_791488634.dbf RECID=338 STAMP=791571222
archived log file name=/oracle/archive/1_43_791488634.dbf RECID=340 STAMP=791571222
archived log file name=/oracle/archive2/1_43_791488634.dbf RECID=341 STAMP=791571222
archived log file name=/oracle/archive/1_44_791488634.dbf RECID=342 STAMP=791571228
archived log file name=/oracle/archive2/1_44_791488634.dbf RECID=343 STAMP=791571228
archived log file name=/oracle/archive/1_45_791488634.dbf RECID=344 STAMP=791571228
archived log file name=/oracle/archive2/1_45_791488634.dbf RECID=345 STAMP=791571228
archived log file name=/oracle/archive2/1_46_791488634.dbf RECID=347 STAMP=791571229
archived log file name=/oracle/archive/1_46_791488634.dbf RECID=346 STAMP=791571229
archived log file name=/oracle/archive/1_47_791488634.dbf RECID=348 STAMP=791571526
archived log file name=/oracle/archive2/1_47_791488634.dbf RECID=349 STAMP=791571526

oracle官方文档提示:
If you had specified DELETE INPUT rather than DELETE ALL INPUT, then RMAN would have only deleted the specific archived redo log files that it backed up. For
example, RMAN would delete the logs in /arc_dest1 if these files were used as the source of the backup, but leave the contents of the /arc_dest2 intact
如果指定delete input ,则rman将仅删除已备份的归档日志,例如对于有两个归档目录 /arc_dest1 和 /arc_dest2 如果把/arc_dest1做为backup的源,delete input将删除 /arc_dest1 中的内容,保留dest2中的归档日志,通过实验可以看出,就算有两个归档位置,rman备份的时候貌似是以日志文件为源,备份过的日志删除。
---------------------------------------------------------------------------------------------------------------------------------------------------
If you had specified DELETE ALL INPUT RMAN backs up only one copy of each log sequence number in these archiving locations.it deletes all copies of any log that it backed up from the other archiving destinations
如果指定delete all input RMAN对于所有归档目录中的日志序列号只备份一次,同时rman会删除dest1 和dest2 中所有归档日志。

结论:对于仅有一个归档目录 delete input 和delet all input 没啥区别。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24162410/viewspace-1813741/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24162410/viewspace-1813741/

### Oracle Backup Archivelog All Delete Input 的含义作用 在 Oracle 数据库中,`DELETE INPUT` 是 RMAN(Recovery Manager)命令的一个选项,用于指定在完成归档日志备份后是否删除源归档日志文件。具体来说,当使用 `BACKUP ARCHIVELOG ALL DELETE INPUT` 命令时,RMAN 会执行以下操作: 1. **备份所有尚未备份的归档日志**:RMAN 会查找所有尚未被备份的归档日志,并将它们备份到指定的目标位置。 2. **删除已备份的归档日志**:一旦归档日志成功备份,RMAN 会自动从磁盘上删除这些归档日志文件[^1]。 此功能的主要作用是释放磁盘空间,特别是在磁盘存储有限或需要频繁清理旧归档日志的情况下。通过这种方式,可以确保磁盘不会因为大量累积的归档日志而耗尽空间。 #### 使用场景 以下是 `DELETE INPUT` 的一些典型应用场景: - **磁盘空间管理**:当数据库生成大量归档日志时,定期使用 `DELETE INPUT` 可以有效减少磁盘占用。 - **归档日志的生命周期管理**:结合 RMAN 的保留策略,确保归档日志仅在必要时保留在磁盘上。 - **自动化脚本**:在日常维护任务中,可以通过脚本自动执行归档日志的备份清理操作。 #### 示例代码 以下是一个使用 `BACKUP ARCHIVELOG ALL DELETE INPUT` 的示例脚本: ```sql RUN { # 备份所有尚未备份的归档日志,并在成功备份后删除源文件 BACKUP ARCHIVELOG ALL DELETE INPUT; } ``` 在此脚本中: - `BACKUP ARCHIVELOG ALL` 指定备份所有尚未备份的归档日志。 - `DELETE INPUT` 表示在备份完成后删除源归档日志文件。 #### 注意事项 尽管 `DELETE INPUT` 提高了磁盘空间利用率,但在实际应用中仍需注意以下几点: - **确保备份成功**:只有在归档日志成功备份到目标位置后,才会删除源文件。如果备份失败,源文件将保留不变[^2]。 - **数据安全性**:在执行 `DELETE INPUT` 前,建议验证备份目标的可靠性可用性,以避免因备份失败导致数据丢失。 - **日志切换频率**:如果数据库日志切换频率较高,可能需要更频繁地执行归档日志备份清理操作。 ### 总结 `DELETE INPUT` 是 RMAN 中一个强大的功能,允许在备份归档日志后自动删除源文件。它有助于优化磁盘空间使用并简化归档日志管理流程。然而,在使用此功能时,必须确保备份过程的完整性可靠性,以防止数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值