Data Transmission Service提供的Exactly-Once寫入功能,可以協助您將既無主鍵也無唯一約束的表的全量和增量資料準確地同步到目標表。
使用限制
當前僅部分雙向同步執行個體的全量和增量任務支援此功能,詳情請參見支援的鏈路。
源庫存在既無主鍵也無唯一約束的表,且該表有如下限制:
若源庫的資料庫類型為MySQL,且接入方式不為雲執行個體,則源庫必須開啟GTID複製模式,且待同步表的儲存引擎必須是事務性儲存引擎(如InnoDB)。
待同步的單張表不能超過200 GB。
除了清理資料的DDL操作外,其他DDL變更均不支援Exactly-Once寫入功能(DTS不保證資料的一致性)。
支援的鏈路
僅雙向同步鏈路支援。
源庫 | 目標庫 |
MySQL | MySQL、PolarDB for MySQL |
PolarDB for MySQL | MySQL、PolarDB for MySQL |
PostgreSQL | PostgreSQL、PolarDB for PostgreSQL |
PolarDB for PostgreSQL | PostgreSQL、PolarDB for PostgreSQL |
PolarDB(相容Oracle) | PolarDB(相容Oracle) |
注意事項
若源庫的資料庫類型為MySQL或PolarDB for MySQL,在任務運行時,源庫既無主鍵也無唯一約束的表會出現短暫的表鎖定。
全量和增量任務會在目標執行個體建立名為
dts
的資料庫或Schema,並且在其中建立多張事務表。在DTS任務運行過程中,請勿對該事務表進行DML操作。反向同步任務是否開啟Exactly-Once寫入的配置預設與正向同步任務相同且無法修改。
操作步驟
進入到正向同步任務的對象配置階段。
說明若您使用的是舊版配置頁,則需要進入配置任務對象及高級配置階段。
進入方式,請參見同步方案概覽中對應的配置文檔。
將是否開啟Exactly-Once寫入選擇為是。
根據實際需求,完成後續配置。