數據同步類
更新時間 2024-09-27 17:32:57
最近更新時間: 2024-09-27 17:32:57
分享文章
本頁為數據同步類常見問題。
DTS是否支持同步不同schema下的表到同一個schema?
DTS支持同步不同schema的表對象到同一個schema,但是表不可以沖突。
例如:將SCHEMA_A 的表A,SCHEMA_B的表B, 同步到SCHEMA_C下的表A和表B。
DTS是否支持雙向實時同步?
DTS目前支持MySQL->MySQL以及PostgreSQL->PostgreSQL的雙向同步。
MySQL->MySQL、PostgreSQL->PostgreSQL均只支持DML雙向實時同步,但不支持DDL的雙向實時同步。
- MySQL->MySQL雙向同步需要滿足如下條件:
- 待同步的表需具備主鍵。
- 源和目標庫大版本需保持一致。
- 為了防止雙向回環同步,?DTS會在源庫和目標庫的ctyun_dts庫下面分別創建回環標記表,表名:circle_任務id_時間戳,任務運行期間請勿操作此表。
- 當前天翼云DTS只支持DML的雙向同步,DDL的同步方面,僅正向同步(源庫同步至目標庫)支持DDL,反向同步(目標庫同步至源庫)不支持同步DDL,將自動過濾DDL操作。
- PostgreSQL->PostgreSQL雙向同步需要滿足如下條件:
- 源和目標庫大版本需保持一致。
- DTS為了防止雙向回環同步,會在源庫和目標庫分別創建回環標記表public.ctyun_circle_check,請勿操作此表。
- 當前天翼云DTS只支持DML的雙向同步,DDL的同步方面,僅正向同步(源庫同步至目標庫)支持DDL,反向同步(目標庫同步至源庫)不支持同步DDL,將自動過濾DDL操作。
MySQL雙向實時同步時,若源庫和目標庫同時變更同一個表的同一條數據,會怎么樣?
數據庫雙寫問題是業界難題,DTS的雙向同步無法完全解決數據雙寫引發的數據沖突問題。在使用雙向同步時,您需要在業務層面配合進行相應的改造,保證同一個主鍵或唯一鍵的記錄只在雙向同步的某個節點進行更新。
若短時間內業務對源庫、目標庫中同一條記錄發生變更,DTS采用以下策略來保證數據的最終一致性:
- TaskFailed(遇到沖突,任務報錯退出)。
當數據同步遇到沖突時,同步任務直接報錯并退出,同步任務進入失敗狀態,需要您介入修復任務。 - Ignore(遇到沖突,直接使用目標實例中的沖突記錄)。
當數據同步遇到沖突時,直接跳過當前同步語句,繼續往下執行,選擇使用目標庫中的沖突記錄。 - Overwrite(遇到沖突,直接覆蓋目標實例中的沖突記錄)。
當數據同步遇到沖突時,直接覆蓋目標庫中的沖突記錄。
正向和反向都可以選擇以上一種沖突修復策略,DTS根據用戶配置的沖突修復策略進行沖突的檢測和處理。
PostgreSQL雙向實時同步時,若源庫和目標庫同時變更同一個表的同一條數據,會怎么樣?
數據庫雙寫問題是業界難題,DTS的雙向同步無法完全解決數據雙寫引發的數據沖突問題。在使用雙向同步時,您需要在業務層面配合進行相應的改造,保證同一個主鍵或唯一鍵的記錄只在雙向同步的某個節點進行更新。
若短時間內業務對源庫、目標庫中同一條記錄發生變更,DTS采用以下策略來保證數據的最終一致性:
- TaskFailed(遇到沖突,任務報錯退出)。
當數據同步遇到沖突時,同步任務直接報錯并退出,同步任務進入失敗狀態,需要您介入修復任務。 - Ignore(遇到沖突,直接使用目標實例中的沖突記錄)。
當數據同步遇到沖突時,直接跳過當前同步語句,繼續往下執行,選擇使用目標庫中的沖突記錄。 - Overwrite(遇到沖突,直接覆蓋目標實例中的沖突記錄)。
當數據同步遇到沖突時,直接覆蓋目標庫中的沖突記錄。
正向和反向都可以選擇以上一種沖突修復策略,DTS根據用戶配置的沖突修復策略進行沖突的檢測和處理。