瞭解如何設定待命資料庫以進行災害復原

Oracle Data Guard 可為位於 Oracle Database 中的企業資料提供高可用性、資料保護及災害復原。Oracle Data Guard 提供一組全方位的服務,可建立、維護、管理及監控一或多個待命資料庫,讓生產環境的 Oracle 資料庫在發生災害和資料損毀的狀況。

Oracle Data Guard 會將這些待命資料庫作為生產資料庫的複本。如果因為計畫性或非計畫性停機而無法使用生產資料庫,Oracle Data Guard 可將任何待命資料庫切換至生產角色,將與停機關聯的停機時間降到最低。

架構

此架構顯示 Oracle Data Guard 組態和主要資料庫,可將重做資料傳輸至待命資料庫。待命資料庫是從主要資料庫遠端位置,以進行災害復原和備份作業。

dataguard-dr-db.png 的描述如下
dataguard-dr-db.png 圖解說明

dataguard-dr_db-oracle.zip

Oracle Data Guard 使用重做傳輸服務和套用服務來管理重做資料的傳輸、重做資料的應用程式,以及對資料庫角色的變更。

此架構支援下列 Oracle Data Guard 元件:

  • 重做傳輸服務

    重做傳輸服務會控制從實際執行資料庫將重做資料自動傳輸至一或多個存檔目的地。

    重做傳輸服務執行下列作業:

    • 將重做資料從主要系統傳送至組態中的待命系統。
    • 管理因為網路失敗,而解析存檔重做日誌檔中任何間隙的處理作業。
    • 自動偵測待命系統上遺失或損毀的存檔重做日誌檔,並自動從主要資料庫或其他待命資料庫擷取取代存檔重做日誌檔。
  • 套用服務

    套用服務會自動在待命資料庫上套用重做資料,以維持與主要資料庫的一致性。

    重做資料會從主要資料庫傳輸並寫入待命資料庫的待命重做日誌。重做資料會直接從待命重做日誌檔套用,因為它們會在使用即時套用時填入。套用服務也允許以唯讀方式存取資料。

  • 角色轉換
    您可以使用 Oracle Data Guard,將資料庫的角色從待命資料庫變更為主要資料庫,或使用切換或容錯移轉作業,從主要資料庫變更為待命資料庫。Oracle Data Guard 可簡化角色轉換並自動化容錯移轉。
    • 切換是主要資料庫與其待命資料庫之一之間的角色回轉。切換可確保不會遺失資料。這通常是為了主要系統的計畫性維護而進行。在切換期間,主要資料庫會轉換成待命資料庫角色,而待命資料庫會轉換成主要角色。
    • 當主要資料庫無法使用時,就會容錯移轉。只有在主要資料庫失敗時才會執行容錯移轉,而容錯移轉會導致待命資料庫轉換成主要角色。資料庫管理員可以設定 Oracle Data Guard,以確保不會遺失資料。

設定 Oracle Data Guard 時,包括 (但不限於) 下列各項手動步驟:

  • 使用建議的參數準備主要資料庫
  • 準備主要和待命環境中的 TNS 別名
  • 建立實體待命資料庫作為主要資料庫的複製
  • 設定資料保全

這些手動步驟分布在多個 Oracle 文件中。此 playbook 提供一組命令檔,您可以使用自動化這些動作的大部分。這些命令檔可透過設定現有主要資料庫的待命資料庫,協助設定 Oracle Data Guard。命令檔可使用 restore from service Oracle Recovery Manager (RMAN) 功能和 Oracle Data Guard Broker。

開始前

使用本文件提供的命令檔設定 Oracle Data Guard 之前,請複查下列假設與需求:

  • 主要資料庫已存在。

  • 待命資料庫已經存在,或沒有現有資料庫。

    注意:

    如果在待命位置已經有資料庫,命令檔就會在重新建立待命資料庫之前先將它刪除。
  • 主要和待命之間使用資料庫的監聽器連接埠相互連線。

    • 針對單一執行處理資料庫,主要資料庫主機與待命資料庫監聽器的 IP 與連接埠之間必須要有雙向連線。
    • 若為 Oracle Real Application Clusters (Oracle RAC) 資料庫,主要資料庫主機與待命資料庫掃描和 VIP IP 和連接埠之間必須具有雙向連線。

    這些程序檔執行連線檢查,但是您可以使用指令 nc -vw 5 -z IP PORT 來驗證遠端連線。

  • Oracle Automatic Storage Management (Oracle ASM) 用於資料檔、控制檔、線上重做日誌以及存檔重做日誌。

    • 對於單一執行處理資料庫,密碼檔與 spfile 可以位於一般檔案系統或 Oracle ASM 中。
    • 對於 Oracle RAC 資料庫,密碼檔和 spfile 必須位於 Oracle ASM
  • 主要和待命資料庫由 Oracle Clusterware 管理 (必須安裝 Oracle Grid Infrastructure,因為單一和 Oracle RAC 拓樸都使用 srvctl)。
  • 因為使用 Oracle Managed Files,所以必須先在主要資料庫中以適當的 Oracle ASM 磁碟群組位置 (例如 +DATA+RECO) 定義資料庫參數 db_create_file_destdb_create_online_log_dest_1db_recovery_file_dest
  • 關聯式資料庫管理系統 (RDBMS) 軟體擁有者 (例如,oracle 使用者) 會在其設定檔中設定必要的 Oracle 環境變數 (ORACLE_HOMELD_LIBRARY_PATHPATHORACLE_UNQNAMEORACLE_SID)。
  • 假設使用對稱拓樸 (亦即,如果主要資料庫為單一資料庫,則待命資料庫為單一資料庫;如果主要資料庫為 Oracle RAC 資料庫,則待命資料庫也會是 Oracle RAC 資料庫)。
  • 如果資料庫是 Oracle RAC,則假定每個 Oracle RAC 具有 2 個節點。
  • 命令檔適用於為沒有待命資料庫的主要資料庫設定待命資料庫。
  • 命令檔也適用於新增其他待命資料庫至現有 Oracle Data Guard 。在此情況下,您必須在特性檔中使用 ADDITIONAL_STANDBY=YES 特性。在此情況下,會將新待命新增至現有「資料保全中介」組態。

關於命令檔功能

以下為程序檔的功能:

  • 指令碼為冪等,錯誤時會重新執行這些程序檔。
  • 您可以設定作業系統使用者名稱 (例如 oraclegrid) 和資料夾 (Database homeGrid home)。
  • Oracle 和 Grid OS 使用者可以是相同的使用者或不同的使用者。
  • 資料庫檔案的通透資料加密 (TDE) 為選擇性:命令檔在兩種情況下均有效 (TDE 且不適用 TDE)。

    注意:

    將會執行對稱組態:如果主要資料庫使用 TDE,則待命資料庫將會設定 TDE;如果主要資料庫未使用 TDE,則待命資料庫將不使用 TDE
  • 支援唯讀 Oracle 本位目錄 (ROOH)。這些命令檔會準備在使用 ROOH 和「傳統」Oracle 本位目錄的環境下自動工作。
  • 此命令檔適用於 Oracle RAC 和單一執行處理環境 (在對稱拓樸中)。
  • 程序檔的驗證版本為 12c (12.2)、18c、19c 及 21c RDBMS。
  • 這些命令檔會在 Oracle Cloud Infrastructure (DB Systems) 和內部部署環境中驗證。
  • 此命令檔經過驗證,可設定混合式 Oracle Data Guard,主要資料庫位於企業內部部署,而且待命為 Oracle Cloud Infrastructure 中的資料庫系統。

關於命令檔檔案

以下說明本解決方案中使用的命令檔檔案:

  • 1_prepare_primary_maa_parameters.sh

    連線至主要資料庫並以 Oracle Data Guard 的建議 Oracle Maximum Availability Architecture (MAA) 參數進行設定。它會建立待命重做日誌檔,並設定 DB_BLOCK_CHECKSUMDB_FLASHBACK_RETENTION_TARGET 等等的值。此命令檔只會執行一次,無論主要資料庫是 Oracle Real Application Clusters (Oracle RAC) 或單一執行處理資料庫。

  • 2_dataguardit_primary.sh

    準備 Oracle Data Guard 的主要主機。它會將必要的 TNS 別名新增至 tnsnames.ora 檔案,它會檢查與遠端待命資料庫的連線,如果尚未設定網路加密,則會產生包含主要密碼檔和通透資料加密 (TDE) 公事包 (如果使用) 的輸出 tar 檔案。

  • create_pw_tar_from_asm_root.sh

    此程序檔並非一律必要。只有在主要密碼檔儲存在 Oracle Automatic Storage Management (Oracle ASM) 中時,才需要該檔案。它會使用密碼檔建立輸出 tar 檔案。

  • 3_dataguardit_standby_root.sh

    準備新的待命主機,並使用 restore from service Oracle Recovery Manager (RMAN) 功能和 Oracle Data Guard 中介建立待命資料庫。如果這些主機中有現有資料庫 (無論是工作資料庫或是先前執行命令檔的結果失敗),則命令檔會在重新建立新資料庫作為待命資料庫之前先將它刪除。

  • DG_properties.ini

    這是必須使用環境特定值自訂的特性檔。它由主要和待命中的所有命令檔使用。

關於必要產品與角色

此解決方案需要主要和待命資料庫系統具有下列角色:

產品名稱:角色 需要 ...
Oracle Database:sys 執行所有命令檔
Oracle Database 主機 (主要):具備執行權限的 oracle 作業系統使用者 執行下列的命令檔:
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Oracle Database 主機 (主要):root 當主密碼檔儲存在 ASM 中時,執行下列命令檔:create_pw_tar_from_asm_root.sh
Oracle Database 主機 (次要):root 執行下列命令檔:
  • 3_dataguardit_standby_root.sh

請參閱 Oracle 產品、解決方案和服務,以瞭解您的需求。