Oracle體系結構-歸檔日志文件(Archive Log Files)

核心概念:什么是歸檔日志文件?

  • 定義: 歸檔日志文件(Archive Log Files)是在線重做日志文件(Online Redo Log Files)在被覆蓋之前的一個完整副本。它們由 Oracle 的后臺進程 ARCn(歸檔進程)自動或按需創建。
  • 來源: 當在線重做日志組被寫滿(通過 LOG_ARCHIVE_MAX_PROCESSES 設置)或發生日志切換(手動或自動)時,當前活動的在線重做日志文件就變得“非活動”并可被覆蓋。在覆蓋發生之前,如果數據庫處于 ARCHIVELOG 模式,ARCn 進程會將該“非活動”的重做日志文件的內容復制到一個或多個指定的目的地(如磁盤目錄、ASM磁盤組、備用數據庫等),這個復制品就是歸檔日志文件。
  • 目的: 其主要目的是永久保存數據庫的所有變更歷史記錄,超越了有限的在線重做日志組所能保存的時間范圍。這使得數據庫能夠:
    1. 恢復到過去的任意時間點(Point-in-Time Recovery, PITR)。
    2. 在數據文件介質損壞(如磁盤故障)后進行完全恢復(Complete Recovery)。
    3. 支持備用數據庫(Data Guard)的持續同步。
    4. 支持更高效的增量備份策略(RMAN)。

一、 原理 (Principle)

  1. 重做機制基礎:

    • Oracle 使用“寫前日志”(Write-Ahead Logging, WAL)機制保證數據的一致性和可恢復性。
    • 任何對數據庫的修改(DML, DDL, DCL)在寫入數據文件之前,首先會生成對應的“重做記錄”(Redo Record),并寫入內存中的 重做日志緩沖區(Redo Log Buffer)
    • LGWR(Log Writer)進程負責在特定條件下(提交時、日志緩沖區滿1/3、每3秒、DBWn寫臟塊前等)將重做日志緩沖區的內容刷新到在線重做日志文件(Online Redo Log Files) 中。
    • 在線重做日志文件是循環使用的:通常由多個組(至少2組)構成,當一個組寫滿后,LGWR 切換到下一個組。這個切換動作稱為日志切換(Log Switch)
  2. ARCHIVELOG vs. NOARCHIVELOG 模式:

    • NOARCHIVELOG 模式: 當發生日志切換時,舊的、非活動的在線重做日志文件可以被 LGWR 直接覆蓋重用。不生成歸檔日志。數據庫只能恢復到上一次完整備份(冷備份或一致的熱備份)的時間點。無法進行 PITR 或持續同步備用數據庫。僅適用于非關鍵、可丟失數據的測試或開發環境。
    • ARCHIVELOG 模式: 當發生日志切換時,數據庫不會立即覆蓋剛變為非活動的在線重做日志文件。它會觸發 ARCn 進程(如果配置了多個歸檔進程)將這個文件的內容復制(歸檔)到一個或多個預設的目的地。只有在該文件被成功歸檔后,LGWR 才能再次覆蓋使用這個日志組。這確保了重做歷史的連續性得以永久保存。
  3. 歸檔進程 (ARCn):

    • 負責執行實際的歸檔操作。可以配置多個歸檔進程 (ARC0, ARC1, ... ARC9, ARCa, ... ARCt) 以提高歸檔吞吐量和并行度(通過 LOG_ARCHIVE_MAX_PROCESSES 參數)。
    • 監聽日志切換事件。
    • 識別需要歸檔的非活動在線重做日志文件。
    • 讀取該文件的內容。
    • 將內容寫入到配置的歸檔目標(LOG_ARCHIVE_DEST_n)。
    • 在控制文件和相關的數據字典視圖(如 V$ARCHIVED_LOG)中記錄歸檔日志文件的詳細信息(序列號、線程號、時間戳、大小、完成時間、目標位置、文件名等)。
    • 標記該在線重做日志文件為“已歸檔”,允許 LGWR 后續覆蓋它。
  4. 歸檔日志序列 (Sequence):

    • 每個成功生成的歸檔日志文件都會被賦予一個唯一的、單調遞增的序列號
    • 序列號在數據庫實例的生命周期內連續增長,即使數據庫重啟也不會重置(不同于在線重做日志的循環)。
    • 序列號是恢復操作的關鍵標識符,用于按順序應用歸檔日志。V$LOG_HISTORYV$ARCHIVED_LOG 視圖記錄了序列號信息。
  5. 時間線 (Timeline):

    • 在 Data Guard 環境或執行了不完全恢復(如 OPEN RESETLOGS)后,數據庫會開啟一個新的時間線(Timeline)。
    • 歸檔日志文件名或內部信息會包含時間線標識符(通常是一個數字后綴)。
    • 時間線確保了不同歷史分支(例如主庫時間線1,備庫故障切換后成為新主庫開啟時間線2)的歸檔日志不會混淆,恢復時能精確找到正確分支上的日志。

二、 特性 (Characteristics)

  1. 連續性 (Continuity): 歸檔日志序列必須是連續的。缺失任何一個序列號的歸檔日志都會導致后續的恢復操作無法進行(直到缺失點)。V$ARCHIVED_LOG 視圖的 SEQUENCE#THREAD# 列可用于驗證連續性。
  2. 只讀性 (Read-Only): 一旦生成,歸檔日志文件的內容就固定不變,具有只讀屬性。
  3. 命名規范 (Naming Convention): 文件名通常遵循特定格式(可通過 LOG_ARCHIVE_FORMAT 參數自定義),默認格式通常包含:
    • %t: 線程號(Thread number),在RAC環境中重要。
    • %s: 日志序列號(Log sequence number)。
    • %r: 重置日志ID(Resetlogs ID),在 OPEN RESETLOGS 后改變,用于區分時間線(在文件名中隱含時間線信息,或直接使用 %T 表示時間線)。
    • 例如:LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc' 可能生成 arch_1_100_1234567890.arc
  4. 目的地 (Destinations): 歸檔日志可以寫入多個本地或遠程目的地,提供冗余和容災能力。使用 LOG_ARCHIVE_DEST_n (n=1..31) 參數配置(取代舊的 LOG_ARCHIVE_DESTLOG_ARCHIVE_DUPLEX_DEST)。
    • 本地磁盤目錄 (LOCATION=)。
    • ASM 磁盤組 (LOCATION=+DISKGROUP/...)。
    • 遠程備用數據庫 (SERVICE=)。
    • 可以設置狀態 (STATUS=ENABLE|DEFER|ALTERNATE)、有效性 (VALID_FOR=...)、是否強制 (MANDATORY|OPTIONAL) 等屬性。
  5. 壓縮 (Compression): 從 Oracle 10g R2 開始,支持在歸檔時對日志進行壓縮(通過 ALTER SYSTEM SET LOG_ARCHIVE_COMPRESSION=ENABLE),顯著節省存儲空間,但會增加少量 CPU 開銷。壓縮算法可通過 LOG_ARCHIVE_COMPRESSION_ALGORITHM 選擇。
  6. 加密 (Encryption): 如果數據庫配置了透明數據加密(TDE),歸檔日志可以使用相同的加密密鑰進行加密(通過 ALTER SYSTEM SET LOG_ARCHIVE_ENCRYPTION=ENABLE),增強靜態數據的安全性。
  7. 分片 (Splitting): 單個非常大的在線重做日志文件歸檔時,可以自動分割成多個更小的歸檔日志文件片段(通過設置 LOG_ARCHIVE_MIN_SUCCEED_DESTLOG_ARCHIVE_DEST_nMAX_FAILURE 屬性,并結合 LOG_ARCHIVE_FORMAT),便于傳輸和管理。
  8. 延遲應用 (Deferred Apply - Data Guard): 在物理備用數據庫上,可以配置延遲應用歸檔日志,用于在邏輯錯誤發生后有時間進行補救。
  9. 12c+ 多租戶 (Multitenant): 在 CDB 環境中,歸檔日志文件包含整個 CDB 和所有 PDB 的重做信息。V$ARCHIVED_LOG 視圖在 CDB$ROOT 中顯示所有容器的歸檔日志信息,在 PDB 中僅顯示與該 PDB 相關的信息(通過 CON_ID 列區分)。

三、 作用 (Role & Importance)

  1. 數據恢復的基石:

    • 完全恢復 (Complete Recovery): 當發生數據文件介質損壞(如磁盤壞道)時,可以使用最近的全量備份(數據文件備份)結合從備份時間點之后生成的所有歸檔日志文件和應用在線重做日志中的當前更改,將數據庫恢復到故障前的狀態,實現零數據丟失(前提是歸檔日志和在線日志完整)。RMAN 自動管理這個過程。
    • 時間點恢復 (Point-in-Time Recovery, PITR): 可以精確地將數據庫(整個數據庫、特定表空間或特定數據文件)恢復到過去的任意一個時間點(SCN 或時間戳)。這對于:
      • 撤銷用戶誤操作(如 DROP TABLE, TRUNCATE TABLE, 錯誤的大批量更新)。
      • 撤銷邏輯數據損壞。
      • 滿足法規要求(恢復到審計點)。
      • 創建測試環境快照。PITR 完全依賴歸檔日志文件來“回放”或“前滾”到指定的精確時間點。
    • 不完全恢復 (Incomplete Recovery): 當無法獲得完整的歸檔日志序列(如丟失了某個日志文件)或需要故意停止在某個特定點(如 PITR)時進行的恢復。恢復完成后需要使用 OPEN RESETLOGS 打開數據庫,這會重置日志序列并開始一個新的時間線。
  2. 高可用性與容災 (Data Guard):

    • 歸檔日志文件是 Oracle Data Guard 技術的生命線。在主庫(Primary Database)生成的歸檔日志文件會被傳輸(Ship)到一個或多個物理備用數據庫(Physical Standby)或邏輯備用數據庫(Logical Standby)。
    • 在物理備庫上,RFS(Remote File Server)進程接收歸檔日志,MRP(Managed Recovery Process)進程應用這些日志,使備庫與主庫保持物理塊級別的一致。物理備庫可以隨時切換(Switchover)或故障轉移(Failover)為主庫。
    • 在邏輯備庫上,LSP(Logical Standby Process)進程解析歸檔日志中的 SQL 語句并在備庫上執行,使備庫保持邏輯一致。邏輯備庫可以在應用日志的同時保持只讀打開狀態用于報表查詢。
    • 歸檔日志的連續、可靠傳輸和應用是實現數據零丟失(Zero Data Loss)保護(如 SYNC / FASTSYNC 傳輸模式與實時應用)和最小化數據丟失(ASYNC 模式)的關鍵。
  3. 高效的備份策略 (RMAN):

    • 增量備份的基礎: RMAN 的增量備份(Incremental Backups)依賴于歸檔日志。增量備份只捕獲自上次備份(全量或增量)以來發生變化的數據塊。為了將增量備份應用到基礎備份上以創建一個新的完整映像副本(Image Copy),或者在恢復時應用增量備份,RMAN 需要歸檔日志文件來確保數據塊的一致性(解決“模糊塊”問題)。
    • 增量更新備份: 結合增量備份和歸檔日志應用,可以實現高效的“增量更新”備份策略,快速創建接近當前的完整數據文件副本。
    • 備份歸檔日志: RMAN 可以備份歸檔日志文件本身,并在備份后(可選)刪除已備份的歸檔日志文件以釋放空間。這是備份策略的重要組成部分,確保擁有恢復所需的完整日志鏈。
  4. 日志挖掘 (LogMiner):

    • 使用 DBMS_LOGMNR 包可以解析在線或歸檔日志文件的內容,從中提取原始的 SQL 語句(DDL 和 DML)和事務信息。
    • 用于:
      • 審計用戶操作。
      • 診斷問題,分析歷史變更。
      • 執行事務級的回滾(Undo SQL)。
      • 邏輯備用數據庫的核心技術。
  5. 流復制 (Streams): (注:Oracle Streams 在 12c 后已過時,被 GoldenGate 取代,但其原理類似) 歸檔日志是捕獲數據庫變更(Capture Process)的主要來源之一,用于將變更傳播到其他數據庫。

四、 故障恢復 (Troubleshooting & Recovery from Issues)

歸檔日志相關的問題會嚴重影響數據庫的可用性、恢復能力和 Data Guard 的同步。以下是常見故障及其恢復方法:

  1. 歸檔目標空間不足 (ARCn 進程掛起):

    • 現象: ARCn 進程無法將日志寫入目標目錄(空間滿),導致歸檔失敗。數據庫掛起所有產生重做的操作(因為 LGWR 無法覆蓋未歸檔的在線日志),表現為應用停滯、用戶會話掛起。告警日志 (alert_<SID>.log) 中會有明確錯誤信息 (ORA-00257, ORA-16038, ARCn: Failed to archive log...)。
    • 恢復:
      • 緊急釋放空間: 這是最快的方法。連接到數據庫主機,清理歸檔目標目錄中舊的、已備份過且不再需要的歸檔日志文件 (rm 或使用 OS 命令)。切勿刪除尚未歸檔的在線日志或最新的歸檔日志!
      • 增加空間: 如果可能,擴充歸檔目標磁盤空間(加磁盤、擴文件系統、掛載新目錄)。
      • 修改/增加目標: 臨時添加或修改 LOG_ARCHIVE_DEST_n 參數指向一個有足夠空間的位置 (ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/new/large/path'),并啟用它。可能需要重啟實例或讓參數生效。
      • 強制日志切換 (慎用): 在空間釋放后,如果 ARCn 沒有自動恢復歸檔,可以嘗試手動切換日志 (ALTER SYSTEM SWITCH LOGFILE;) 來重新觸發歸檔進程。
    • 預防: 實施監控告警(空間使用率)、定期刪除已備份的舊歸檔日志(通過 RMAN DELETE ARCHIVELOG ... 或腳本)、合理規劃歸檔空間大小。
  2. 歸檔日志文件損壞或丟失:

    • 現象: 在恢復操作(RMAN 恢復、Data Guard 應用)或 LogMiner 過程中,嘗試訪問某個歸檔日志文件時失敗,報錯如 ORA-00312, ORA-00313, ORA-01547, ORA-19505, ORA-27037 等,指示文件不存在、不可讀、頭部損壞、校驗和錯誤等。
    • 影響: 災難性。丟失的歸檔日志序列之后的恢復操作無法進行。如果該日志是恢復鏈中必需的,則:
      • 完全恢復只能恢復到丟失日志序列號之前的最新 SCN。
      • PITR 只能恢復到小于等于該 SCN 的時間點。
      • Data Guard 備庫會停止應用并報告 GAP。
    • 恢復:
      • 從備份恢復: 最佳方案。 如果該損壞/丟失的歸檔日志文件之前已經被 RMAN 備份過,使用 RMAN 將其恢復到原始位置或新位置: RESTORE ARCHIVELOG SEQUENCE <seq>;RESTORE ARCHIVELOG FROM TIME '...';。然后繼續正常的恢復操作。
      • Data Guard 主庫重傳 (僅限物理備庫 GAP): 如果是在 Data Guard 環境中發現備庫缺失某個日志(GAP),主庫可能還保留著該歸檔日志。可以使用 ALTER DATABASE REGISTER ... LOGFILE 手動注冊,或用 FAL_CLIENT/FAL_SERVER 機制(較舊)或 RECOVER ... FROM SERVICE (11g+) 自動/手動補缺口。主庫缺失則無法補。
      • 從冗余目標恢復: 如果配置了多個歸檔目標 (LOG_ARCHIVE_DEST_n) 且該文件在其他目標上存在且完好,可以將其復制到缺失/損壞的位置(確保文件名和權限正確)。
      • 重置日志 (OPEN RESETLOGS) - 最后手段: 如果丟失的歸檔日志是恢復鏈中不可或缺的(無法從備份或其他地方獲取),且必須立即打開數據庫,則只能進行不完全恢復到丟失日志之前的 SCN (RECOVER DATABASE UNTIL CHANGE <scn>;),然后強制用 ALTER DATABASE OPEN RESETLOGS; 打開數據庫。這會丟棄丟失日志之后的所有數據變更! 這是一個破壞性操作,僅在萬不得已時使用。務必在操作前做好全庫備份。
    • 預防: 多重冗余! 配置至少兩個本地或遠程歸檔目標(如本地磁盤+ASM,或本地+遠程備用庫)。定期備份歸檔日志并驗證備份。使用 RMAN 驗證歸檔日志的連續性 (VALIDATE ARCHIVELOG ALL;) 和可恢復性 (RESTORE ... VALIDATE ARCHIVELOG ...;)。啟用歸檔日志文件的校驗和 (DB_BLOCK_CHECKSUM=TYPICAL/FULL,對寫入日志緩沖區的塊也有效)。
  3. 歸檔進程 (ARCn) 故障:

    • 現象: 歸檔操作停止。告警日志中有 ARCn 進程異常終止的錯誤堆棧。在線重做日志無法歸檔,最終導致數據庫活動掛起(同空間不足)。
    • 原因: 可能由于 O/S 問題(信號、資源限制)、Oracle Bug、內存沖突、寫入目標權限問題、網絡問題(遠程目標)等。
    • 恢復:
      • 查看告警日志: 仔細分析錯誤信息,確定根本原因。
      • 檢查目標: 確認歸檔目標目錄存在、有足夠空間、Oracle 軟件所有者(如 oracle)有讀寫權限、網絡可達(遠程目標)。
      • 嘗試重啟 ARCn 有時進程崩潰后會自動重啟。如果沒有,可以嘗試手動重啟所有歸檔進程:ALTER SYSTEM ARCHIVE LOG STOP; (停止所有歸檔) 然后 ALTER SYSTEM ARCHIVE LOG START; (啟動所有歸檔)。
      • 重啟數據庫實例: 如果重啟 ARCn 無效,嘗試重啟數據庫實例 (SHUTDOWN IMMEDIATE; STARTUP;)。
      • 應用補丁/解決 Bug: 如果告警日志指向已知 Bug,應用相應的數據庫補丁集或補丁。
      • 檢查 O/S 資源: 確保沒有 O/S 級別的資源限制(如進程數、文件描述符)阻止 ARCn 運行。
    • 預防: 保持數據庫補丁更新。監控歸檔進程狀態 (V$ARCHIVE_PROCESSES)。確保目標配置正確且穩定。
  4. 歸檔日志配置錯誤:

    • 現象: 無法切換到 ARCHIVELOG 模式、歸檔失敗、文件名沖突、目標不可訪問等。
    • 常見錯誤:
      • LOG_ARCHIVE_DEST_n 路徑不存在或權限不足。
      • LOG_ARCHIVE_FORMAT 設置不當導致文件名沖突或不符合 O/S 規范。
      • 參數設置沖突(如同時使用 LOG_ARCHIVE_DESTLOG_ARCHIVE_DEST_n)。
      • DB_RECOVERY_FILE_DEST (閃回恢復區) 空間不足且 LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST'
    • 恢復:
      • 檢查參數: SHOW PARAMETER LOG_ARCHIVE_%
      • 檢查目標: 驗證目錄存在、權限正確、空間足夠。
      • 修正參數: 使用 ALTER SYSTEM SET ... SCOPE=SPFILE; 修正錯誤的參數設置(通常需要重啟生效)。
      • 清理閃回恢復區: 如果使用 FRA 作為歸檔目標且空間不足,使用 RMAN DELETE OBSOLETE;DELETE ARCHIVELOG ALL BACKED UP ... TIMES TO DEVICE TYPE ...; 清理舊備份和歸檔日志,或者擴大 FRA 大小 (ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=...G;)。
  5. Data Guard 歸檔日志傳輸/應用延遲或中斷 (GAP):

    • 現象: 備庫與主庫的同步延遲增大 (V$DATAGUARD_STATS, V$ARCHIVE_DEST_STATUS),甚至完全停止應用 (MRP0/LSP 進程停止,V$MANAGED_STANDBY 顯示錯誤)。
    • 原因: 網絡中斷/擁塞、主庫歸檔慢、備庫應用慢、歸檔日志損壞/丟失(見上)、主備版本/參數不兼容、歸檔進程問題、存儲性能瓶頸、資源競爭等。
    • 恢復/診斷:
      • 檢查告警日志: 主庫和備庫的告警日志是首要信息來源。
      • 檢查傳輸狀態: 在主庫查 V$ARCHIVE_DEST_STATUS 看目標狀態 (STATUS, ERROR)、傳輸延遲 (TRANSPORT_LAG)、最后成功序列 (LAST_SEQ/NEXT_SEQ)。
      • 檢查應用狀態: 在備庫查 V$DATAGUARD_STATS (apply lag), V$MANAGED_STANDBY (PROCESS, STATUS, SEQUENCE#, ERROR)。
      • 檢查網絡: 確保主備之間網絡暢通、防火墻允許相關端口(通常是 1521 或自定義監聽端口)。
      • 解決 GAP: 如前所述,嘗試自動或手動補缺口 (RECOVER ... FROM SERVICE, ALTER DATABASE REGISTER LOGFILE ...)。如果 GAP 太大或無法自動解決,可能需要重建備庫。
      • 優化性能: 分析主庫歸檔、網絡傳輸、備庫應用的瓶頸。可能需要調整 LOG_ARCHIVE_MAX_PROCESSES, 網絡帶寬、備庫 PARALLEL 相關參數、I/O 子系統等。
    • 預防: 網絡冗余與監控、平衡主備負載、監控同步延遲、確保歸檔和傳輸穩定高效。

五、 管理與最佳實踐 (Management & Best Practices)

  1. 監控:

    • 告警日志 (alert_<SID>.log): 首要監控點,記錄所有歸檔相關的重要事件和錯誤。
    • 視圖:
      • V$ARCHIVED_LOG: 已生成的歸檔日志詳細信息(序列號、時間戳、大小、目標、是否已刪除、備份狀態等)。
      • V$LOG_HISTORY: 日志切換歷史記錄。
      • V$ARCHIVE_DEST_STATUS: 歸檔目標狀態、錯誤信息、延遲情況。
      • V$ARCHIVE_PROCESSES: 歸檔進程狀態 (STATUS: BUSY/STOPPED)。
      • V$DATAGUARD_STATS (備庫): 主備同步延遲。
      • V$MANAGED_STANDBY (備庫): MRP/LSP 進程狀態。
      • V$RECOVERY_AREA_USAGE: 閃回恢復區空間使用詳情(如果歸檔到 FRA)。
    • 工具: Enterprise Manager (EM) Cloud Control, Oracle Grid Control, 自定義腳本。
  2. 空間管理:

    • 規劃大小: 根據重做生成速率、備份頻率和保留策略(需要保留多少天的歸檔日志用于恢復和PITR)計算所需空間。預留足夠緩沖(至少20-30%)。
    • 定期清理: 絕對不要只在操作系統層刪除歸檔日志!必須使用 RMAN 進行刪除,因為 RMAN 會同步更新控制文件和恢復目錄中的元數據。
      • DELETE ARCHIVELOG ALL; - 刪除所有歸檔日志(極其危險!通常不用)。
      • DELETE ARCHIVELOG UNTIL TIME 'SYSDATE-7'; - 刪除7天前的歸檔日志。
      • DELETE ARCHIVELOG ALL BACKED UP 2 TIMES TO DEVICE TYPE DISK; - 刪除所有已備份到磁盤至少2次的歸檔日志。
      • DELETE OBSOLETE; - 根據配置的保留策略 (CONFIGURE RETENTION POLICY ...) 刪除過期的備份和歸檔日志。推薦方式。
    • 監控告警: 設置空間使用率閾值告警(如 >80%)。
  3. 備份:

    • 必須備份歸檔日志! 這是恢復能力的關鍵環節。
    • 在 RMAN 備份腳本中,通常包含 BACKUP ARCHIVELOG ALL DELETE ALL INPUT;BACKUP ARCHIVELOG ALL DELETE INPUT;。前者備份所有歸檔日志并刪除所有輸入文件(無論備份到哪里),后者只刪除成功備份到指定設備類型的輸入文件(更安全)。
    • 確保歸檔日志備份和數據庫備份(數據文件、控制文件)一起保留,以滿足恢復時間目標(RTO)和恢復點目標(RPO)。
  4. 配置最佳實踐:

    • 始終為生產數據庫使用 ARCHIVELOG 模式。
    • 配置多重歸檔目標 (LOG_ARCHIVE_DEST_n) 實現冗余(至少本地+遠程或本地+本地不同磁盤)。
    • 優先使用 LOG_ARCHIVE_DEST_n (n=1..31) 而非過時的 LOG_ARCHIVE_DEST/LOG_ARCHIVE_DUPLEX_DEST
    • 合理設置 LOG_ARCHIVE_MIN_SUCCEED_DEST(最小成功歸檔目標數,通常設為1,關鍵系統可設2)。
    • 考慮啟用歸檔壓縮 (LOG_ARCHIVE_COMPRESSION) 節省空間(評估CPU影響)。
    • 如果使用 TDE,考慮啟用歸檔加密 (LOG_ARCHIVE_ENCRYPTION)。
    • 設置清晰合理的 RMAN 保留策略 (CONFIGURE RETENTION POLICY ...) 并定期執行 DELETE OBSOLETE
    • 定期驗證備份(包括歸檔日志)的可恢復性 (RESTORE ... VALIDATE)。
  5. RAC 環境:

    • 每個實例有自己的線程(THREAD#)和在線重做日志組。
    • 歸檔日志文件包含線程號 (%t),每個實例的 ARCn 進程負責歸檔本實例的日志。
    • 歸檔目標通常配置在共享存儲(如 ASM 或集群文件系統)上,所有實例都能訪問。遠程目標配置相同。
    • 恢復時需要所有實例的歸檔日志序列(按線程和序列號排序應用)。

總結:

歸檔日志文件是 Oracle 數據庫實現數據持久性、高可用性、災難恢復和靈活恢復能力的核心組件。理解其原理(基于重做機制和 ARCHIVELOG 模式)、特性(連續性、只讀性、命名、目的地、壓縮加密)、作用(完全恢復/PITR/Data Guard/RMAN備份/LogMiner)以及如何有效管理、監控和應對故障(空間不足、日志損壞丟失、進程故障、配置錯誤、Data Guard GAP),對于任何負責 Oracle 生產環境穩定運行的 DBA 來說都至關重要。嚴格遵守最佳實踐(啟用 ARCHIVELOG、多重冗余目標、定期備份和清理、有效監控)是保障數據庫韌性和滿足業務連續性要求的基礎。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99218.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GoogLeNet實戰:用PyTorch實現經典Inception模塊

配套筆記&講解視頻&#xff0c;點擊文末名片獲取研究背景&#xff08;Background&#xff09; 1.1 領域現狀&#xff08;大環境與挑戰&#xff09; 想象一下&#xff0c;你和朋友們在看一大堆照片——貓、狗、汽車、蛋糕&#xff0c;大家要把每張照片貼上標簽。幾年前&…

【開題答辯全過程】以 “舊書驛站”微信小程序的設計與開發為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

【辦公類-112-01】20250912家園每周溝通指導(Deepseek擴寫完善+Python模擬點擊鼠標自動發送給家長微信)

背景需求 孩子剛上小班,家長比較關心孩子情況(情緒、社交、吃飯等) 所以我每周五晚上和家長溝通一下孩子的情況。 操作流程 第一周(9月5日)是“適應周”,我添加了所有孩子的一位家長的微信號 23份全部是手打,足足寫了4個小時。第一周案例多,所以寫了很多,措辭醞釀后…

Spark專題-第一部分:Spark 核心概述(1)-Spark 是什么?

眾所周知&#xff0c;教學文檔總該以理論部分作為開篇&#xff0c;于是我們這篇Spark專題同樣會以一堆理論和專有名詞開始&#xff0c;筆者會盡可能的讓專業詞匯通俗易懂 第一部分&#xff1a;Spark 核心概述 Spark 是什么&#xff1f; 1. 大數據時代的"超級賽車"…

從零到一上手 Protocol Buffers用 C# 打造可演進的通訊錄

一、為什么是 Protobuf&#xff08;而不是 XML/自定義字符串/.NET 二進制序列化&#xff09; 在需要把結構化對象持久化或跨進程/跨語言傳輸時&#xff0c;常見方案各有痛點&#xff1a; BinaryFormatter 等 .NET 二進制序列化&#xff1a;對類型簽名與版本極其脆弱、體積偏大&…

計算機網絡(三)網絡層

三、網絡層網絡層是五層模型中的第三層&#xff0c;位于數據鏈路層和傳輸層之間。它的核心任務是實現數據包在不同網絡之間&#xff08;跨網絡&#xff09;的邏輯傳輸。網絡層的數據傳輸單位是數據報&#xff08;Datagram&#xff09;或數據包&#xff08;Packet&#xff09;。…

互聯網大廠Java面試實錄:從基礎到微服務全棧技術答疑

互聯網大廠Java面試實錄&#xff1a;從基礎到微服務全棧技術答疑 本文以電商場景為背景&#xff0c;展現一場互聯網大廠Java開發職位的面試過程。嚴肅的面試官與搞笑的水貨程序員謝飛機展開三輪技術問答&#xff0c;涵蓋Java SE、Spring Boot、數據庫、微服務、安全以及CI/CD等…

StringBuilder 深度解析:數據結構與擴容機制的底層細節

文章目錄 前言 一、數據結構&#xff1a;不止是簡單的字符數組 1. 核心成員變量&#xff08;定義在 AbstractStringBuilder 中&#xff09; 2. 構造器與初始容量 二、擴容機制&#xff1a;從 "不夠用" 到 "換大容器" 的全過程 步驟 1&#xff1a;計算…

Elasticsearch面試精講 Day 17:查詢性能調優實踐

【Elasticsearch面試精講 Day 17】查詢性能調優實踐 在“Elasticsearch面試精講”系列的第17天&#xff0c;我們聚焦于查詢性能調優實踐。作為全文檢索與數據分析的核心引擎&#xff0c;Elasticsearch的查詢性能直接影響用戶體驗和系統吞吐能力。在高并發、大數據量場景下&…

WPF 數據綁定模式詳解(TwoWay、OneWay、OneTime、OneWayToSource、Default)

在WPF中&#xff0c;數據綁定模式&#xff08;Binding Mode&#xff09;用于指定數據流的方向。常見的模式有TwoWay、OneWay、OneTime、OneWayToSource和Default。TwoWay&#xff08;雙向綁定&#xff09;&#xff1a;數據從源&#xff08;通常是ViewModel或數據上下文&#xf…

使用 NVIDIA Dynamo 部署 PD 分離推理服務

1 Dynamo 介紹 NVIDIA Dynamo 是一個開源的模塊化推理框架&#xff0c;用于在分布式環境上實現生成式 AI 模型的服務化部署。Dynamo 通過動態資源調度、智能路由、內存優化與高速數據傳輸&#xff0c;無縫擴展大型 GPU 集群之間的推理工作負載。 Dynamo 采用推理引擎無關的設…

答題卡識別改分項目

目錄 核心思路 分步實現與代碼解析 1. 環境準備與工具函數定義 2. 圖片預處理 3. 輪廓提取與篩選 3. 輪廓提取與篩選 4. 透視變換&#xff08;矯正傾斜答題卡&#xff09; 5. 閾值處理&#xff08;突出填涂區域&#xff09; 6. 提取選項圓圈輪廓 7. 選項輪廓排序&…

Python爬蟲實戰:研究Pandas,構建新浪網股票數據采集和分析系統

1. 系統概述 股票數據分析系統旨在通過自動化手段獲取市場數據,進行深度分析,輔助投資決策。本系統主要包含以下核心模塊: 數據爬取模塊:從新浪財經獲取股票列表、基本信息及歷史交易數據 數據處理模塊:清洗原始數據,處理缺失值與異常值,計算技術指標 分析可視化模塊:…

【C++STL】list的詳細用法和底層實現

&#x1f31f;個人主頁&#xff1a;第七序章 &#x1f308;專欄系列&#xff1a;C&#xff0b;&#xff0b; 目錄 ??前言&#xff1a; &#x1f308;一&#xff1a;介紹 &#x1f308;二&#xff1a;list的創建 ??基本框架 &#x1f319;節點類 &#x1f319;構造函…

AI大模型開發(多模態+提示詞)

接著之前的例子&#xff0c;繼續測試模型對話&#xff0c;今天主要測試多模態加上系統提示詞。 一.多模態 多模態方法&#xff0c;主要添加了對圖片的測試。 public String chatWithMessage(UserMessage userMessage){ChatResponse chatResponse qwenChatModel.chat(userMess…

Qt程序單獨運行報錯問題

Qt程序單獨運行報錯問題介紹問題原因分析解決方案&#xff08;從最佳實踐到臨時方法&#xff09;方法一&#xff1a;使用 windeployqt 工具&#xff08;最推薦、最規范&#xff09;方法二&#xff1a;臨時修改系統 PATH&#xff08;適合開發調試&#xff09;方法三&#xff1a;…

Flask學習筆記(二)--路由和變量

一、路由Flask支持兩種路由1、使用route()裝飾器將URL綁定到函數app.route(/hello)def hello_world():return hello world2、使用應用程序對象的add_url_rule()函數def hello_world():return hello worldapp.add_url_rule(/, hello, hello_world)二、變量規則Flask開發中&#…

Skywalking告警配置+簡易郵件告警應用配置(保姆級)

Skywalking告警配置簡易郵件告警應用配置前言&#xff1a; 前文&#xff1a;SkyWalking Elasticsearch8 容器化部署指南&#xff1a;國內鏡像加速與生產級調優_skywalkinges-CSDN博客 ? SKywalking Agent配置Oracle監控插件安裝指南-CSDN博客 Skywalking版本&#xff1a;V10.…

無人機如何實現圖傳:從原理到實戰的全景解讀

無人機圖傳的工作不是簡單地把鏡頭的數據直接“丟”到一個屏幕上&#xff0c;而是一個由編碼、傳輸、解碼三段組成的系統。首先是視頻編碼&#xff1a;攝像頭采集的原始畫面通常需要經過編解碼器壓縮&#xff0c;常見標準包括H.264、H.265和VP9等。壓縮的目的是減少數據量&…

AS32S601在軌重構(OTA)方案的優化與分析

摘要在軌重構&#xff08;OTA&#xff09;技術因其在航天、工業控制、物聯網等領域的高可靠性和持續服務需求而備受關注。本文以國科安芯推出的AS32S601芯片為研究對象&#xff0c;深入分析其OTA方案的設計原理、技術細節及優化策略&#xff0c;并結合芯片的硬件特性&#xff0…