全部產品
Search
文件中心

AnalyticDB:自建PostgreSQL同步到雲原生資料倉儲AnalyticDB PostgreSQL

更新時間:Feb 05, 2024

Data Transmission Service支援將自建PostgreSQL同步至雲原生資料倉儲AnalyticDB PostgreSQL。通過DTS提供的資料同步功能,可以輕鬆實現資料的流轉,將企業資料集中分析。

前提條件

注意事項

  • 一個資料同步作業只能同步一個資料庫,如果有多個資料庫需要同步,則需要為每個資料庫建立資料同步作業。

  • 在資料同步的過程中,如果要將源庫中建立的新表作為同步對象,您需要對該表執行如下操作以保障該表資料同步的一致性。

    ALTER TABLE schema.table REPLICA IDENTITY FULL;
  • 為保障同步任務的正常進行,目前僅支援RDS PostgreSQL 11進行主備切換,且需設定參數 rds_failover_slot_modesync,設定方式,請參見邏輯複製槽容錯移轉(Logical Replication Slot Failover)

    警告

    若自建PostgreSQL或其他版本的RDS PostgreSQL進行主備切換,會導致同步任務失敗。

  • 若源庫有長事務,且執行個體包含增量同步處理任務,則可能會導致源庫長事務提交前的預寫記錄檔WAL(Write-Ahead Logging)無法清理而堆積,從而造成源庫磁碟空間不足。

費用說明

同步類型鏈路配置費用
庫表結構同步和全量資料同步不收費。
增量資料同步收費,詳情請參見計費概述

同步限制

  • 不支援結構初始化,即不支援將源庫中待同步對象的結構定義(例如表結構)同步至目標庫中。

  • 同步對象僅支援資料表,且目標表暫不支援AO表。

  • 不支援BIT、VARBIT、GEOMETRY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT類型的資料同步。

  • 同步過程中,如果對源庫中的同步對象執行了DDL操作,需要手動在目標庫中執行對應的DDL操作,然後重啟資料同步作業。

支援同步的SQL操作

INSERT、UPDATE、DELETE。

準備工作

根據自建PostgreSQL中待同步對象的結構,在目標雲原生資料倉儲AnalyticDB PostgreSQL中建立相應的資料庫、Schema、表等結構資訊,詳情請參見SQL文法

操作步驟

  1. 購買資料同步作業,詳情請參見購買流程

    說明

    購買時,選擇源執行個體為PostgreSQL、目標執行個體為AnalyticDB for PostgreSQL,並選擇同步拓撲為單向同步

  2. 登入資料轉送控制台
  3. 在左側導覽列,單擊資料同步
  4. 同步作業列表頁面頂部,選擇資料同步執行個體所屬地區。
  5. 定位至已購買的資料同步執行個體,單擊配置同步鏈路
  6. 配置同步通道的源執行個體及目標執行個體資訊。
    配置源和目標庫資訊
    類別配置說明
    同步作業名稱DTS會自動產生一個同步作業名稱,建議配置具有業務意義的名稱(無唯一性要求),便於後續識別。
    源執行個體資訊執行個體類型根據源庫的部署位置進行選擇,本文以ECS上的自建資料庫為例介紹配置流程。
    說明 當自建資料庫為其他執行個體類型時,您還需要執行相應的準備工作,詳情請參見準備工作概覽

    本文以ECS上的自建資料庫為例介紹配置流程。

    執行個體地區購買資料同步執行個體時選擇的源執行個體地區資訊,不可變更。
    ECS執行個體ID選擇自建PostgreSQL資料庫所屬的ECS執行個體ID。
    資料庫類型固定為PostgreSQL
    連接埠填入自建PostgreSQL資料庫的服務連接埠。
    資料庫名稱填入待同步的表所屬的資料庫名稱。
    資料庫帳號填入自建PostgreSQL的資料庫帳號。
    說明 資料庫帳號須具備schema的owner許可權。
    資料庫密碼填入該資料庫帳號對應的密碼。
    目標執行個體資訊執行個體類型固定為AnalyticDB for PostgreSQL,無需設定。
    執行個體地區購買資料同步執行個體時選擇的目標執行個體地區資訊,不可變更。
    執行個體ID選擇雲原生資料倉儲AnalyticDB PostgreSQL執行個體ID。
    資料庫名稱填入同步目標表所屬的資料庫名稱。
    資料庫帳號填入雲原生資料倉儲AnalyticDB PostgreSQL初始帳號,詳情請參見建立資料庫帳號
    說明 您也可以填入具備RDS_SUPERUSER許可權的帳號,建立方法請參見使用者權限管理
    資料庫密碼填入該資料庫帳號對應的密碼。
  7. 單擊頁面右下角的授權白名單並進入下一步

    如果源或目標資料庫是阿里雲資料庫執行個體(例如RDS MySQLApsaraDB for MongoDB等),DTS會自動將對應地區DTS服務的IP地址添加到阿里雲資料庫執行個體的白名單中;如果源或目標資料庫是ECS上的自建資料庫,DTS會自動將對應地區DTS服務的IP地址添到ECS的安全規則中,您還需確保自建資料庫沒有限制ECS的訪問(若資料庫是叢集部署在多個ECS執行個體,您需要手動將DTS服務對應地區的IP地址添到其餘每個ECS的安全規則中);如果源或目標資料庫是IDC自建資料庫或其他雲資料庫,則需要您手動添加對應地區DTS服務的IP地址,以允許來自DTS伺服器的訪問。DTS服務的IP地址,請參見DTS伺服器的IP位址區段

    警告

    DTS自動添加或您手動添加DTS服務的公網IP位址區段可能會存在安全風險,一旦使用本產品代表您已理解和確認其中可能存在的安全風險,並且需要您做好基本的安全防護,包括但不限於加強帳號密碼強度防範、限制各網段開放的連接埠號碼、內部各API使用鑒權方式通訊、定期檢查並限制不需要的網段,或者使用通過內網(專線/VPN網關/智能網關)的方式接入。

  8. 配置同步策略及對象資訊。

    選擇同步對象

    類別

    配置

    說明

    同步策略配置

    同步初始化

    預設情況下,您需要勾選全量資料初始化。預檢查完成後,DTS會將源執行個體中待同步對象的存量資料同步至目標執行個體,作為後續增量同步處理資料的基準資料。

    目標已存在表的處理模式

    • 清空目標表的資料

      在預檢查階段跳過目標表是否為空白的檢查專案。全量初始化之前將目標表的資料清空。適用於完成同步任務測試後的正式同步情境。

    • 忽略報錯並繼續執行

      在預檢查階段跳過目標表是否為空白的檢查專案。全量初始化時直接追加遷移資料。適用於多張表同步到一張表的匯總同步情境。

    同步操作類型

    根據業務需求選擇需要同步的操作類型:

    說明

    不支援AlterTable

    • Insert

    • Update

    • Delete

    • AlterTable

    選擇同步對象

    源庫對象框中單擊待同步的表,然後單擊向右小箭頭將其移動至已選擇對象框。

    說明

    映射名稱更改

    如需更改同步對象在目標執行個體中的名稱,請使用對象名映射功能,詳情請參見庫表列映射

    重要

    若使用列映射時為非全表同步或者源與目標表結構不一致,則目標端比源端缺少的列的資料將會丟失。

    源、目標庫無法串連重試時間

    當源、目標庫無法串連時,DTS預設重試720分鐘(即12小時),您也可以自訂重試時間。如果DTS在設定的時間內重新串連上源、目標庫,同步任務將自動回復。否則,同步任務將失敗。

    說明

    由於串連重試期間,DTS將收取任務運行費用,建議您根據業務需要自訂重試時間,或者在源和目標庫執行個體釋放後儘快釋放DTS執行個體。

  9. 上述配置完成後,單擊頁面右下角的預檢查並啟動

    說明
    • 在同步作業正式啟動之前,會先進行預檢查。只有預檢查通過後,才能成功啟動同步作業。

    • 如果預檢查失敗,單擊具體檢查項後的提示,查看失敗詳情。

      • 您可以根據提示修複後重新進行預檢查。

      • 如無需修複警示檢測項,您也可以選擇確認屏蔽忽略警示項並重新進行預檢查,跳過警示檢測項重新進行預檢查。

  10. 預檢查對話方塊中顯示預檢查通過後,關閉預檢查對話方塊,同步作業將正式開始。

  11. 等待同步作業的鏈路初始化完成,直至處於同步中狀態。

    您可以在資料同步頁面,查看資料同步作業的狀態。查看同步作業狀態