文档首页 > > 用户指南> 迁移场景介绍> 数据库迁移> MySQL数据库迁移到云上DDM服务

MySQL数据库迁移到云上DDM服务

分享
更新时间:2020/10/23 GMT+08:00

分布式数据库中间件(Distributed Database Middleware,以下简称DDM)是解决数据库容量、性能瓶颈和分布式扩展问题的中间件服务,提供分库分表、读写分离、弹性扩容等能力,应对海量数据的高并发访问场景,有效提升数据库读写性能。

下面介绍如何使用CDM将本地MySQL的一张表迁移到DDM,将数据进行分布式存储。

操作场景

  1. 例如MySQL类型的本地数据库名称为“sqoop”,sqoop上有一张表trip,保存了自行车骑行记录,里面有起始时间、结束时间,起始站点、结束站点、骑手ID等信息,trip表字段定义如表1所示。
    表1 trip表字段

    字段名

    字段类型

    tripid

    int

    duration

    int

    startdate

    timestamp

    startstation

    varchar(64)

    startterminal

    int

    enddata

    timestamp

    endstation

    varchar(64)

    endterminal

    int

    bike

    int

    subscriberType

    varchar(32)

    zipcode

    varchar(10)

  2. 已购买云服务DDM实例并创建逻辑库,具体操作请参见《分布式数据库中间件用户指南》

    例如这里购买的DDM实例如图1所示,DDM上创建的逻辑库名称为“db_cdm”

    DDM目前支持多种不同规格的实例。核数越多,并行计算能力越强;内存越大,支持更复杂更大批量的数据查询与处理。

    您可以根据业务规划选择合适的规格,在满足业务需要的同时降低使用成本。

    图1 DDM实例基本信息

现在使用CDM将sqoop数据库上的trip表,迁移到DDM的逻辑库db_cdm中,流程如下:

  1. 在DDM逻辑库上创建分片表
  2. 购买CDM集群并绑定EIP
  3. 创建MySQL连接
  4. 创建DDM连接
  5. 创建迁移作业

前提条件

  • 拥有公网弹性IP,本地MySQL数据库能够被该公网IP访问。
  • 已获取连接sqoop数据库的IP地址、端口、用户名、密码,且该用户拥有数据库的读写权限。
  • 已获取DDM逻辑库db_cdm的用户名、密码,且该用户拥有逻辑库的读写权限。
  • DDM实例已关联同一VPC中的RDS实例,具体操作请参见《分布式数据库中间件用户指南》

在DDM逻辑库上创建分片表

在DDM的逻辑库db_cdm上创建一张名为trip_ddm的分片表,字段名和字段类型与本地MySQL的trip表一致。建表涉及“逻辑表类型”“拆分算法”“拆分键”“建表SQL”等参数配置,建表SQL如下:
create table trip_ddm( tripid int, duration int, startdate timestamp, startstation varchar(64), startterminal int, enddata timestamp, endstation varchar(64), endterminal int, bike int, subscriberType varchar(32), zipcode varchar(10) )

购买CDM集群并绑定EIP

  1. 登录CDM管理控制台,单击“购买云数据迁移服务”,进入创建CDM集群的界面,参数配置如表2所示。

    表2 配置CDM集群参数

    参数名称

    样例

    说明

    当前区域

    华北-北京一

    服务所在的区域,这里需要选择与DDM实例的所在区域一致。

    可用区

    可用区1

    不同可用分区之间的内网互通,任选一个即可。

    集群名称

    cdm131

    自定义CDM集群名称。

    版本

    1.8.0

    保持默认即可。

    实例类型

    cdm.medium

    目前CDM支持以下规格供用户选择:

    • cdm.large:8核CPU、16G内存的虚拟机,最大带宽/基准带宽为3/0.8Gbps,能够并发执行的作业个数为20,适合单张表规模≥1000万条的场景。
    • cdm.xlarge:16核CPU、32G内存的虚拟机,最大带宽/基准带宽为10/4Gbps,能够并发执行的作业个数为100,适合使用10GE高速带宽进行TB以上的数据量迁移。
    • cdm.4xlarge:64核CPU、128G内存的虚拟机,最大带宽/基准带宽为30/30Gbps,能够并发执行的作业个数为300。

    这里选择cdm.medium即可,适合大部分迁移场景。

    虚拟私有云

    myvpc

    CDM集群所属VPC、子网、安全组,这里选择与DDM实例所在的VPC、子网、安全组一致,DDM实例的网络信息请见图1

    CDM通过内网访问DDM。

    子网

    subnet-168-1(192.168.1.0/24)

    安全组

    Sys-default

    自动关机

    这里的配置保持默认即可。

    定时开机

    定时关机

    消息通知

  2. CDM集群创建成功后,在集群管理界面为CDM集群绑定EIP,CDM通过EIP访问本地MySQL数据库,如图2所示。

    图2 绑定EIP

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

创建MySQL连接

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

    图3 选择连接器类型

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

    图4 创建MySQL连接

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

    表3 MySQL连接参数

    参数名

    说明

    取值样例

    名称

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

    mysqllink

    数据库服务器

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

    192.168.0.1

    端口

    MySQL数据库的端口。

    3306

    数据库名称

    MySQL数据库的名称。

    sqoop

    用户名

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

    admin

    密码

    用户的密码。

    -

    使用Agent

    是否选择通过Agent从源端提取数据。

    Agent

    单击“选择”,选择连接Agent中已创建的Agent。

    -

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

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

创建DDM连接

  1. 在连接管理界面,单击“新建连接”来创建DDM连接,连接器类型选择关系型数据库下的“分布式数据库中间件(DDM)”
  2. 单击“下一步”配置DDM连接参数,如图5所示。

    图5 创建DDM连接
    • 数据库服务器、端口:配置为DDM实例的连接地址中的一个,DDM实例的连接地址见图1
    • 数据库名称:配置为DDM实例的逻辑库名称,例如这里是“db_cdm”
    • 用户名、密码:配置为DDM账号,要求该账号有权限读写逻辑库db_cdm。
    • 使用Agent和使用本地API设置为否。

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

创建迁移作业

  1. 选择表/文件迁移 > 新建作业,开始创建数据迁移任务,如图6所示。

    图6 创建MySQL到DDM的迁移任务
    • 作业名称:用户自定义。
    • 源端作业配置:
      • 源连接名称:这里选择创建MySQL连接中的“mysqllink”
      • 模式或表空间:选择trip表所在的数据库“sqoop”
      • 表名:选择trip表。
    • 目的端作业配置:
      • 目的连接名称:这里选择创建DDM连接中的“ddmlink”
      • 模式或表空间:选择DDM实例的逻辑库“db_cdm”
      • 表名:选择DDM实例的逻辑表“trip_ddm”,即在DDM逻辑库上创建分片表中的分片表。
      • 导入前清空数据:这里保持默认即可。

  2. 单击“下一步”,进入字段映射界面,如图7所示。

    因为sqoop中的trip表字段与DDM中的trip_ddm表字段完全一样,这里CDM会自动映射同名字段,用户只需检查字段映射关系和时间格式是否正确即可。

    图7 DDM字段映射
    • 如果字段映射关系不正确,用户单击字段所在行选中后,按住鼠标左键可拖拽字段调整映射关系。
    • 如果需要转换源端字段内容,可在该步骤配置,具体操作请参见字段转换,这里选择不进行字段转换。

  3. 单击“下一步”配置任务参数,一般情况下全部保持默认即可。

    该步骤用户可以配置如下可选功能:
    • 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”
    • 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。
    • 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”
    • 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”
    • 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。
    • 作业运行完是否删除:这里保持默认值“不删除”

  4. 单击“保存并运行”,回到作业管理界面,可查看作业执行进度和结果。

    图8 作业执行结果

  5. 作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据,以及执行日志。

    图9 查询迁移作业记录

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问