精確建立 SQL Server

從 Oracle GoldenGate 23.8 開始,可以使用 SQL Server 的初始載入 Extract 來協調精確的建立。精確的建立方法允許在來源資料庫保持連線以進行應用程式更新時,從來源資料庫初始載入資料至目標資料庫。此方法可確保變更資料擷取與傳遞處理作業的精確定位,在目標資料庫中沒有重複的資料,且無須在 Replicat 中使用 HANDLECOLLISIONS。

Oracle GoldenGate for SQL Server 的精確建立需要設定來源 SQL Server 資料庫,以允許快照隔離,並在初始載入 Extract 中使用 INITIALLOADOPTIONS USESNAPSHOT 參數。此方法可用來從任何支援的 SQL Server 來源資料庫建立任何支援的目標資料庫。

以下是使用從來源執行處理進行綱要傾印的精確建立方法範例,然後載入至目標執行處理,接著使用 Oracle GoldenGate 組態來進行變更資料複製:

  1. 來源資料庫表格的 ADD TRANDATA。

    DBLOGIN USERIDALIAS src_alias
    ADD TRANDATA dbo.*
  2. TRANDATA 完成之後,請確認資料庫已啟用快照隔離功能,如果未啟用,請手動加以啟用。

    ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION ON;
  3. 若為 Microservices 架構,請在 WebUI 中新增「清除 CDC 資料」任務。請參閱清除 CDC 暫存資料與清除處理以瞭解更多資訊。

  4. 使用 INITIALLOADOPTIONS USESNAPSHOT 參數建立「初始載入擷取」。

    ADD EXTRACT einit, SOURCEISTABLE
    --Sample Initial Load Extract Parameter File:
        EXTRACT einit
        USERIDALIAS tpcc_source2017
        INITIALLOADOPTIONS USESNAPSHOT
        EXTFILE ei, MEGABYTES 500, PURGE
        TABLE dbo.*;
  5. 開始初始載入擷取。

    START EXTRACT einit
  6. 當「初始載入擷取」完成並停止時,請檢視報表檔案,以尋找類似下面的訊息,該訊息將在建立「CDC 擷取」時使用。

    VIEW REPORT einit
    INFO    OGG-05381  A consistent point is established in database 'tpcc_source' at LSN 0x00000488:00002a98:0002.
    
        OGG-05379  Create or position a Change Data Capture Extract to LSN 0x00000488:00002a98:0002. Example: ADD EXTRACT <extract-name> TRANLOG LSN
    
        0x00000488:00002a98:0002 or ALTER EXTRACT <extract-name> LSN 0x00000488:00002a98:0002
  7. 如果每個步驟 2 手動啟用快照隔離,現在可將允許快照隔離的來源資料庫選項設回 OFF。

    ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION OFF;
  8. 使用初始載入擷取報表檔案的 LSN 輸出來建立 CDC 擷取。

    ADD EXTRACT extcdc TRANLOG LSN 0x00000488:00002a98:0002
    ADD EXTTRAIL ea, EXTRACT extcdc
  9. 建立並啟動從起始載入 Extract 所建立之歷程檔讀取的起始載入 Replicat。

    ADD REPLICAT rinit, PARALLEL, EXTTRAIL ei, CHECKPOINTTABLE ggadmin.ggcheck
    START rinit
    --Sample Initial Load Replicat Parameter file
        REPLICAT rinit
        USERIDALIAS tgt_alias
        BATCHSQL
        SPLIT_TRANS_RECS 100000
        MAP dbo.*, TARGET dbo.*;
  10. 初始載入 Replicat 結束處理時,請建立並啟動從「CDC 擷取」所建立之歷程檔讀取的「CDC Replicat」。

    ADD REPLICAT repcd, PARALLEL, EXTTRAIL ea, CHECKPOINTTABLE ggadmin.ggcheck
    START EXTRACT extcdc
    START REPLICAT repcd