DTS在執行資料同步作業之前,會對源庫和目標執行預檢查,本文介紹各類檢查項失敗可能的原因及修複方法。
預檢查專案 | 失敗可能的原因 | 修複方法 |
源庫串連性檢查 目標庫串連性檢查 | 資料庫帳號或密碼不正確。 | 擷取到正確的密碼,然後修改同步作業中配置的源或目標庫的資料庫密碼,詳情請參見修改資料庫密碼。 |
源或目標庫對來源IP進行了限制。 |
| |
源或目標庫所屬的伺服器設定了防火牆。 | 關閉相關防火牆限制。 | |
源庫版本檢查 | DTS不支援該版本的資料庫,DTS支援資料庫版本資訊請參見同步方案概覽。 | 升級或降級資料庫版本。 |
資料庫存在性檢查 | 當待同步的資料庫在目標執行個體中不存在,由DTS自動建立時,可能由於下述原因導致建立失敗:
| 手動在目標執行個體中建立滿足要求的資料庫或調整資料庫帳號。 |
源庫許可權檢查 | 資料同步作業中配置的資料庫帳號的許可權不足,例如檢查項為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。 |