預檢查專案 | 失敗可能的原因 | 修複方法 |
源庫串連性檢查 目標庫串連性檢查 | 資料庫帳號或密碼不正確。 | 擷取到正確的密碼,然後修改同步作業中配置的源或目標庫的資料庫密碼,詳情請參見修改資料庫密碼。 |
源或目標庫對來源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時檢查失敗。 | 給任務中使用的資料庫帳號授予足夠的許可權,或用許可權充足的資料庫帳號配置任務。說明 建議通過其他工具,驗證任務中使用的帳號是否具有足夠的許可權。 |
目標庫許可權檢查 |
同名對象存在性檢查 | 目標庫存在和待同步對象同名的對象,例如庫名或表名相同。 | |
源庫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。 |