检查详情
源数据库和目标数据库需要能正常连通,如果未连通,会报“连接源实例失败”。
问题原因
源数据库所在网络或服务器设置了安全组或防火墙。
源数据库对来源 IP 地址进行了限制。
网络端口未放通。
数据库帐号或密码不正确。
源数据库所在网络或服务器设置了安全组或者防火墙
检测方法
安全组功能与防火墙功能类似,安全组是针对云上数据库的网络安全设置。
请根据现场情况,进行以下检查步骤:
查看源数据库所在的服务器是否配置了防火墙策略。
Windows 系统:打开控制面板找到 Windows 防火墙,查看是否配置了防火墙策略。
Linux 系统:请执行 iptables -L
命令,检查服务器是否配置了防火墙策略。
查看数据库配置的安全组是否限制了 DTS 的 IP 地址段。
1.1 登录 对应的数据库,在实例列表,单击实例 ID,进入实例管理页面。 1.2 在实例管理页面,选择安全组页,查看是否存在禁止 DTS 的 SNAT IP 地址段的策略。
修复方法
请根据现场情况,选择以下对应的步骤:
服务器开启了防火墙。
1.1 关闭服务器的防火墙,然后登录重新执行校验任务。
说明:
该方法 Windows 和 Linux 系统都适用。
1.2 将 DTS 的 IP 地址段“策略”配置为允许。
安全组的配置限制了DTS的SNAT IP地址段。
1.1 在安全组页面,单击对应的安全组 ID。
2. 修改 DTS 的 IP 地址段的策略,配置为允许。
源数据库对来源 IP 地址进行了限制
检测方法
MySQL 检测方法
在源数据库部署的服务器上,使用数据迁移任务中填入的数据库帐号和数据库密码连接源数据库。如果连接正常,说明源数据库可能限制了来源 IP 地址。
如果是自建数据库,需要在数据库上确认 bind-address 的配置,如果不是0.0.0.0,则 IP 受限。
如果源数据库为 MySQL,您可以使用 MySQL 客户端连接源数据库,执行以下 SQL 语句进行检查,检查输出结果中的授权 IP 地址列表中是否包含 DTS 的 SNAT IP 地址。
在给用户进行数据库的授权时,授权的 IP 中需要包含 SNAT IP,否则会发生 IP 受限问题。示例如下:
root@10.0.0.0/8 //授权用户通过指定10.0.0.0/8访问,其他 IP 会受限(错误配置)
root@% //授权用户访问所有的 IP,其中需要包含 SNAT IP(正确配置)
您可以通过如下方法验证。
select host,user,authentication_string,password_expired,account_locked from
mysql.user WHERE user='[\\$Username]'; //[\\$Username]为数据迁移任务中填写的数据库帐号
SQL Server 检测方法
检查源数据库中是否有 Endpoint 或 Trigger 限制了访问来源 IP 地址。
PostgreSQL 检测方法
如果源端数据库为其他云数据库时,请首先检查源端云数据库实例的安全访问策略是否有所限制。请根据不同云厂商的限制方法来进行检查。
如果源端数据库为自建的 PostgreSQL 数据库,请进入 $PGDATA 目录下的 data 目录,找到 pg_hba.conf
文件。查看此文件中是否存在 deny 策略,或者仅允许部分网络端的 IP 地址访问。
local replication all trust
host replication all 127.x.x.1/32 trust
host replication all ::1/128 trust
host all all 0.0.0.0/0 md5
host all all 172.x.x.0/20 md5
MongoDB 检测方法
如果是自建数据库,需要在数据库上确认 bind-address 的配置,如果不是0.0.0.0,则 IP 受限。
修复方法
1. 源数据库为 MySQL,请在源数据库中执行以下 SQL 语句,重新给数据迁移使用的用户授权。
mysql> grant all privileges on . to '[\\$UserName]'@'%'; //[\\$Username] 为数据迁移任务中填写的数据库帐号
mysql> flush privileges;
2. 对于自建数据库,如果 bind-address 配置异常,请参考如下指导修改。
2.1. 在 /etc/my.cnf
文件中增加如下内容。
说明:
my.cnf
配置文件的默认路径为 /etc/my.cnf
,现场以实际情况为准。
2.2. 重启数据库。
2.3. 验证配置是否生效。
3. 重新执行校验任务。
SQL Server 修复方法
关闭防火墙或禁用 trigger。
PostgreSQL 修复方法
1. 请在pg_hba.conf
文件中加入允许 DTS 网络段的访问策略。或者在迁移过程中临时放开所有网段的访问策略。如在此文件中添加一行:
host all all 0.0.0.0/0 md5
2. 修改完成后,可重启数据库实例,让配置生效:
pg_ctl -D $PGDATA restart
3. 重新执行校验任务。
MongoDB 修复方法
参考 MySQL 中的方法配置 bind-address。 网络端口未放通
检测方法
常见数据库默认端口如下,需要确认这些端口已放通。如果用户修改了默认端口,请按实际情况修改放通的端口。
MySQL:3306
SQL Server:1433
PostgreSQL:5432
MongoDB:27017
Redis:6379
修复方法
放通相应的数据库端口。
如果源数据库为 SQL Server,还需要同时放通文件共享服务端口445。
数据库帐号或密码不正确
检测方法
登录源数据库,验证帐号和密码是否正确。
修复方法
在 DTS 控制台 修改数据迁移任务,输入正确的数据库帐号和密码后重新执行校验任务。
本页内容是否解决了您的问题?