DELETE OBSOLETE不刪除歸檔日誌以及歸檔的備份集
今天遇到一個奇怪的事情,使用OBSOLETE不刪除歸檔日誌,而且也不刪除過期的歸檔的BACKUP SET
從delete obsolete的概念來看如下:
The REPORT OBSOLETE and DELETE OBSOLETE commands work in two steps:
For each datafile for which there are full backup, datafile copy, or level 0 incremental backups, RMAN identifies the oldest full or
level 0 backup or copy that is not obsolete under the retention policy being tested. Any full backup, level 0 incremental backup, or
datafile copy of a datafile older than the one identified in this step is considered obsolete. Rman Not Deleting Obsolete Archive Logs And Archive Log Backups (文件 ID 282617.1)
Any archived logs and level 1 incremental backups that are older than the oldest non-obsolete full backup are then obsolete because
there is no full or level 0 backup to which they can be applied.
可以看到所謂的冗餘策略不管是天數還是副本數量,保證的都是你冗餘時間或者副本最早的那一個FULL BACKUP DATABASE(FULL BACK 或者LEVEL 0增量備份)
是能夠恢復的,而早於這個FULL BACKUP以前的增量備份和歸檔日誌或者其他備份都是失效的。簡單的說delete obsolete會刪除已經沒有用的不用於恢復的
歸檔日誌。但是今天遇到的問題是明顯的已經處於無用狀態的歸檔任然保留,delete obsolete不能刪除。
檢視MOS發現問題如下:
once the datafile is identified, the file must be brought up to date with the other files. To do this, execute the following steps:
# If file is Offline:
1. Recover datafile XX:
alter database recover datafile XX
-- recovery will apply archives.
2. Set the Datafile Online
alter database datafile XX online;
or
# If tablespace is in begin backup mode:
1. sql> alter tablespace end backup;
Once file is brought upto date, RMAN will not have the need to retain older archivelog files.
簡單的說就是如果有資料檔案處於OFFLINE 狀態或者HOT BACKUP 狀態,一旦重新ONLINE這個資料檔案或者END BACKUP這個檔案
是需要歸檔來進行恢復,所以是不能刪除的,所以馬上檢視資料檔案狀態如下:
查詢過程和處理過程
SQL> select * from dba_data_files;
FILE_NAME ONLINE_STATUS
-------------------------------------------------------- -------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\USERS01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\SYSAUX01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\UNDOTBS01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\SYSTEM01.DBF SYSTEM
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\TEST01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\UNTDOTBS01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\TESTCK.DBF RECOVER
7 rows selected
SQL> drop tablespace testck;
drop tablespace testck
ORA-01549: tablespace not empty, use INCLUDING CONTENTS option
SQL> drop tablespace testck including contents and datafiles;
Tablespace dropped
SQL> select * from dba_data_files;
FILE_NAME ONLINE_STATUS
-------------------------------------------------------- -------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\USERS01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\SYSAUX01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\UNDOTBS01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\SYSTEM01.DBF SYSTEM
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\TEST01.DBF ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\BENDI\UNTDOTBS01.DBF ONLINE
6 rows selected
我刪除了表空間後,REPORT OBSOLETE可以正常刪除過期的歸檔和歸檔備份集。
當然也有MOS文章說還有一種可能的情況就是BUG。
Bug 12412131 - Archivelog backups are not being deleted by 'DELETE OBSOLETE' (文件 ID 12412131.8)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-1104189/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 誤刪歸檔日誌除導致備份歸檔日誌失敗
- 手工rm刪除歸檔日誌對備份歸檔日誌的影響
- RMAN delete archivelog命令刪除歸檔日誌及歸檔日誌拷貝deleteHive
- 歸檔日誌的刪除
- 備份歸檔日誌
- 刪除歸檔日誌檔案
- rman刪除歸檔日誌命令集
- 備份歸檔日誌檔案
- oracle刪除歸檔日誌Oracle
- Oracle歸檔日誌刪除Oracle
- 刪除歸檔,保留最近的5個歸檔日誌
- 歸檔日誌大小 與使用rman 備份後的歸檔日誌產生的備份集大小的關係
- 刪除data guard歸檔日誌
- 手動刪除歸檔日誌
- 作用RMAN 刪除歸檔日誌
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- 備份之歸檔重做日誌備份
- oracle rman不能自動刪除歸檔日誌備份解決Oracle
- 當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌Oracle
- 用RMAN備份歸檔日誌時檢查歸檔日誌是否存在
- rman全庫備份備份歸檔日誌檔案
- Oralce資料庫關閉歸檔日誌並且刪除歸檔日誌資料庫
- oracle 刪除過期的歸檔日誌Oracle
- 歸檔日誌刪除的五種方法
- 【Oracle】 rman 刪除歸檔日誌的命令Oracle
- 【Oracle】歸檔日誌管理-設定歸檔日誌路徑以及歸檔日誌冗餘Oracle
- RMAN備份歸檔日誌多份 %c
- RMAN備份歸檔日誌指令碼指令碼
- Oracle設定多個歸檔路徑生成多份歸檔日誌,Rman備份時也只備份其中的一份歸檔日誌Oracle
- 冷備份+歸檔日誌的恢復
- RMAN故障一例(歸檔的備份,從不obsolete)
- 備庫自動刪除已應用的歸檔日誌
- Backup And Recovery User's Guide-備份後刪除歸檔重做日誌GUIIDE
- crontab不能自動刪除歸檔日誌
- oracle dataguard 自動刪除歸檔日誌Oracle
- 如何定期自動刪除歸檔日誌
- 【警鐘】謹慎刪除歸檔日誌
- 如何正確刪除ORACLE歸檔日誌檔案Oracle