文档首页/ 云数据迁移 CDM/ 最佳实践/ 使用教程/ MySQL整库迁移到RDS服务
更新时间:2024-06-06 GMT+08:00

MySQL整库迁移到RDS服务

操作场景

本章节介绍使用CDM整库迁移功能,将本地MySQL数据库迁移到云服务RDS中。

当前CDM支持将本地MySQL数据库,整库迁移到RDS上的MySQL、PostgreSQL或者Microsoft SQL Server任意一种数据库中。这里以整库迁移到RDS上的MySQL数据库为例进行介绍,使用流程如下:

  1. 创建CDM集群并绑定EIP
  2. 创建MySQL连接
  3. 创建RDS连接
  4. 创建整库迁移作业

前提条件

  • 用户拥有EIP配额。
  • 用户已购买RDS数据库实例,该实例的数据库引擎为MySQL。
  • 本地MySQL数据库可通过公网访问。如果MySQL服务器是在本地数据中心或第三方云上,需要确保MySQL可以通过公网IP访问,或者是已经建立好了企业内部数据中心到云服务平台的VPN通道或专线。
  • 已获取本地MySQL数据库和RDS上MySQL数据库的IP地址、数据库名称、用户名和密码。
  • 已在CDM集群的作业管理 > 连接管理 > 驱动管理页面,上传了MySQL数据库驱动。

创建CDM集群并绑定EIP

  1. 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。

    关键配置如下:
    • CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。
    • CDM集群的VPC,选择和RDS的MySQL数据库实例所在的VPC一致,且推荐子网、安全组也与RDS上的MySQL一致。
    • 如果安全控制原因不能使用相同子网和安全组,则可以修改安全组规则,允许CDM访问RDS。

  2. CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问本地MySQL数据库。

    图1 集群列表

    如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。

创建MySQL连接

  1. 在CDM集群管理界面,单击集群后的“作业管理”,选择连接管理 > 新建连接,进入连接器类型的选择界面,如图2所示。

    图2 选择连接器类型

  2. 选择“云数据库 MySQL”后单击“下一步”,配置云数据库 MySQL连接的参数。

    单击“显示高级属性”可查看更多可选参数,具体请参见配置云数据库MySQL/MySQL数据库连接。这里保持默认,必填参数如表1所示。

    表1 MySQL连接参数

    参数名

    说明

    取值样例

    名称

    输入便于记忆和区分的连接名称。

    mysqllink

    数据库服务器

    MySQL数据库的IP地址或域名。

    -

    端口

    MySQL数据库的端口。

    3306

    数据库名称

    MySQL数据库的名称。

    sqoop

    用户名

    拥有MySQL数据库的读、写和删除权限的用户。

    admin

    密码

    用户的密码。

    -

    使用本地API

    使用数据库本地API加速(系统会尝试启用MySQL数据库的local_infile系统变量)。

    使用Agent

    Agent功能待下线,无需配置。

    -

    local_infile字符集

    MySQL通过local_infile导入数据时,可配置编码格式。

    utf8

    驱动版本

    CDM连接关系数据库前,需要先上传所需关系数据库的JDK8版本.jar格式驱动。MySQL的驱动请从https://downloads.mysql.com/archives/c-j/选择5.1.48版本下载,从中获取mysql-connector-java-5.1.48.jar,然后进行上传。

    -

  3. 单击“保存”回到连接管理界面。

    如果保存时出错,一般是由于MySQL数据库的安全设置问题,需要设置允许CDM集群的EIP访问MySQL数据库。

创建RDS连接

  1. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择连接管理 > 新建连接,进入选择连接器类型的界面,如图3所示。

    图3 选择连接器类型

  2. 连接器类型选择“云数据库 MySQL”后单击“下一步”,配置连接参数:

    • 名称:用户自定义连接名称,例如:“rds_link”
    • 数据库服务器、端口:配置为RDS上MySQL数据库的连接地址、端口。
    • 数据库名称:配置为RDS上MySQL数据库的名称。
    • 用户名、密码:登录数据库的用户和密码。
    • 创建RDS连接时,“使用本地API”设置为“是”时,可以使用MySQL的LOAD DATA功能加快数据导入,提高导入数据到MySQL的性能。
    • 由于RDS上的MySQL默认没有开启LOAD DATA功能,所以同时需要修改MySQL实例的参数组,将“local_infile”设置为“ON”,开启该功能。
    • 如果“local_infile”参数组不可编辑,则说明是默认参数组,需要先创建一个新的参数组,再修改该参数值,并应用到RDS的MySQL实例上。

  3. 单击“保存”回到连接管理界面。

创建整库迁移作业

  1. 两个连接创建完成后,选择整库迁移 > 新建作业,开始创建迁移任务,如图4所示。

    图4 创建整库迁移作业
    • 作业名称:用户自定义整库迁移的任务名称。
    • 源端作业配置
      • 源连接名称:选择创建MySQL连接中的“mysqllink”
      • 模式或表空间:选择从本地MySQL的哪个数据库导出数据。
    • 目的端作业配置
      • 目的连接名称:选择创建RDS连接中的“rds_link”
      • 模式或表空间:选择将数据导入到RDS的哪个数据库。
      • 自动创表:选择“不存在时创建”,当RDS数据库中没有本地MySQL数据库里的表时,CDM会自动在RDS数据库中创建那些表。
      • 导入开始前:选择“是”,当RDS数据库中存在与本地MySQL数据库重名的表时,CDM会清除RDS中重名表里的数据。
      • 约束冲突处理:选择“insert into”,当迁移数据出现唯一约束冲突时的处理方式。
      • 高级属性里的可选参数保持默认即可。

  2. 单击“下一步”,进入选择待迁移表的界面,您可以选择全部或者部分表进行迁移。
  3. 单击“保存并运行”,CDM会立即开始执行整库迁移任务。

    作业任务启动后,每个待迁移的表都会生成一个子任务,单击整库迁移的作业名称,可查看子任务列表。

  4. 单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。

    整库迁移的作业没有日志,子作业才有。在子作业的历史记录界面单击“日志”,可查看作业的日志信息。