全部产品
阿里云办公

使用VPN网关的自建数据库同RDS实例间的数据同步

更新时间:2018-05-09 14:33:18

数据传输服务DTS支持在使用VPN网关的本地自建数据库与RDS实例、ECS自建数据库之间进行数据同步。本小节以MySQL为例,介绍使用VPN网关的本地自建数据库同RDS实例间数据同步任务配置流程。
如果要支持使用VPN网关的本地自建数据库同ECS上的自建数据库间的数据同步,只要修改目标数据源的连接信息,其他配置流程不变。
如果要配置RDS、ECS上的自建数据库到使用VPN网关的本地自建数据库的数据同步,只要调换下源跟目标数据源的连接信息,其他配置流程不变。

同步任务配置前的前置条件

在配置同步任务之前,您需要做如下操作:

  1. 确保云上VPC ECS可以通过VPN正常访问您本地IDC的自建数据库。
  2. 修改阿里云VPC的IPsec连接的配置信息,在本端网段参数中追加DTS地址段,修改VPN连接版本为ikev2。

    目的VPN网关配置

  3. 修改本地网关设备加载VPN配置

    找到上一步配置的IPsec连接,单击 下载配置。按照本地网络设备的要求,根据修改后的VPN配置,调整本地网关设备的相关配置。配置详情参考 本地网关配置

    VPN本地设备配置项

说明:下载配置中的RemotSubnet和LocalSubnet与创建IPsec连接时的本端网段和对端网段正好是相反的。因为从阿里云VPN网关的角度看,对端是用户IDC的网段,本端是VPC网段;而从本地网关设备的角度看,LocalSubnet就是指本地IDC的网段,RemotSubnet则是指阿里云VPC的网段。

上述操作中使用的DTS地址段如下表所示。。

地域 DTS地址段
杭州 100.104.52.0/24
北京 100.104.183.0/24
青岛 100.104.72.0/24
上海 100.104.205.0/24
深圳 100.104.205.0/24
上海金融云 100.104.175.0/24
深圳金融云 100.104.72.0/24
美西 100.104.175.0/24
香港 100.104.233.0/24
新加坡 100.104.188.0/24
马来西亚 100.104.5.0/24

同步任务配置

本小节以使用VPN网关的本地自建MySQL到RDS For MySQL的数据同步为例,详细介绍具体的任务配置步骤。

  1. 购买实例。

    进入数据传输 DTS 控制台,单击右上角的创建同步作业,购买同步实例。
    同步实例目前支持包年包月及按量付费两种付费模式,可以根据需要选择不同的付费模式。购买同步实例需要配置的主要信息如下:

    • 源地域

      源地域选择专线接入阿里云的接入点所在的区域。

    • 源实例
      源实例为源实例类型,目前只支持MySQL。

    • 目标地域

      目标地域为同步链路目标实例所在地域。

    • 目标实例

      目标实例为目标实例类型,目前支持MySQL、MaxCompute、Datahub及分析型数据库。这里选择MySQL。

    • 实例规格

      实例规格影响了链路的同步性能,实例规格跟性能之间的对应关系详见 数据同步规格说明

  2. 配置数据源连接信息。

    当购买完同步实例,返回数据传输控制台,点击新购链路右侧的配置同步作业 开始链路配置。

    在这个步骤中,主要配置同步实例名称、同步源实例及目标实例连接信息。其中:

    • 任务名称

      默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。

    • 源实例连接信息

      • 实例类型:DTS暂未提供独立的VPN网关选项,此处直接选择 通过专线接入阿里云的本地 DB
      • 实例地区:选择VPN网关所属的阿里云区域,例如接入阿里云的北京,那么选择 华北2 即可
      • 对端专有网络:选择VPN网关所属的阿里云VPC的VPC ID
      • 主机名或IP地址:配置本地 MySQL 数据库访问地址,这个地址为本地局域网访问地址
      • 端口:本地 MySQL 实例监听端口
      • 数据库账号:本地 MySQL 实例访问账号
      • 数据库密码:上面指定的 MySQL 访问账号对应的密码

      连接信息

    • 目标RDS实例连接信息

      • 实例类型:选择 RDS 实例
      • RDS 实例 ID: 配置迁移的目标 RDS for MySQL的实例 ID。 DTS 支持经典网络和 VPC 网络的 RDS for MySQL 实例
      • 数据库账号:RDS for MySQL 实例的连接账号
      • 数据库密码:上面指定的数据库账号对应的密码
  3. 授权RDS实例白名单。

    这个步骤,主要是将数据传输服务器 IP 添加到同步 RDS 实例的白名单中。避免因为 RDS 设置了白名单,数据传输服务器连接不上 RDS 导致同步作业创建失败。

    为了保证同步作业的稳定性,在同步过程中,请勿将这些服务器 IP 从 RDS 实例的白名单中删除。

    当白名单授权后,点击下一步,进入同步账号创建。

  4. 创建目标库上的同步账号。

    这个步骤主要是在目标 RDS 实例上创建一个同步账号,账号名字为:dtssyncwriter,在同步过程中,不能删除这个账号,否则会导致同步链路中断。

  5. 选择同步对象。

    当创建完目标 RDS 实例的同步账号后,即进入同步对象的选择步骤。实时同步的同步对象的选择粒度可以支持到表级别,即用户可以选择同步某些库或是同步某几张表。

    如果选择的同步对象为整个库,那么这个库中所有对象的结构变更操作(例如 create table,drop view 等),都会同步到目标库。

    如果选择的某张表,那么只有这个表的 drop/alter/truncate/rename table,create/drop index 的操作会同步到目标库。

    同步对象选择

    当配置完同步对象后,进入同步初始化配置。

  6. 同步初始化配置。

    同步初始化配置,初始化是同步链路启动的第一步,它会将源实例中已经存在同步对象的结构及数据在目标实例中初始化,作为后续增量同步数据的基线数据。

    同步初始化类型细分为:结构初始化,全量数据初始化。默认情况下,需要选择结构初始化及全量初始化。

    同步初始化配置

  7. 预检查并启动同步作业。

    当上面所有选项配置完成后,即进入启动之前的预检查。

    当同步作业配置完成后,数据传输服务会进行限制预检查,当预检查通过后,可以点击 启动 按钮,启动同步作业。

    当同步作业启动之后,即进入同步作业列表。此时刚启动的作业处于同步初始化状态。初始化的时间长度依赖于源实例中同步对象的数据量大小。当初始化完成后同步链路即进入同步中的状态,此时源跟目标实例的同步链路才真正建立完成。

    至此,完成使用VPN网关的本地数据库同阿里云RDS实例之间数据同步任务的配置。