DTS数据迁移时目标数据库连接性检查失败,如何处理?
数据库账号或数据库密码不正确
检测方法
在任何一台可以连接目标数据库的设备上,使用数据迁移任务中填入的数据库账号和数据库密码连接目标数据库,验证数据库账号和数据库密码是否正确。
说明:您也可以直接在目标数据库部署的服务器上验证数据库账号和数据库密码是否正确。
修复方法
登录数据传输控制台,修改数据迁移任务,填入正确的数据库账号和数据库密码后重新执行预检查。
目标数据库对来源IP进行了限制
检测方法
您可以直接在目标数据库部署的服务器上,使用数据迁移任务中填入的数据库账号和数据库密码连接目标数据库。如果连接正常,说明目标数据库可能限制了来源IP。
如果目标数据库为MySQL,您可以使用MySQL客户端连接目标数据库后执行以下SQL语句进行检查。检查输出结果中的授权IP地址列表中是否包含DTS的IP地址,关于DTS迁移时所使用IP地址信息,请参见迁移/同步/订阅本地数据库时需添加的IP白名单。
select host,user,authentication_string,password_expired,account_locked from mysql.user WHERE user='[$Username]';
说明:将[$Username]替换为数据迁移任务中填写的数据库账号。
如果目标数据库为SQL Server,那么检查SQL Server的安装服务器上是否设置了防火墙,或者检查目标数据库中是否有Endpoint或Trigger限制了访问来源IP。
如果目标数据库为Oracle,那么检查目标数据库的sqlnet.ora配置文件,检查配置项TCP.VALIDNODE_CHECKING是否为yes。如果为yes,说明目标数据库限制了访问来源IP。
修复方法
1、根据不同类型的目标数据库,选择对应的修复方法进行修复。
如果目标数据库为MySQL,您可以在目标数据库中执行以下SQL语句,为数据迁移使用的数据库账号重新授权。
GRANT ALL PRIVILEGES ON *.* TO '[$Username]'@'%' IDENTIFIED BY '[$Password]' WITH GRANT OPTION;
说明:将[$Username]和[$Password]替换为数据迁移任务中填写的数据库账号和数据库密码。
如果目标数据库为SQL Server,关闭防火墙或禁用trigger。
如果目标数据库为Oracle,修改TCP.VALIDNODE_CHECKING为no,并重启进程。
2、执行了上述修复操作后,登录数据传输控制台,重新执行预检查。
**目标数据库所在网络或服务器设置了防火墙
检测方法**
请根据现场情况,进行以下检查步骤:
如果安装目标数据库的服务器为Windows系统,打开控制面板找到Windows防火墙,查看是否配置了防火墙策略。
如果安装目标数据库的服务器为Linux系统,请执行iptables -L命令,检查服务器是否配置了防火墙策略。
a.登录云防火墙控制台,在左侧导航栏单击访问控制。
b.查看云防火墙是否存在禁止DTS的IP地址段的策略,DTS的IP地址段的信息请参见迁移、同步或订阅本地数据库时需添加的IP白名单。
修复方法
请根据现场情况,选择以下对应的步骤:
a.关闭服务器的防火墙,然后登录数据传输控制台,重新执行预检查。
说明:该方法Windows和Linux系统都适用。
b.将DTS的IP地址段加入至目标实例的白名单中,详细操作请参见设置白名单及安全组。
临时关闭数据库所在的网络防火墙或者将DTS的IP地址段添加到白名单中,以云防火墙为例,您可以删除禁止DTS的IP地址段的策略。
网络互通存在问题
经过上述排查后仍然无法通过目标数据库连接性检查,可能是DTS服务器与目标数据库网络互通存在问题,您可以通过提交工单联系阿里云技术支持进行协助解决。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。