附註:

使用 OCI GoldenGate 將內部部署 PostgreSQL 資料庫移轉至 OCI 資料庫 (使用 PostgreSQL)

簡介

具備 PostgreSQL 的 Oracle Cloud Infrastructure Database (具備 PostgreSQL 的 OCI 資料庫) 是一項完全託管的服務,可在建立或刪除資料庫表格時自動調整儲存。這可為您簡化管理並最佳化儲存成本。資料會同時在傳輸中和靜態進行加密。

OCI GoldenGate 支援邏輯線上移轉,可為具備 PostgreSQL 服務資料庫的 OCI 資料庫進行無縫轉換和近乎零停機移轉。此功能支援使用 PostgreSQL 服務版本 14、15 個資料庫和未來的版本,將 VM 上的內部部署 PostgreSQL 資料庫移轉至 OCI 資料庫。

本教學課程概述 OCI GoldenGate 如何協助將 VM 版本 14 上的內部部署 PostgreSQL 資料庫移轉至 PostgreSQL 服務資料庫版本 14 的 OCI 資料庫。初始載入是使用 pg_dump (pg_dumpall) /pg_restore 備份公用程式來執行。這將會建立來源資料庫的備份或快照,此備份或快照會在目標系統上回復,後面接著 OCI GoldenGate Change Data Capture (CDC) 複製以同步來源 (內部部署 VM PostgreSQL 資料庫) 和目標 (OCI 資料庫與 PostgreSQL 服務)。

下列影像顯示使用 OCI GoldenGate 將 VM 上的內部部署 PostgreSQL 資料庫移轉至 OCI 資料庫的架構 (使用 PostgreSQL 服務)。

顯示架構的影像

目標

必要條件

注意:這些先決條件適用於 VM (來源) 上的內部部署 PostgreSQL 資料庫。

作業 1:準備來源資料庫環境

  1. 執行下列查詢以建立複製使用者,在 OCI 主控台中建立連線時,應使用此使用者。

    create user ggadmin with password ‘<<password>>’;
    GRANT ALL PRIVILEGES ON DATABASE campaign TO ggadmin;
    alter user ggadmin replication;
    alter user ggadmin with superuser;
    
  2. 應變更下列參數,並重新啟動資料庫系統以修改 wal_level

    ALTER SYSTEM SET wal_level = logical;
    ALTER SYSTEM SET track_commit_timestamp = on;
    

工作 2:佈建 OCI GoldenGate 和設定連線

  1. 登入 OCI 主控台並建立 PostgreSQL 資料庫的 OCI GoldenGate 部署。

    顯示部署建立項目的影像

    顯示部署建立項目的影像

    顯示部署建立項目的影像

    顯示部署建立項目的影像

    顯示部署建立項目的影像

  2. 建立 OCI PostgreSQL 的 OCI GoldenGate 連線。

    1. 輸入來源連線詳細資訊,然後按一下建立

      顯示建立 SourceConnections 的影像

      顯示建立 SourceConnections 的影像

    2. 輸入目標連線詳細資訊,然後按一下建立

      顯示建立 TargetConnections 的影像

      顯示建立 TargetConnections 的影像

    注意:如果為 VM 建立連線,則 SSL 協定應為 Plain ,而對於使用 PostgreSQL 服務的 OCI 資料庫,則 SSL 協定應為 Require

  3. 按一下建立以建立連線。

作業 3:設定來源資料庫複製

  1. 在 OCI GoldenGate 中建立擷取

    顯示「建立綱要」異動資料的影像

    注意:在來源資料庫中新增所有適用綱要的綱要交易,然後按一下送出

    顯示建立 Extract 的影像

    顯示建立 Extract 的影像

    顯示建立 Extract 參數 file1 的影像

    注意:按一下建立,然後不要按一下建立並執行

  2. 在來源資料庫中建立暫時複製槽位,此槽位將用於為 Extract 處理作業建立起點,以及設定 PostgreSQL 快照的位置。可使用 CREATE_REPLICATION_SLOT 指令來完成。依照步驟設定暫時複製位置:

    1. 以具有複製角色的使用者身分 (例如 postgresggadmin 使用者) 使用 psql 登入 PostgreSQL 資料庫。

    2. 使用 replication=database 選項。

      psql "dbname=pgsource replication=database user=postgres" 
      CREATE_REPLICATION_SLOT tslot TEMPORARY LOGICAL test_decoding EXPORT_SNAPSHOT;
      slot_name | consistent_point | snapshot_name | output_plugin
      ----------+------------------+---------------+--------------------- 
          tslot | 1/4232A6B0 | 00000007-00001142-1 | test_decoding 
      
    3. 請注意 snapshot_nameconsistent_point 詳細資訊。

      注意:

      • consistent_point 應用於定位 OCI GoldenGate Extract 並啟動 Extract 以擷取 CDC 交易。
      • snapshot_name 應用於使用 pg_dumppg_restore 從來源至目標資料庫的初始載入。
  3. 將 OCI Goldengate Extract 定位至 consistent_point 日誌序號 (LSN)。

    建立的 CDC 擷取將會處於停止狀態。

    顯示 Extract 定位建立的影像

    動作下,按一下 ... 圖示,然後選取更改

    顯示 Extract 定位建立的影像

    將 LSN 的位置更改為任務 3.2 中擷取的 consistent_point

    顯示 Extract 定位建立的影像

  4. 按一下送出,然後開始擷取處理作業。

    Extract 將處於執行中狀態,將從更改的位置開始 CDC 擷取。

    顯示 Extract 定位建立的影像

作業 4:在來源與目標資料庫上執行備份與回復

  1. 執行下列命令以備份來源主要資料庫。

    nohup /u01/pgsql-14/bin/pg_dump -h <<Sourceip>> -p 5432 -U <<superuser/ggadmin user>> –snapshot=00000007-00001142-1 -F c -b -v -f latestdump.db pgsource &
    
  2. 執行下列命令將傾印回復至目標資料庫。

    nohup /u01/pgsql-14/bin/pg_restore -h <<Targetip>> -p 5432 -U admin -d pgtarget -v latestdump.db &
    

作業 5:設定目標資料庫複製

  1. 在 OCI GoldenGate 目標資料庫上任何可用的綱要中建立檢查點表格,然後按一下送出

    顯示「建立檢查點」表格的影像

  2. 建立具有目標資料庫連線的 Replicat 處理作業,以將 CDC 資料套用至目標資料庫。

    顯示建立 Replicat 的影像

    顯示建立 Replicat 的影像

    顯示建立 Replicat 的影像

    顯示 Replicat 參數檔建立的影像

  3. 按一下提交並啟動 Replicat。允許同步。

    顯示建立 Replicat 的影像

工作 6:執行實際移轉

使用 PostgreSQL 服務從內部部署 VM PostgreSQL 資料庫切換至 OCI 資料庫。

工作 7:驗證移轉

使用 PostgreSQL 驗證 OCI 資料庫中目標資料庫系統的傳輸資料庫物件和資料,以確保移轉成功,且沒有任何問題或差異。

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center