Oracle
磁碟上存在舊歸檔日誌文件,但 RMAN 中不存在
我最近在磁碟上發現了 3 個非常舊的歸檔日誌目錄,它們沒有出現在 RMAN 中。
[oracle@ORACLE01 archivelog]$ du -sh * 122M 2017_02_25 4.9G 2017_02_26 2.5G 2017_02_27 1.6G 2017_06_28 474M 2017_06_29
在 RMAN 中,歸檔日誌從 6 月 28 日開始出現(如我所料)
RMAN> list archivelog all; (list truncated for brevity) using target database control file instead of recovery catalog List of Archived Log Copies for database with db_unique_name R2CI ===================================================================== Key Thrd Seq S Low Time ------- ---- ------- - ------------------- 30329 1 81000 A 28/06/2017 10:45:26 Name: /u01/.../archivelog/2017_06_28/o1_mf_1_81000_do72c0ng_.arc 30330 1 81001 A 28/06/2017 10:48:00 Name: /u01/.../archivelog/2017_06_28/o1_mf_1_81001_do73f110_.arc
如果我全部執行交叉檢查歸檔日誌,這只會獲取我希望存在的最近的歸檔日誌文件:
RMAN> crosscheck archivelog all; allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=21 device type=DISK validation succeeded for archived log archived log file name=/u01/.../archivelog/2017_06_28/o1_mf_1_81000_do72c0ng_.arc RECID=30329 STAMP=947846881 validation succeeded for archived log archived log file name=/u01/.../archivelog/2017_06_28/o1_mf_1_81001_do73f110_.arc RECID=30330 STAMP=947847970 validation succeeded for archived log archived log file name=/u01/.../archivelog/2017_06_28/o1_mf_1_81002_do74pzcw_.arc RECID=30331 STAMP=947849313 validation succeeded for archived log (list truncated for brevity)
在此之後的“list archivelog all”不會顯示這些舊文件。
問題:
- 這些文件可能來自哪裡/為什麼它們最終沒有像其他歸檔日誌一樣過期和刪除?
- 為什麼 crosscheck archivelog 都沒有檢測到它們並將它們添加回來?是因為它們與下一個最近的文件之間有 4 個月的差距嗎?
- 從磁碟上刪除這些文件是否安全?
謝謝
為什麼 crosscheck archivelog 都沒有檢測到它們並將它們添加回來?
因為那不是
crosscheck
。Crosscheck 讀取儲存庫中記錄的archlogs 的記錄——rman
報告的那些。它從儲存庫中讀取一條記錄,然後檢查該文件是否存在。如果不是,則記錄被標記為“過期”。如果rman
沒有跡象表明知道這些文件,我會說刪除它們是安全的。
這些文件可能來自哪裡/為什麼它們最終沒有像其他歸檔日誌一樣過期和刪除?
我懷疑這些文件從您的儲存庫中消失了,因為滿足以下條件:不再需要滿足您的恢復策略(rman 策略)的文件並且它們也超過了參數 controlfile_record_keep_time。此時,Oracle 將覆蓋您的控製文件中的記錄。如果您按天備份和刪除歸檔日誌,則不應有任何“死”歸檔日誌。
EdStevens 已經回答了另外兩個問題……