如何处理迁移实例和数据库网络连接异常-凯发k8国际娱乐官网入口
数据迁移前请确保完成网络准备和安全规则设置。如果连接异常,请按照本节方法排查网络配置是否正确。
本节将以mysql到rds for mysql的迁移为示例,从三种迁移场景(跨云数据库实时迁移、本地数据库实时迁移、ecs自建数据库实时迁移)进行说明。
跨云数据库实时迁移
- 网络准备。
源数据库需要开放公网访问。
- 源数据库的网络设置:
源数据库mysql实例需要开放外网域名的访问。
以阿里云云数据库rds mysql迁移到本云云数据库 rds for mysql为例,一般情况下,阿里云rds mysql不提供外网地址,需要通过申请外网地址来允许外部的应用对接,具体的操作及注意事项可以参考源数据库所在云提供的相关指导。
- 目标数据库的网络设置:
目标数据库默认与drs迁移实例处在同一个vpc内,网络是互通的,不需要进行任何设置。
- 源数据库的网络设置:
- 安全规则准备。
- 源数据库的安全规则设置:
源数据库mysql实例需要将drs迁移实例的弹性公网ip添加到其网络白名单中,确保源数据库mysql实例可以与上述弹性公网ip连通。
在设置网络白名单之前,需要先获取drs迁移实例的弹性公网ip,具体方法如下:drs迁移实例创建成功后,可在“源库及目标库”页面获取drs迁移实例的弹性公网ip。
图1 实例ip
以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库mysql实例的网络白名单设置为0.0.0.0/0,代表允许任何ip地址访问该实例。
上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。
- 目标数据库安全规则设置:
- 目标数据库默认与drs迁移实例处在同一个vpc,网络是互通的,drs可以直接写入数据到目标数据库。
- 设置目标数据库所在vpc的安全组,确保drs实例ip的出方向到本地数据数据库的ip、监听端口放通。具体设置如下图所示:
图2 出口规则
- 源数据库的安全规则设置:
本地数据库实时迁移
- 网络准备:
- 源数据库的网络设置:
本地mysql数据库迁移至本云云数据库 rds for mysql的场景,一般可以使用vpn网络和公网网络两种方式进行迁移,您可以根据实际情况为本地mysql数据库开放公网访问或建立vpn访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。
- 目标数据库的网络设置:
- 若通过vpn访问,请先开通vpn服务,确保源数据库mysql和目标端本云云数据库 rds for mysql的网络互通。
- 若通过公网网络访问,本云云数据库 rds for mysql实例不需要进行任何设置。
- 源数据库的网络设置:
- 安全规则准备:
- 源数据库的安全规则设置:
- 若通过公网网络进行迁移,源数据库mysql需要将drs迁移实例的弹性公网ip添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取drs迁移实例的弹性公网ip,具体方法如下:
drs迁移实例创建成功后,可在“源库及目标库”页面获取drs迁移实例的弹性公网ip。
- 若通过vpn网络进行迁移,源数据库mysql需要将drs迁移实例的私有ip添加到其网络白名单内,使源数据库与本云的网络互通。drs迁移实例创建成功后,可在“源库及目标库”页面获取drs迁移实例的私有ip。
以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。
- 若通过公网网络进行迁移,源数据库mysql需要将drs迁移实例的弹性公网ip添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取drs迁移实例的弹性公网ip,具体方法如下:
- 目标数据库安全规则设置:
- 目标数据库默认与drs迁移实例处在同一个vpc,网络是互通的,drs可以直接写入数据到目标数据库。
- 设置目标数据库所在vpc的安全组,确保drs实例ip的出方向到本地数据数据库的ip、监听端口放通。具体设置如下图所示:
图3 出口规则
- 源数据库的安全规则设置:
ecs自建数据库实时迁移
- 网络准备:
- 源数据库所在的region要和目标端本云云数据库 rds for mysql实例所在的region保持一致。
- 源数据库可以与目标端本云云数据库 rds for mysql实例在同一个vpc,也可以不在同一个vpc。
- 当源库和目标库处于同一个vpc时,网络默认是互通的。
- 当不在同一个vpc的时候,要求源数据库实例和目标端本云云数据库 rds for mysql实例所处的子网处于不同网段,此时需要通过建立对等连接实现网络互通。具体建立vpc对等连接的方法,可参考。
- 安全规则准备:
- 同一vpc场景下,默认网络是连通的,不需要单独设置安全组。
- 不同vpc场景下,通过建立对等连接就可以实现网络互通,不需要单独设置安全组。
排查iptables设置
- 登录弹性云服务器。
- 执行以下命令,排查是否有deny相关的项目包含drs实例的ip,一般项目名称为in_hids_mysqld_deny_drop 。
iptables --list
- 如果存在,执行以下命令,查询iptables入方向规则列表,获取具体规则编号(line-numbers)。
iptables -l input --line-numbers
- 执行以下命令,删除drs实例的ip相关的入方向规则(注意:必须从后往前删,不然line-numbers会更新,需要重新查询)。
iptables -d 规则项目名 具体规则编号
- 删除相关iptables规则后重新进行测试连接即可。
相关文档
更多关于drs源数据库部署在不同位置的网络设置说明,可参考这里。
- 迁移过程中会使用哪些数据库账户
- 如何通过设置vpc安全组,实现drs任务网络互通
- 如何处理迁移实例和数据库网络连接异常
- 不同vpc场景下,如何实现源库和目标库的网络互通
- drs公网网络的eip带宽是多少
- drs支持跨账号云数据库迁移吗
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨
more