作業 2:設定 Oracle GoldenGate 環境

執行下列步驟以完成此任務:

步驟 2.1:存取部署

若要存取部署,請執行下列動作:

步驟 2.2:建立資料庫證明資料

您可以使用 Oracle GoldenGate Microservices UI,使用以上的 TNS 別名名稱建立資料庫證明資料。以 oggadmin 使用者身分新增資料庫證明資料:

  1. 登入「Oracle GoldenGate 管理服務」:https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/。

  2. 在左側導覽功能表中,選取資料庫連線。

  3. 在「資料庫連線」頁面上,選取新增資料庫連線 (加號)。

  4. 為每個來源和目標 CDB 與 PDB 新增必要的資訊:

    地區 容器 網域 別名 使用者 ID
    區域 1 CDB GoldenGate Reg1_CDB c##ggadmin@
    區域 1 PDB GoldenGate Reg1_PDB ggadmin@
    區域 2 CDB GoldenGate Reg2_CDB c##ggadmin@
    區域 2 PDB GoldenGate Reg2_PDB ggadmin@

步驟 2.3:建立自動啟動設定檔

建立設定檔,在 Oracle GoldenGate 管理伺服器啟動時自動啟動 Extract 和 Replicat 處理作業,並在放棄任何 Extract 或 Replicat 處理作業時重新啟動。在 GoldenGate Microservices 中,設定檔會管理自動啟動和重新啟動。

使用 Oracle GoldenGate Administration Server UI,建立要指派給每個 Oracle GoldenGate 處理作業的設定檔:

  1. 登入來源 GoldenGate 部署的 GoldenGate WebUI。

  2. 在導覽功能表中,選取受管理的處理設定檔。

  3. 在「受管理的處理作業設定值」頁面上選取新增設定檔。

  4. 輸入明細如下:

    • 設定檔名稱:Start_Default

    • 描述:預設自動啟動 / 重新啟動設定檔

    • 預設設定檔:是

    • 自動開始:是

    • 自動啟動選項

      • 啟動延遲:1 分鐘

      • 自動重新啟動:是

    • 自動重新啟動選項

      • 重試次數上限:5

      • 重試延遲:30 秒

      • 重試時間:30 分

      • 僅在失敗時重新啟動:是

      • 重試用完後停用作業:是

  5. 選取提交

  6. 在目標 GoldenGate 建置上重複這些步驟。

步驟 2.4:設定 Oracle GoldenGate 處理作業

使用 Oracle GoldenGate Microservices Architecture 建立 Extract,Distribution Paths 和 Replicat 處理作業時,需要在 GGHub 節點之間共用的所有檔案,都已經與儲存在共用檔案系統上的建置檔案共用。

以下是在 GGhub 上執行 Oracle GoldenGate Microservices for Extract,Distribution Paths and Replicat 處理作業所需的基本組態詳細資訊。

執行下列子步驟以完成此步驟:

步驟 2.5.1:擷取組態

使用「Oracle GoldenGate 管理服務」介面建立 Extract 時,請將「歷程檔子目錄」參數保留空白,以便在儲存在共用檔案系統的建置目錄中自動建立歷程檔。歷程檔的預設位置是 /<deployment directory>/var/lib/data 目錄。

注意:若要從多租用戶資料庫擷取,您必須使用在根層次使用 c## 帳戶設定的 Extract。如果要將資料套用到多雲端用戶資料庫,每個 PDB 都需要一個個別的 Replicat,因為 Replicat 在 PDB 層次連線,且無法存取該 PDB 以外的物件。

對於使用重做傳輸「最大效能」或「最大可用性」模式之「資料保全」組態的 GoldenGate Extract 處理作業,必須將下列參數新增至主要系統的 Extract 處理作業參數檔,以避免遺失交易,並導致邏輯資料不一致:

TRANLOGOPTIONS HANDLEDLFAILOVER

此參數可防止 Extract 從尚未套用至「資料保全」待命資料庫的重做擷取交易資料。這對於防止 Oracle GoldenGate 將資料複製到不存在於來源待命資料庫中的目標資料庫至關重要。

如果未指定此參數,在來源資料庫的資料遺失容錯移轉之後,目標資料庫中的資料可能不存在於來源資料庫中,會導致邏輯資料不一致。

依照預設,在 60 秒之後,當 Extract 因無法查詢待命資料庫套用的 SCN 資訊而停滯時,就會將警告訊息寫入 Extract 報表檔案。舉例而言:

WARNING OGG-02721  Extract has been waiting for the standby database for 60 seconds.

使用 Extract 參數 "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNING" 調整將警告訊息寫入 Extract 報表檔案之前的時間長度。

如果 Extract 在 30 分鐘後仍無法查詢待命資料庫套用的 SCN 資訊 (預設),則 Extract 處理作業會中止,並將下列訊息記錄在 Extract 報表檔案中:

ERROR   OGG-02722  Extract abended waiting for 1,800 seconds for the
    standby database to be accessible or caught up with the primary database.

如果待命資料庫在預設 30 逾時到期前變成可用,則 Extract 會繼續從來源資料庫探勘資料,並將下列訊息報告至報表檔案:

INFO    OGG-02723  Extract resumed from stalled state and started processing LCRs.

可使用 Extract 參數 "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND " 來調整逾時值 30 分鐘,其值為待命資料庫在異常中前無法使用的秒數。

如果待命資料庫將無法長期使用,例如在計畫性維護停機期間,而且您希望 Extract 繼續從主要資料庫擷取資料,請移除 Extract 參數檔中的 "TRANLOGOPTIONS HANDLEDLFAILOVER" 參數,然後重新啟動 Extract (請參閱 Figures 4 到 6 中的範例)。請記得在待命資料庫可用後設定參數。

注意:如果從主要資料庫擷取在待命資料庫無法使用時繼續進行,則在待命資料庫可供使用之後,可能會導致資料遺失容錯移轉,而不是在容錯移轉之前套用所有主要重做。GoldenGate 目標資料庫將包含不存在於來源資料庫中的資料。

如果已指定自動重新啟動設定檔的 Extract 處理作業,在資料保全角色轉換之後,Extract 處理作業將會自動重新啟動。Extract 將會繼續從新的主要資料庫探勘重做資料,並忽略新待命資料庫的目前狀態,直到預設的 5 分鐘逾時期間到期為止。在此時間之後,如果待命資料庫無法使用 Extract,將會因下列錯誤而中止:

INFO    OGG-25053  Timeout waiting for 300 seconds for standby database
 reinstatement. Now enforcing HANDLEDLFAILOVER.
ERROR   OGG-06219  Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR   OGG-02078  Extract encountered a fatal error in a processing thread and is
 abending.

Extract 將繼續根據 GoldenGate Microservices 自動重新啟動設定檔自動重新啟動,並因達到 HANDLEDLFAILOVER 逾時而失敗,直到達到重試次數或新的待命資料庫可供使用為止。

在資料庫角色轉換後的逾時期間,系統會自動暫停 HANDLEDLFAILOVER 參數,因此系統會將資料複製到 Oracle GoldenGate 複本資料庫,而不會將來源待命資料庫視為最新狀態。可使用 Extract 參數 TRANLOGOPTIONS DLFAILOVER_TIMEOUT 調整 Extract 中止之前,待命資料庫啟動的逾時期間。

建議您預設保留 DLFAILOVER_TIMEOUT 5 分鐘,讓舊的主要使用者可以轉換成待命資料庫。如果新的待命資料庫在一段時間內無法使用或完全消失,則為了讓 Extract 啟動並維持執行中狀態,您必須將 HANDLEDLFAILOVER 參數自 Extract 參數檔中移除。移除參數之後,Extract 在擷取資料之前,不再等待重做套用至待命資料庫。

在待命資料庫重新上線並從主要資料庫套用所有重做時,待命資料庫與 Oracle GoldenGate 複本資料庫之間會有資料差異。待命資料庫為最新狀態之後,便會解決此問題。此時,將 HANDLEDLFAILOVER 參數加回整合的 Extract 處理作業參數檔,然後停止並重新啟動 Extract。

停用「Oracle Data Guard 快速啟動容錯移轉」時,當主要資料庫遺失時,中介可以自動容錯移轉至待命資料庫,您必須指定下方顯示的額外整合 Extract 參數。

TRANLOGOPTIONS FAILOVERTARGETDESTID n

此參數會識別 Oracle GoldenGate Extract 處理作業在未擷取尚未套用至待命資料庫的重做資料時,所必須保留的待命資料庫。

如果停用「Oracle Data Guard 快速啟動容錯移轉」,但未指定其他整合的 Extract 參數 FAILOVERTARGETDESTID,則擷取會中止,並出現下列錯誤:

ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is abending.

若要判斷 FAILOVERTARGETDESTID 的正確值,請使用 GoldenGate 來源資料庫的 LOG_ARCHIVE_DEST_N 參數,此資料庫用於將重做傳送至來源待命資料庫。例如,如果 LOG_ARCHIVE_DEST_2 指向待命資料庫,則使用值 2。

以主要資料庫系統上的 oracle 使用者身分,執行下列命令:

[opc@exapri-node1 ~]$ sudo su - oracle
[oracle@exapri-node1 ~]$ source <db_name>.env
[oracle@exapri-node1 ~]$ sqlplus / as sysdba

SQL> show parameters log_archive_dest

NAME                  TYPE        VALUE
--------------------- ----------- ---------------------------------------------------
log_archive_dest_1    string      location=USE_DB_RECOVERY_FILE_DEST,
                                  valid_for=(ALL_LOGFILES, ALL_ROLES)

log_archive_dest_2    string      service="<db_name>", SYNC AFFIRM delay=0
                                  optional compression=disable max_failure=0 reopen=300
                                  db_unique_name="<db_name>" net_timeout=30,
                                  valid_for=(online_logfile,all_roles)

在此範例中,Extract 參數會設為下列項目:

TRANLOGOPTIONS FAILOVERTARGETDESTID 2

建立擷取:

  1. 登入來源 Oracle GoldenGate。

  2. 在導覽功能表中,選取擷取。

  3. 在「擷取」頁面上,選取新增擷取。

  4. 完成「新增摘錄」表單,如下所示:

    1. 擷取資訊:

      • 擷取類型:整合式擷取。

      • 處理作業名稱:EXT_1

      • 描述:擷取區域 1 CDB

    2. 針對擷取選項:

      • 證明資料網域:GoldenGate

      • 證明資料別名:Reg1_CDB

      • 註冊 PDB:PDB 名稱

      • 目的:單向

      • 開始:現在

      • 歷程檔名稱:aa

  5. 選取下一步

  6. 如果使用 PDB 的 CDB Root Capture,請加上 SOURCECATALOG 參數與 PDB 名稱

  7. 選取建立並執行 (Create and Run)

步驟 2.5.2 - Replicat 組態

當 GGHUB 與目標 Oracle GoldenGate 資料庫位於相同的區域時,Oracle 一般建議使用整合的平行 Replicat,為大多數工作負載提供更佳的套用效能。

當 GGHUB 與目標資料庫之間的網路延遲越低時,即可達到最佳套用效能。建議在 Oracle GGHUB 上執行的遠端 Replicat 設定下列組態。

步驟 2.5.2.1 - 建立檢查點表格

檢查點表格是 Oracle GoldenGate Replicat 處理作業的必要元件。從「管理服務」的「證明資料」頁面連線至資料庫之後,就可以建立檢查點表格。

在目標部署中建立檢查點表格:

  1. 登入 Oracle GoldenGate Web UI。

  2. 在導覽功能表中,選取資料庫連線,然後連線至目標資料庫。

  3. 順利連線至目標資料庫之後,請選取檢查點表格。

  4. 選取新增檢查點 (加號圖示)。就會顯示「新增檢查點」頁面。

  5. 在「檢查點表格」中輸入 ggadmin.chkp_table。

  6. 選取提交

請參考新增檢查點表格。

步驟 2.5.2.2 - 新增 Replicat

設定資料庫連線並進行驗證之後,您可以依照下列步驟為部署新增 Replicat:

  1. 在導覽功能表中,選取複製。

  2. 在「複本」頁面上,選取新增 Replicat (加號圖示)。就會顯示「新增 Replicat」頁面。

  3. 選取 Replicat 類型,然後選取下一步。

  4. 輸入明細如下:

    • 處理作業名稱:REP_1

    • 描述:區域 2 PDB 的 Replicat

    • 目的:單向

    • 證明資料網域:GoldenGate

    • 證明資料別名:Reg2_PDB

    • 來源:軌跡

    • 歷程檔名稱:aa

    • 開始:日誌中的位置

    • 檢查點表格:"GGADMIN"."CHKP_TABLE

  5. 選取下一步

  6. 從動作功能表中,選取開始。

步驟 2.5.3 - 分送路徑組態

只有當必須將歷程檔傳送至其他 Oracle GoldenGate Hub,或甚至相同區域 (如下圖所述) 時,才需要使用分送路徑。

圖 1:Oracle GoldenGate 分配路徑

影像的描述如下

使用「NGINX 反向代理主機」的「Oracle GoldenGate 分送」路徑時,必須執行其他步驟,以確保已設定路徑從屬端和伺服器憑證。

如需詳細資訊,請參閱分送服務路徑。以下影片中的逐步範例為「使用 NGINX 將內部部署 Oracle GoldenGate 連線至 OCI GoldenGate 」,以正確設定憑證。

下列是此子步驟中所執行的步驟:

步驟 2.5.3.1 - 下載目標伺服器的根憑證,然後將它上傳至來源 Oracle GoldenGate

下載目標部署伺服器的根憑證,並將 CA 憑證新增至來源部署 Service Manager。

  1. 登入目標 GoldenGate 的 GoldenGate Web UI。

  2. 請依照影片中的「步驟 2 - 下載目標伺服器的根憑證」使用 NGINX 將內部部署 Oracle GoldenGate 連線至 OCI GoldenGate 。

步驟 2.5.3.2 - 在目標部署中建立要使用的來源 Oracle GoldenGate 使用者

  1. 在目標 GoldenGate Web UI 中,從左側導覽中選取使用者管理。

  2. 選取新增使用者,然後完成下列作業:

    1. 認證者:從下拉式清單中選取「密碼」。

    2. 角色:從下拉式清單中選取「運算子」。

    3. 使用者名稱:輸入您的使用者名稱。

    4. 密碼和驗證密碼:輸入與此使用者關聯的密碼。

  3. 選取提交。

步驟 2.5.3.3 - 在來源 Oracle GoldenGate 中建立路徑連線

在連接目標部署的來源部署中,使用上一個步驟中建立的使用者建立「路徑連線」。例如,OP2C 的網域和 WSSNET 的別名。

  1. 登入來源 Oracle GoldenGate。

  2. 在導覽功能表中,選取路徑連線。

  3. 在「路徑連線」頁面上,選取新增路徑連線,然後完成下列作業:

    1. 憑證別名:輸入別名。

    2. 使用者 ID :輸入在步驟 2.5.3.2 中建立的使用者名稱。

    3. 密碼和驗證密碼:從步驟 2.5.3.2 輸入與此使用者關聯的密碼。

  4. 選取提交。

步驟 2.5.3.4 - 在來源 Oracle GoldenGate 上建立目標部署的分配路徑

系統會建立一個路徑,將歷程檔從「分送伺服器」傳送至「接收端伺服器」。您可以從「分送服務」建立路徑。新增來源部署的路徑:

  1. 在來源 Oracle GoldenGate 中,從導覽功能表中選取分送服務路徑。

  2. 選取新增路徑 (加號圖示)。就會顯示「新增路徑」頁面。

  3. 輸入明細如下:

    1. 輸入路徑名稱。

    2. 對於來源,請從下拉式清單中選取「擷取」名稱。

    3. 在產生的來源 URI 中,輸入 localhost 作為伺服器的名稱。這可讓分送路徑從任一個 Oracle RAC 節點開始。

    4. 在目標驗證方法中,選取 UserID 別名。

    5. 針對目標,選取 wss (安全 Web 通訊埠)。

    6. 在目標主機中,輸入用於連線目標系統的目標主機名稱 /VIP。

    7. 在連接埠號碼中,輸入 NGINX 設定的連接埠號碼 (預設值為 443)。

    8. 在網域中,選取在步驟 2.3.3.3 中建立的證明資料網域。

    9. 若為別名,請選取同時在步驟 2.3.3.3 中建立的證明資料別名 wssnet 。

    10. 針對自動重新啟動選項,設定當「分送伺服器」自動啟動時要重新啟動的分送路徑。這是必要的,因此在重新啟動「分送伺服器」的 RAC 節點後,不需要手動介入。

    11. 在重試中,輸入 10。

    12. 如果是延遲,也就是重新啟動嘗試之間的暫停時間 (分鐘),請輸入 1。

  4. 選取建立路徑。

  5. 從「動作功能表」中選取開始。