凯发k8国际娱乐官网入口-k8凯发> 数据复制服务 drs> 常见问题> 网络及安全> 如何处理迁移实例和数据库网络连接异常
更新时间:2023-11-30 gmt 08:00

如何处理迁移实例和数据库网络连接异常-凯发k8国际娱乐官网入口

数据迁移前请确保完成网络准备和安全规则设置。如果连接异常,请按照本节方法排查网络配置是否正确。

本节将以mysql到rds for mysql的迁移为示例,从三种迁移场景(跨云数据库实时迁移、本地数据库实时迁移、ecs自建数据库实时迁移)进行说明。

跨云数据库实时迁移

  1. 网络准备。
    源数据库需要开放公网访问。
    • 源数据库的网络设置:

      源数据库mysql实例需要开放外网域名的访问。

      以阿里云云数据库rds mysql迁移到本云云数据库 rds for mysql为例,一般情况下,阿里云rds mysql不提供外网地址,需要通过申请外网地址来允许外部的应用对接,具体的操作及注意事项可以参考源数据库所在云提供的相关指导。

    • 目标数据库的网络设置:

      目标数据库默认与drs迁移实例处在同一个vpc内,网络是互通的,不需要进行任何设置。

  2. 安全规则准备。
    • 源数据库的安全规则设置:

      源数据库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 出口规则

本地数据库实时迁移

  1. 网络准备:
    • 源数据库的网络设置:

      本地mysql数据库迁移至本云云数据库 rds for mysql的场景,一般可以使用vpn网络和公网网络两种方式进行迁移,您可以根据实际情况为本地mysql数据库开放公网访问或建立vpn访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。

    • 目标数据库的网络设置:
      • 若通过vpn访问,请先开通vpn服务,确保源数据库mysql和目标端本云云数据库 rds for mysql的网络互通。
      • 若通过公网网络访问,本云云数据库 rds for mysql实例不需要进行任何设置。
  2. 安全规则准备:
    1. 源数据库的安全规则设置:
      • 若通过公网网络进行迁移,源数据库mysql需要将drs迁移实例的弹性公网ip添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取drs迁移实例的弹性公网ip,具体方法如下:

        drs迁移实例创建成功后,可在“源库及目标库”页面获取drs迁移实例的弹性公网ip。

      • 若通过vpn网络进行迁移,源数据库mysql需要将drs迁移实例的私有ip添加到其网络白名单内,使源数据库与本云的网络互通。drs迁移实例创建成功后,可在“源库及目标库”页面获取drs迁移实例的私有ip。

      以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。

    2. 目标数据库安全规则设置:
      • 目标数据库默认与drs迁移实例处在同一个vpc,网络是互通的,drs可以直接写入数据到目标数据库。
      • 设置目标数据库所在vpc的安全组,确保drs实例ip的出方向到本地数据数据库的ip、监听端口放通。具体设置如下图所示:
        图3 出口规则

ecs自建数据库实时迁移

  1. 网络准备:
    • 源数据库所在的region要和目标端本云云数据库 rds for mysql实例所在的region保持一致。
    • 源数据库可以与目标端本云云数据库 rds for mysql实例在同一个vpc,也可以不在同一个vpc。
      • 当源库和目标库处于同一个vpc时,网络默认是互通的。
      • 当不在同一个vpc的时候,要求源数据库实例和目标端本云云数据库 rds for mysql实例所处的子网处于不同网段,此时需要通过建立对等连接实现网络互通。具体建立vpc对等连接的方法,可参考。
  2. 安全规则准备:
    • 同一vpc场景下,默认网络是连通的,不需要单独设置安全组。
    • 不同vpc场景下,通过建立对等连接就可以实现网络互通,不需要单独设置安全组。

排查iptables设置

以源数据库为本云ecs自建数据库为例,如果在上述的操作后,仍无法连通,此时需要额外排查iptables设置,因为hostguard服务在drs发起频繁连接请求失败时,会将请求ip加入黑名单中。
  1. 登录弹性云服务器。
  2. 执行以下命令,排查是否有deny相关的项目包含drs实例的ip,一般项目名称为in_hids_mysqld_deny_drop 。

    iptables --list

  3. 如果存在,执行以下命令,查询iptables入方向规则列表,获取具体规则编号(line-numbers)。

    iptables -l input --line-numbers

  4. 执行以下命令,删除drs实例的ip相关的入方向规则(注意:必须从后往前删,不然line-numbers会更新,需要重新查询)。

    iptables -d 规则项目名 具体规则编号

  5. 删除相关iptables规则后重新进行测试连接即可。

相关文档

更多关于drs源数据库部署在不同位置的网络设置说明,可参考这里

分享:

more

网站地图