全部產品
Search
文件中心

Data Transmission Service:修複同步作業預檢查失敗的問題

更新時間:Jul 06, 2024

DTS在執行資料同步作業之前,會對源庫和目標執行預檢查,本文介紹各類檢查項失敗可能的原因及修複方法。

預檢查專案失敗可能的原因修複方法

源庫串連性檢查

目標庫串連性檢查

資料庫帳號或密碼不正確。擷取到正確的密碼,然後修改同步作業中配置的源或目標庫的資料庫密碼,詳情請參見修改資料庫密碼
源或目標庫對來源IP進行了限制。
  • 源或目標庫為MySQL:為資料庫帳號重新授權,授權IP地址清單需包含DTS伺服器的IP地址。關於如何選擇DTS伺服器的IP地址,請參見添加DTS伺服器的IP位址區段
  • 源或目標庫為SQL Server:關閉防火牆或禁用trigger。
  • 源或目標庫為Oracle:修改TCP.VALIDNODE_CHECKING的值為no並重啟進程。
源或目標庫所屬的伺服器設定了防火牆。關閉相關防火牆限制。
源庫版本檢查DTS不支援該版本的資料庫,DTS支援資料庫版本資訊請參見同步方案概覽升級或降級資料庫版本。
資料庫存在性檢查當待同步的資料庫在目標執行個體中不存在,由DTS自動建立時,可能由於下述原因導致建立失敗:
  • 資料庫名包含小寫字母、數字、底線(_)或中劃線(-)以外的其他特殊字元。
  • 資料庫的字元集為utf8、GBK、latin1或utf8mb4以外的字元集。
  • 資料同步作業中配置的目標資料庫帳號許可權不足。
手動在目標執行個體中建立滿足要求的資料庫或調整資料庫帳號。
源庫許可權檢查資料同步作業中配置的資料庫帳號的許可權不足,例如檢查項為dts.precheck.Unexpectederror時檢查失敗。
說明 不同類型資料庫所需的許可權不同,詳情請參見具體的配置案例:DTS資料同步方案概覽
給任務中使用的資料庫帳號授予足夠的許可權,或用許可權充足的資料庫帳號配置任務。
說明 建議通過其他工具,驗證任務中使用的帳號是否具有足夠的許可權。
目標庫許可權檢查
同名對象存在性檢查目標庫存在和待同步對象同名的對象,例如庫名或表名相同。
源庫server_id檢查server-id設定的不是大於等於2的整數。登入源庫,調整server-id的值,詳情請參見源庫server_id檢查
源庫Binlog開啟檢查源庫沒有開啟Binlog功能。登入源庫,開啟Binlog功能,詳情請參見源庫Binlog是否開啟檢查
源庫Binlog模式檢查源庫的Binlog模式沒有設定為ROW。登入源庫執行命令set global binlog_format='ROW';,然後重啟MySQL進程。
約束完整性檢查待同步子表依賴的父表沒有被選擇為同步對象,從而破壞了外鍵約束完整性。
  • 刪除約束完整性檢查失敗的子表的外鍵依賴。
  • 在同步對象中加入相應父表,詳情請參見新增同步對象
  • 從同步對象中移除相應子表,詳情請參見移除同步對象
儲存引擎檢查待同步表的儲存引擎為FEDERATED、MRG_MyISAM或TokuDB。登入源庫,將表的儲存引擎修改為InnoDB。
字元集檢查DTS不支援同步對象的字元集(例如UCS2)。登入源庫,將表的字元集修改為utf8、GBK、latin1或utf8mb4。
複雜拓撲存在性檢查DTS不支援源和目標執行個體組成的拓撲,DTS支援的拓撲及注意事項請參見資料同步拓撲介紹結束或等待衝突的任務完成後再執行資料同步。
MySQL密碼格式檢查源庫使用資料庫密碼格式是否為老版。調整資料庫密碼的格式,詳情請參見old_passwords