操作流程
更新時間 2025-07-21 15:51:00
最近更新時間: 2025-07-21 15:51:00
分享文章
本頁為其他云PostgreSQL遷移到RDS for PostgreSQL的具體操作流程。
1、操作須知
DTS遷移或同步過程一般包含四個階段:預檢查階段、結構同步階段、全量階段、增量階段。為了確保同步各個階段的平順,在創建同步任務前,請務必閱讀以下使用須知。
任務開始前
源庫要求
- 源數據庫的分區表觸發器不可以設置為disable。
- 全量遷移支持源庫備機狀態,但需要設置hot_standby_feedback為on;增量遷移不支持源庫備機狀態。
- 若要做增量遷移:源數據庫的“pg_hba.conf” 文件中包含如下的配置:host replication all 0.0.0.0/0 md5源數據庫參數wal_level必須配置為logical;源數據庫需提前安裝Decoderbufs插件;源數據庫中無主鍵表的replica identity屬性必須為full;源數據庫的max_replication_slots參數值必須大于當前已使用的復制槽數量;源數據庫的max_wal_senders參數值必須等于或大于max_replication_slots參數值。源數據庫中表的主鍵列toast屬性為main、external、extended時,其replica identity屬性必須為full。
- 遷移對象依賴和關聯的對象也須一起遷移,否則可能導致任務失敗。
目標庫要求
- 目標數據庫的block_size參數值必須大于或等于源庫中的對應參數值。
- 目標數據庫和源數據庫的lc_monetary參數值一致。
- 若要做增量遷移,且遷移對象包含外鍵、觸發器或事件觸發器,則目標數據庫的session_replication_role參數必須設置為replica,遷移結束后,此參數需改為origin。
- 目標庫不可以包含,與待遷移對象類型相同且名稱相同的對象,包括模式、表、序列等,否則任務可能出差。系統庫、系統模式、系統表等除外。
- 選擇表級對象遷移時,增量遷移過程中不建議對表進行重命名操作。
- 對于全量+增量和增量任務,啟動前請確保源庫中未啟動長事務,啟動長事務會阻塞邏輯復制槽的創建,進而引發任務失敗。
- 若選擇遷移DDL,須注意源庫執行DDL時,確保在目標庫上是兼容的。
結構、全量過程中
- 請勿修改源庫和目標庫的端口號,請勿修改、刪除源庫和目標庫連接用戶的密碼、權限,否則可能導致任務失敗。
- 請勿在源庫執行任何DDL,否則可能導致數據不一致或任務失敗。
- 請勿在目標庫做寫入操作,否則可能導致數據不一致。
增量過程中
- 請勿修改源庫和目標庫的端口號,請勿修改、刪除源庫和目標庫連接用戶的密碼、權限,否則可能導致任務失敗。
- 請勿修改源數據庫表的主鍵或者唯一鍵(主鍵不存在時),否則可能導致增量數據不一致或任務失敗。
- 請勿修改源數據庫中表的replica identity屬性,否則可能導致增量數據不一致或任務失敗。
- 請勿在目標庫做寫入操作,否則可能導致數據不一致。
- 庫級遷移時,源庫新增無主鍵表時,請務必同時將該無主鍵表的replica identity屬性設置為full,然后再寫入數據,否則可能導致數據不一致或任務失敗。
- 庫級遷移時,源庫新增主鍵表時,如果主鍵列toast屬性為main、external、extended時,請務必同時將該表的replica identity屬性設置為full,然后再寫入數據,否則可能導致數據不一致或任務失敗。
- 若選擇遷移DDL,須注意源庫執行DDL時,確保在目標庫上是兼容的。
數據稽核
- 建議在源庫的業務低峰期進行數據比對,防止誤報不一致數據,以及減少對源庫和DTS任務的沖擊。
- 在增量遷移過程中做對比時,源庫若存在寫入,則對比結果可能不一致。
2、操作步驟
購買DTS同步實例
購買實例入口請參考訂購數據遷移實例。
其他云PostgreSQL同步到RDS for PostgreSQL的相關配置為:
在訂購頁面,實例類型選擇"數據遷移",網絡接入類型選擇"公網EIP",目標庫數據庫類型選擇"PostgreSQL",目標庫實例請選擇需要將數據同步至該庫的RDS for PostgreSQL實例,完成頁面信息的選擇和設置后,完成遷移實例的購買。
配置任務信息并啟動
DTS實例購買成功后,進入【實例配置】頁面,實例處于“待配置”狀態,先點擊“綁定彈性IP”按鈕完成公網彈性IP的綁定,然后再點擊該實例操作列的“實例配置”按鈕,通過如下步驟進行任務配置。
配置源庫及目標庫信息
填入源庫與目標庫的相關配置信息,包括數據庫類型、IP地址端口、數據庫賬號、數據庫密碼等信息。完成上述信息的填寫后可以進行數據庫的連接測試,測試數據庫能否正常連接。
配置待遷移對象
所有信息填寫正確后,點擊檢測連通性并下一步按鈕,選擇要遷移的源庫對象。
各配置及說明如下:
| 配置 | 說明 |
|---|---|
| 任務步驟 | 如果只需要進行全量遷移,請同時勾選庫表結構遷移和全量遷移 。 如果需要進行不停機遷移,請同時勾選庫表結構遷移 、全量遷移和增量遷移。 注意: 如果未選擇增量遷移,為保障數據一致性,數據遷移期間請勿在源實例中執行DML和DDL操作。 |
| 同步對象 | 源庫為PostgreSQL的情況下,支持表、視圖、函數、存儲過程、物化視圖、規則、觸發器,域、自定義類型等對象的同步。 在遷移對象框中單擊待遷移的對象,然后單擊將其移動到已選擇對象框。已選擇對象可以通過單擊對象回退。選擇遷移對象時,如不展開庫的詳細信息,則表示整庫遷移,后續在增量任務過程中,可在源庫創建新表,其他類型暫不支持。 |
| 映射名稱更改 | 支持庫表列三級名稱映射,如需更改單個遷移對象在目標實例中的庫名、表名和列名,選擇對象,然后點擊編輯按鈕。如需批量更改遷移對象在目標實例中的庫名、表名,請單擊已選擇對象方框右上方的“批量編輯”。 備注: 若遷移任務僅包含結構遷移和全量遷移,支持列映射名稱更改,若遷移任務包含增量遷移,不允許列映射名稱更改。 庫表名僅支持字母、數字和下劃線,長度不超過64個字符。 整庫遷移時不建議做庫表名映射。 |
| 過濾待遷移數據 | 支持設置where條件過濾數據,過濾條件不允許;和--字符,如需使用引號,請使用單引號('),只有滿足where條件的數據才會同步到目標庫。 |
| 增量遷移的DML | 選擇增量遷移DML操作,選中遷移對象,點擊“編輯”,在彈跳框中選擇所需增量遷移的DML操作。若在數據庫級別和表級別都指定了DML操作,則表級別的設置會覆蓋庫級別的。 |
| 增量遷移的DDL | 增量任務可選擇是否遷移增量DDL,注意: 1、任務中存在整庫遷移的情況下,則必須勾選增量DDL遷移。 2、非整庫遷移的情況下,若選擇DDL同步,則只同步待同步對象的DDL語句。 3、非整庫遷移的情況下,若未選擇增量DDL同步,則增量階段不會同步任何DDL語句。 |
| 是否定時開始任務 | 可選擇任務開始的時間,默認點擊開始任務后立即啟動遷移任務。 |
預檢查并啟動
預檢查通過后,點擊頁面底部的“啟動遷移”按鈕,開始遷移任務。
| 檢查項 | 檢查內容 |
|---|---|
| lc_monetary參數配置一致性檢查 | 檢查源庫與目標庫的lc_monetary參數配置是否一致。 |
| pg版本檢查 | 檢查源庫和目標庫的pg版本是不是符合要求。 |
| 同名對象存在性檢查 | 檢查目標庫中是否存在和待遷移庫同名的待遷移對象。 |
| 擴展插件兼容性檢查 | 檢查源庫中安裝的擴展插件,在目標庫是否存在。 |
| 約束完整性檢查 | 檢查待遷移對象中子表依賴的父表是否被選中。 |
| 檢查hot_standby_feedback參數配置 | 全量遷移源庫pg為備節點時,hot_standby_feedback參數需配置為ON。 |
| 源庫用戶權限檢查 | 檢查源庫用于DTS任務的用戶是否具有相應的權限。 |
| 源庫連通性檢查 | 檢查數據傳輸服務器能否連通源數據庫。 |
| 源數據庫的模式名表名是否合法 | 檢查源數據庫的模式名表名是否合法,名稱不可以包含+"%'<>,.字符。 |
| 源庫參數wal_level是否為logical | 勾選增量遷移時,檢查源庫wal_level參數值是否為logical。 |
| 目標庫用戶權限檢查 | 檢查目標庫用于DTS任務的用戶是否具有相應的權限。 |
| 目標庫連通性檢查 | 檢查數據傳輸服務器能否連通目標數據庫。 |
| 源庫參數max_replication_slots校驗 | 勾選增量遷移時,檢查源庫max_replication_slots參數值是否大于當前已使用的復制槽數量。 |
| 源庫參數max_wal_senders校驗 | 勾選增量遷移時,檢查源庫max_wal_senders參數值是否大于當前已使用的復制槽數量。 |
| 邏輯解碼插件安裝校驗 | 勾選增量遷移時,檢查源庫是否安裝邏輯解碼插件decoderbufs。 |
| 待遷移表是否存在主鍵檢查 | 勾選增量遷移時,檢查待遷移表中是否存在無主鍵的表。 |
| 無日志表存在性檢查 | 勾選增量遷移時,檢查當前選擇的待同步對象中的表是否存在無日志表。 |
| 源庫主備狀態檢查 | 勾選增量遷移時,檢查源庫是否為集群中的主庫。 |
| ddl同步元數據檢查 | 勾選ddl同步時,檢查源庫是否有ddl同步所需的元數據對象。 |
任務管理
查看遷移進度,請參考查看遷移進度。
查看遷移日志,請參考查看遷移日志。
