RDS PostgreSQL同步至AnalyticDB for PostgreSQL
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務造成影響,請務必仔細閱讀。
數(shù)據(jù)傳輸服務DTS(Data Transmission Service)支持將RDS PostgreSQL同步至AnalyticDB PostgreSQL版。通過DTS提供的數(shù)據(jù)同步功能,可以輕松實現(xiàn)數(shù)據(jù)的流轉(zhuǎn),將企業(yè)數(shù)據(jù)集中分析。
前提條件
RDS PostgreSQL中待同步的數(shù)據(jù)表必須具備主鍵。
已創(chuàng)建目標云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL實例,如未創(chuàng)建請參見創(chuàng)建云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL實例。
注意事項
一個數(shù)據(jù)同步作業(yè)只能同步一個數(shù)據(jù)庫,如果有多個數(shù)據(jù)庫需要同步,則需要為每個數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)同步作業(yè)。
在數(shù)據(jù)同步的過程中,如果要將源庫中創(chuàng)建的新表作為同步對象,您需要對該表執(zhí)行如下操作以保障該表數(shù)據(jù)同步的一致性。
ALTER TABLE schema.table REPLICA IDENTITY FULL;
為保障同步任務的正常進行,目前僅支持RDS PostgreSQL 11進行主備切換,且需設置參數(shù)
rds_failover_slot_mode
為sync
,設置方式,請參見邏輯復制槽故障轉(zhuǎn)移(Logical Replication Slot Failover)。警告若自建PostgreSQL或其他版本的RDS PostgreSQL進行主備切換,會導致同步任務失敗。
若源庫有長事務,且實例包含增量同步任務,則可能會導致源庫長事務提交前的預寫日志W(wǎng)AL(Write-Ahead Logging)無法清理而堆積,從而造成源庫磁盤空間不足。
費用說明
同步類型 | 鏈路配置費用 |
庫表結(jié)構(gòu)同步和全量數(shù)據(jù)同步 | 不收費。 |
增量數(shù)據(jù)同步 | 收費,詳情請參見計費概述。 |
同步限制
不支持結(jié)構(gòu)初始化,即不支持將源庫中待同步對象的結(jié)構(gòu)定義(例如表結(jié)構(gòu))同步至目標庫中。
同步對象僅支持數(shù)據(jù)表,且目標表暫不支持AO表。
不支持BIT、VARBIT、GEOMETRY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT類型的數(shù)據(jù)同步。
同步過程中,如果對源庫中的同步對象執(zhí)行了DDL操作,需要手動在目標庫中執(zhí)行對應的DDL操作,然后重啟數(shù)據(jù)同步作業(yè)。
支持的同步語法
僅支持INSERT、UPDATE、DELETE。
準備工作
調(diào)整源RDS實例的
wal_level
參數(shù)設置。警告修改
wal_level
參數(shù)后需要重啟實例才能生效,請評估對業(yè)務的影響,在業(yè)務低峰期進行修改。登錄RDS管理控制臺。
在左側(cè)導航欄,單擊實例列表。
在頁面上方,選擇實例所在地域。
找到目標實例,單擊實例ID。
在左側(cè)導航欄,單擊參數(shù)設置。
在參數(shù)設置頁面找到
wal_level
參數(shù),將參數(shù)值改為logical
。說明更多信息,請參見設置實例參數(shù)。
根據(jù)源RDS實例中待同步對象的結(jié)構(gòu),在目標云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL中創(chuàng)建相應的數(shù)據(jù)庫、Schema、表等結(jié)構(gòu)信息,詳情請參見SQL語法。
操作步驟
購買數(shù)據(jù)同步作業(yè),詳情請參見購買流程。
說明購買時,選擇源實例為PostgreSQL、目標實例為AnalyticDB for PostgreSQL,并選擇同步拓撲為單向同步。
- 說明
若您登錄的是數(shù)據(jù)管理DMS控制臺(當前默認跳轉(zhuǎn)至DMS控制臺),您可以在右下角的中單擊,返回至舊版數(shù)據(jù)傳輸控制臺。
若您登錄的是新版數(shù)據(jù)傳輸控制臺,您可以單擊右下角的,返回至舊版數(shù)據(jù)傳輸控制臺。
在左側(cè)導航欄,單擊數(shù)據(jù)同步。
在同步作業(yè)列表頁面頂部,選擇同步的目標實例所屬地域。
定位至已購買的數(shù)據(jù)同步實例,單擊配置同步鏈路。
配置同步作業(yè)的源實例及目標實例信息。
類別
配置
說明
無
同步作業(yè)名稱
DTS會自動生成一個同步作業(yè)名稱,建議配置具有業(yè)務意義的名稱(無唯一性要求),便于后續(xù)識別。
源實例信息
實例類型
選擇RDS實例。
實例地區(qū)
購買數(shù)據(jù)同步實例時選擇的源實例地域信息,不可變更。
實例ID
選擇RDS PostgreSQL實例ID。
數(shù)據(jù)庫名稱
填入待同步的表所屬的數(shù)據(jù)庫名稱。
數(shù)據(jù)庫賬號
填入RDS PostgreSQL的數(shù)據(jù)庫的高權(quán)限賬號,且需為所選數(shù)據(jù)庫的owner(授權(quán)賬號)。
說明當源庫為RDS PostgreSQL 9.4,且僅需同步DML操作時,賬號具備replication權(quán)限即可。
數(shù)據(jù)庫密碼
填入該數(shù)據(jù)庫賬號對應的密碼。
目標實例信息
實例類型
固定為AnalyticDB for PostgreSQL,無需設置。
實例地區(qū)
購買數(shù)據(jù)同步實例時選擇的目標實例地域信息,不可變更。
實例ID
選擇云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL實例ID。
數(shù)據(jù)庫名稱
填入同步目標表所屬的數(shù)據(jù)庫名稱。
說明該庫須在云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL中存在,如不存在請創(chuàng)建數(shù)據(jù)庫。
數(shù)據(jù)庫賬號
填入云原生數(shù)據(jù)倉庫AnalyticDB PostgreSQL的初始賬號,詳情請參見創(chuàng)建數(shù)據(jù)庫賬號。
說明您也可以填入具備RDS_SUPERUSER權(quán)限的賬號,創(chuàng)建方法請參見用戶權(quán)限管理。
數(shù)據(jù)庫密碼
填入該數(shù)據(jù)庫賬號對應的密碼。
單擊頁面右下角的授權(quán)白名單并進入下一步。
如果源或目標數(shù)據(jù)庫是阿里云數(shù)據(jù)庫實例(例如RDS MySQL、云數(shù)據(jù)庫MongoDB版等),DTS會自動將對應地區(qū)DTS服務的IP地址添加到阿里云數(shù)據(jù)庫實例的白名單中;如果源或目標數(shù)據(jù)庫是ECS上的自建數(shù)據(jù)庫,DTS會自動將對應地區(qū)DTS服務的IP地址添到ECS的安全規(guī)則中,您還需確保自建數(shù)據(jù)庫沒有限制ECS的訪問(若數(shù)據(jù)庫是集群部署在多個ECS實例,您需要手動將DTS服務對應地區(qū)的IP地址添到其余每個ECS的安全規(guī)則中);如果源或目標數(shù)據(jù)庫是IDC自建數(shù)據(jù)庫或其他云數(shù)據(jù)庫,則需要您手動添加對應地區(qū)DTS服務的IP地址,以允許來自DTS服務器的訪問。DTS服務的IP地址,請參見DTS服務器的IP地址段。
警告DTS自動添加或您手動添加DTS服務的公網(wǎng)IP地址段可能會存在安全風險,一旦使用本產(chǎn)品代表您已理解和確認其中可能存在的安全風險,并且需要您做好基本的安全防護,包括但不限于加強賬號密碼強度防范、限制各網(wǎng)段開放的端口號、內(nèi)部各API使用鑒權(quán)方式通信、定期檢查并限制不需要的網(wǎng)段,或者使用通過內(nèi)網(wǎng)(專線/VPN網(wǎng)關/智能網(wǎng)關)的方式接入。
配置同步策略及對象信息。
類別
配置
說明
同步策略配置
同步初始化
默認情況下,您需要勾選全量數(shù)據(jù)初始化。預檢查完成后,DTS會將源實例中待同步對象的存量數(shù)據(jù)同步至目標實例,作為后續(xù)增量同步數(shù)據(jù)的基線數(shù)據(jù)。
目標已存在表的處理模式
清空目標表的數(shù)據(jù)
在預檢查階段跳過目標表是否為空的檢查項目。全量初始化之前將目標表的數(shù)據(jù)清空。適用于完成同步任務測試后的正式同步場景。
忽略報錯并繼續(xù)執(zhí)行
在預檢查階段跳過目標表是否為空的檢查項目。全量初始化時直接追加遷移數(shù)據(jù)。適用于多張表同步到一張表的匯總同步場景。
同步操作類型
根據(jù)業(yè)務需求選擇需要同步的操作類型:
說明不支持AlterTable。
Insert
Update
Delete
AlterTable
選擇同步對象
無
在源庫對象框中單擊待同步的表,然后單擊將其移動至已選擇對象框。
說明同步對象的選擇粒度為表。
如果需要目標表中的列名稱與源表不同,則需要使用DTS的字段映射功能,詳情請參見設置同步對象在目標實例中的名稱。
映射名稱更改
無
如需更改同步對象在目標實例中的名稱,請使用對象名映射功能,詳情請參見庫表列映射。
重要若使用列映射時為非全表同步或者源與目標表結(jié)構(gòu)不一致,則目標端比源端缺少的列的數(shù)據(jù)將會丟失。
源、目標庫無法連接重試時間
無
當源、目標庫無法連接時,DTS默認重試720分鐘(即12小時),您也可以自定義重試時間。如果DTS在設置的時間內(nèi)重新連接上源、目標庫,同步任務將自動恢復。否則,同步任務將失敗。
說明由于連接重試期間,DTS將收取任務運行費用,建議您根據(jù)業(yè)務需要自定義重試時間,或者在源和目標庫實例釋放后盡快釋放DTS實例。
上述配置完成后,單擊頁面右下角的預檢查并啟動。
說明在同步作業(yè)正式啟動之前,會先進行預檢查。只有預檢查通過后,才能成功啟動同步作業(yè)。
如果預檢查失敗,單擊具體檢查項后的,查看失敗詳情。
您可以根據(jù)提示修復后重新進行預檢查。
如無需修復告警檢測項,您也可以選擇確認屏蔽、忽略告警項并重新進行預檢查,跳過告警檢測項重新進行預檢查。
在預檢查對話框中顯示預檢查通過后,關閉預檢查對話框,同步作業(yè)將正式開始。
等待同步作業(yè)的鏈路初始化完成,直至處于同步中狀態(tài)。
您可以在數(shù)據(jù)同步頁面,查看數(shù)據(jù)同步作業(yè)的狀態(tài)。