目標數(shù)據(jù)庫連接性檢查
為保障數(shù)據(jù)遷移任務的順利執(zhí)行,在預檢查階段檢查DTS服務器是否能夠連通要遷移的目標數(shù)據(jù)庫。本文將介紹目標數(shù)據(jù)庫連接性檢查失敗可能的原因及修復方法。
當目標數(shù)據(jù)庫連接性預檢查失敗時,可能是以下幾種原因。
數(shù)據(jù)庫賬號或數(shù)據(jù)庫密碼不正確
檢測方法:
在任何一臺可以連接目標數(shù)據(jù)庫的設備上,使用數(shù)據(jù)遷移任務中填入的數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼來連接目標數(shù)據(jù)庫,驗證數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼是否正確。
您也可以直接在目標數(shù)據(jù)庫部署的服務器上驗證數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼是否正確。
修復方法:
登錄數(shù)據(jù)傳輸控制臺,修改數(shù)據(jù)遷移任務,填入正確的數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼后重新執(zhí)行預檢查。
若目標端為Tair/Redis,請根據(jù)選取的賬號(需要具備讀寫權(quán)限)填寫密碼:
默認賬號(即以實例ID命名的賬號):直接填寫密碼即可。
新創(chuàng)建的賬號:密碼格式為
<自定義賬號>:<密碼>
,例如:Redis實例自定義的用戶名為admin,密碼為Rp829dlwa,則此處填入的數(shù)據(jù)庫密碼為admin:Rp829dlwa。
目標數(shù)據(jù)庫對來源IP進行了限制
檢測方法:
您可以直接在目標數(shù)據(jù)庫部署的服務器上,使用數(shù)據(jù)遷移任務中填入的數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼來連接目標數(shù)據(jù)庫。如果連接正常,說明可能目標數(shù)據(jù)庫可能限制了來源IP。
如果目標數(shù)據(jù)庫為MySQL,您可以使用MySQL客戶端連接目標數(shù)據(jù)庫后執(zhí)行下述命令進行檢查。
SELECT HOST FROM mysql.user WHERE user='username',password='password';
說明將username和password替換為數(shù)據(jù)遷移任務中填寫的數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼。
檢查輸出結(jié)果中的授權(quán)IP地址列表中是否包含DTS的IP地址,關于DTS遷移時所使用IP地址信息,請參見遷移、同步或訂閱本地數(shù)據(jù)庫時需添加的IP白名單。
如果目標數(shù)據(jù)庫為SQL Server,那么檢查SQL Server安裝服務器上是否設置了防火墻,或者檢查目標數(shù)據(jù)庫中是否有endpoint或trigger限制了訪問來源IP。
如果目標數(shù)據(jù)庫為Oracle,那么檢查目標數(shù)據(jù)庫的配置文件sqlnet.ora,確認配置項
TCP.VALIDNODE_CHECKING
是否為yes
。如果為yes
,說明目標數(shù)據(jù)庫限制了訪問來源IP。
修復方法:
如果目標數(shù)據(jù)庫為MySQL,您可以在目標數(shù)據(jù)庫中執(zhí)行以下命令為數(shù)據(jù)遷移使用的數(shù)據(jù)庫賬號重新授權(quán)。
GRANT ALL ON *.* TO 'username'@''%' IDENTIFIED BY 'password';
說明將username和password替換為數(shù)據(jù)遷移任務中填寫的數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼。
如果目標數(shù)據(jù)庫為SQL Server,關閉掉防火墻或禁用掉trigger。
如果目標數(shù)據(jù)庫為Oracle,修改
TCP.VALIDNODE_CHECKING
為no
并重啟進程。
執(zhí)行了上述修復操作后,登錄數(shù)據(jù)傳輸控制臺,重新執(zhí)行預檢查。
目標數(shù)據(jù)庫服務器設置了防火墻
檢測方法:
如果安裝目標數(shù)據(jù)庫的服務器為Windows,那么在控制面板中查找到Windows防火墻,查看是否配置了防火墻。
如果安裝目標數(shù)據(jù)庫的服務器為Linux,那么在Shell中使用
iptables -L
命令檢查服務器是否配置了防火墻。
修復方法:
關閉相關防火墻限制后,登錄數(shù)據(jù)傳輸控制臺,重新執(zhí)行預檢查。
網(wǎng)絡互通問題
經(jīng)過上述排查后仍然無法通過目標數(shù)據(jù)庫連接性檢查,可能是DTS服務器與目標數(shù)據(jù)庫網(wǎng)絡互通問題。