作業 2:設定 Oracle GoldenGate 環境
執行下列步驟以完成此任務:
-
步驟 2.1 - 存取 GoldenGate 部署
-
步驟 2.2 - 建立資料庫證明資料
-
步驟 2.3 - 建立自動啟動設定檔
-
步驟 2.4 - 設定 Oracle GoldenGate 處理作業
步驟 2.1:存取部署
若要存取部署,請執行下列動作:
-
如果從屬端子網路是公用子網路,您可以使用 VIP 位址和 SSH 通道來存取節點。您必須在所有節點上使用下列命令,在主要和待命叢集上使用 VIP DNS 名稱建立 SSH 通道:
ssh -N -L <local_port>:<vip-dns-name>:443 -p 22 <gghub-node>local_port可以是本機系統上任何可用的連接埠。gghub-node是要設定通道之叢集的名稱。Oracle 建議您使用主要和待命 VIP DNS 名稱來管理 GoldenGate,如下所示:
-
主要 VIP DNS 名稱:
<cluster-prefix>1.ggoraclevcn.com -
待命 VIP DNS 名稱:
<cluster-prefix>2.ggoraclevcn.com
接著,您可以使用 Web 瀏覽器,使用
https://localhost:<local_port>存取部署。 -
-
如果從屬端子網路為專用,
-
您必須使用下列值在用戶端子網路建立堡壘主機:
-
定位 VCN :選取您的 VCN
-
目標子網路:從屬端子網路名稱
-
CIDR 區塊允許清單:輸入或選取 IP 位址或位址範圍,以允許使用 SSH 階段作業連線至目標資源。
-
-
使用主要 VIP 位址和連接埠 443 的待命 VIP 位址建立「SSH 連接埠轉送」階段作業。進一步瞭解建立連接埠轉送階段作業。
-
從階段作業的「動作」功能表 (三個點) 中,選取檢視 SSH 命令,然後選取複製。
-
執行 SSH 命令,確定將
<privateKey>取代為本機私密金鑰路徑,並將443取代為<localPort>。進一步瞭解連線連接埠轉送階段作業 -
接著,您可以使用 Web 瀏覽器使用
https://localhost存取部署。
-
步驟 2.2:建立資料庫證明資料
您可以使用 Oracle GoldenGate Microservices UI,使用以上的 TNS 別名名稱建立資料庫證明資料。以 oggadmin 使用者身分新增資料庫證明資料:
-
登入「Oracle GoldenGate 管理服務」:
https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/。 -
在左側導覽功能表中,選取資料庫連線。
-
在「資料庫連線」頁面上,選取新增資料庫連線 (加號)。
-
為每個來源和目標 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 處理作業的設定檔:
-
登入來源 GoldenGate 部署的 GoldenGate WebUI。
-
在導覽功能表中,選取受管理的處理設定檔。
-
在「受管理的處理作業設定值」頁面上選取新增設定檔。
-
輸入明細如下:
-
設定檔名稱:Start_Default
-
描述:預設自動啟動 / 重新啟動設定檔
-
預設設定檔:是
-
自動開始:是
-
自動啟動選項
-
啟動延遲:1 分鐘
-
自動重新啟動:是
-
-
自動重新啟動選項
-
重試次數上限:5
-
重試延遲:30 秒
-
重試時間:30 分
-
僅在失敗時重新啟動:是
-
重試用完後停用作業:是
-
-
-
選取提交
-
在目標 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 - 擷取組態
-
步驟 2.5.2 - Replicat 組態
-
步驟 2.5.3 - 分送路徑組態
步驟 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
如果待命資料庫將無法長期使用,例如在計畫性維護停機期間,而且您希望 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
建立擷取:
-
登入來源 Oracle GoldenGate。
-
在導覽功能表中,選取擷取。
-
在「擷取」頁面上,選取新增擷取。
-
完成「新增摘錄」表單,如下所示:
-
擷取資訊:
-
擷取類型:整合式擷取。
-
處理作業名稱:EXT_1
-
描述:擷取區域 1 CDB
-
-
針對擷取選項:
-
證明資料網域:GoldenGate
-
證明資料別名:Reg1_CDB
-
註冊 PDB:PDB 名稱
-
目的:單向
-
開始:現在
-
歷程檔名稱:aa
-
-
-
選取下一步
-
如果使用 PDB 的 CDB Root Capture,請加上
SOURCECATALOG參數與 PDB 名稱 -
選取建立並執行 (Create and Run)
步驟 2.5.2 - Replicat 組態
當 GGHUB 與目標 Oracle GoldenGate 資料庫位於相同的區域時,Oracle 一般建議使用整合的平行 Replicat,為大多數工作負載提供更佳的套用效能。
當 GGHUB 與目標資料庫之間的網路延遲越低時,即可達到最佳套用效能。建議在 Oracle GGHUB 上執行的遠端 Replicat 設定下列組態。
-
APPLY_PARALLELISM– 停用自動平行處理 (而非使用MAX_APPLY_PARALLELISM和MIN_APPLY_PARALLELISM),並允許目標資料庫的最高並行量。建議根據中樞的可用 CPU 和目標資料庫伺服器,儘可能將此設為高。 -
MAP_PARALLELISM– 應設為 2 到 5 的值。有了較多的極端值,增加「對應程式」會增加處理極端值的能力。 -
BATCHSQL– 使用陣列處理來套用 DML,以減少延遲網路的網路負荷。請注意,如果有許多資料衝突,BATCHSQL會降低效能,因為批次作業的倒回,後面接著從歷程檔重新讀取,以在非批次模式套用。
步驟 2.5.2.1 - 建立檢查點表格
檢查點表格是 Oracle GoldenGate Replicat 處理作業的必要元件。從「管理服務」的「證明資料」頁面連線至資料庫之後,就可以建立檢查點表格。
在目標部署中建立檢查點表格:
-
登入 Oracle GoldenGate Web UI。
-
在導覽功能表中,選取資料庫連線,然後連線至目標資料庫。
-
順利連線至目標資料庫之後,請選取檢查點表格。
-
選取新增檢查點 (加號圖示)。就會顯示「新增檢查點」頁面。
-
在「檢查點表格」中輸入
ggadmin.chkp_table。 -
選取提交
請參考新增檢查點表格。
步驟 2.5.2.2 - 新增 Replicat
設定資料庫連線並進行驗證之後,您可以依照下列步驟為部署新增 Replicat:
-
在導覽功能表中,選取複製。
-
在「複本」頁面上,選取新增 Replicat (加號圖示)。就會顯示「新增 Replicat」頁面。
-
選取 Replicat 類型,然後選取下一步。
-
輸入明細如下:
-
處理作業名稱:REP_1
-
描述:區域 2 PDB 的 Replicat
-
目的:單向
-
證明資料網域:GoldenGate
-
證明資料別名:Reg2_PDB
-
來源:軌跡
-
歷程檔名稱:aa
-
開始:日誌中的位置
-
檢查點表格:"GGADMIN"."CHKP_TABLE
-
-
選取下一步
-
從動作功能表中,選取開始。
步驟 2.5.3 - 分送路徑組態
只有當必須將歷程檔傳送至其他 Oracle GoldenGate Hub,或甚至相同區域 (如下圖所述) 時,才需要使用分送路徑。
圖 1:Oracle GoldenGate 分配路徑

使用「NGINX 反向代理主機」的「Oracle GoldenGate 分送」路徑時,必須執行其他步驟,以確保已設定路徑從屬端和伺服器憑證。
如需詳細資訊,請參閱分送服務路徑。以下影片中的逐步範例為「使用 NGINX 將內部部署 Oracle GoldenGate 連線至 OCI GoldenGate 」,以正確設定憑證。
下列是此子步驟中所執行的步驟:
-
步驟 2.5.3.1 - 下載目標伺服器的根憑證,然後將它上傳至來源 Oracle GoldenGate
-
步驟 2.5.3.2 - 在目標部署中建立要使用的來源 Oracle GoldenGate 使用者
-
步驟 2.5.3.3 - 在來源 Oracle GoldenGate 中建立證明資料
-
步驟 2.5.3.4 - 在來源 Oracle GoldenGate 上建立目標部署的分配路徑
-
步驟 2.5.3.5 - 驗證目標建置主控台接收端服務中的連線
步驟 2.5.3.1 - 下載目標伺服器的根憑證,然後將它上傳至來源 Oracle GoldenGate
下載目標部署伺服器的根憑證,並將 CA 憑證新增至來源部署 Service Manager。
-
登入目標 GoldenGate 的 GoldenGate Web UI。
-
請依照影片中的「步驟 2 - 下載目標伺服器的根憑證」使用 NGINX 將內部部署 Oracle GoldenGate 連線至 OCI GoldenGate 。
步驟 2.5.3.2 - 在目標部署中建立要使用的來源 Oracle GoldenGate 使用者
-
在目標 GoldenGate Web UI 中,從左側導覽中選取使用者管理。
-
選取新增使用者,然後完成下列作業:
-
認證者:從下拉式清單中選取「密碼」。
-
角色:從下拉式清單中選取「運算子」。
-
使用者名稱:輸入您的使用者名稱。
-
密碼和驗證密碼:輸入與此使用者關聯的密碼。
-
-
選取提交。
步驟 2.5.3.3 - 在來源 Oracle GoldenGate 中建立路徑連線
在連接目標部署的來源部署中,使用上一個步驟中建立的使用者建立「路徑連線」。例如,OP2C 的網域和 WSSNET 的別名。
-
登入來源 Oracle GoldenGate。
-
在導覽功能表中,選取路徑連線。
-
在「路徑連線」頁面上,選取新增路徑連線,然後完成下列作業:
-
憑證別名:輸入別名。
-
使用者 ID :輸入在步驟 2.5.3.2 中建立的使用者名稱。
-
密碼和驗證密碼:從步驟 2.5.3.2 輸入與此使用者關聯的密碼。
-
-
選取提交。
步驟 2.5.3.4 - 在來源 Oracle GoldenGate 上建立目標部署的分配路徑
系統會建立一個路徑,將歷程檔從「分送伺服器」傳送至「接收端伺服器」。您可以從「分送服務」建立路徑。新增來源部署的路徑:
-
在來源 Oracle GoldenGate 中,從導覽功能表中選取分送服務路徑。
-
選取新增路徑 (加號圖示)。就會顯示「新增路徑」頁面。
-
輸入明細如下:
-
輸入路徑名稱。
-
對於來源,請從下拉式清單中選取「擷取」名稱。
-
在產生的來源 URI 中,輸入
localhost作為伺服器的名稱。這可讓分送路徑從任一個 Oracle RAC 節點開始。 -
在目標驗證方法中,選取 UserID 別名。
-
針對目標,選取 wss (安全 Web 通訊埠)。
-
在目標主機中,輸入用於連線目標系統的目標主機名稱 /VIP。
-
在連接埠號碼中,輸入 NGINX 設定的連接埠號碼 (預設值為 443)。
-
在網域中,選取在步驟 2.3.3.3 中建立的證明資料網域。
-
若為別名,請選取同時在步驟 2.3.3.3 中建立的證明資料別名 wssnet 。
-
針對自動重新啟動選項,設定當「分送伺服器」自動啟動時要重新啟動的分送路徑。這是必要的,因此在重新啟動「分送伺服器」的 RAC 節點後,不需要手動介入。
-
在重試中,輸入 10。
-
如果是延遲,也就是重新啟動嘗試之間的暫停時間 (分鐘),請輸入 1。
-
-
選取建立路徑。
-
從「動作功能表」中選取開始。