华为云计算 云知识 ECS自建数据库的数据迁移到华为云数据库GaussDB for MySQL_数据实时同步
ECS自建数据库的数据迁移到华为云数据库GaussDB for MySQL_数据实时同步

数据复制服务 (Data Replication Service,简称DRS)支持将ECS自建MySQL 数据库 数据迁移 到华为 云数据库 GaussDB(for MySQL)。通过DRS提供的实时 迁移 任务,实现在 数据库迁移 过程中业务和数据库不停机,业务中断时间最小化。

本章节主要介绍了通过DRS将ECS自建MySQL数据库实时迁移至华为云数据库GaussDB(for MySQL)的任务配置流程。支持以下网络类型:

· VPC网络

· VPN( Virtual Private Network 虚拟专用网络 )、专线网络

· 公网网络

 

迁移流程

图1 迁移流程图
 

迁移建议(重要)

· 数据库迁移与环境多样性和人为操作均有密切关系,为了确保迁移的平顺,建议您在进行正式的数据库迁移之前进行一次演练,可以帮助您提前发现问题并解决问题,如何最小化对数据库的影响请参考如下建议。

· 强烈建议您在启动任务时选择“稍后启动”功能,将启动时间设置在业务低峰期,相对静止的数据可以有效提升一次性迁移成功率,避免迁移对业务造成性能影响。

 

迁移须知(重要)

须知:在创建迁移任务之前,请您务必仔细阅读迁移须知。参考《 数据复制 服务快速入门》中的“使用须知”章节。

 

迁移准备

1、权限准备。

当使用DRS将MySQL数据库的数据迁移到华为云数据库GaussDB(for MySQL)实例时,在不同迁移类型的情况下,对源数据库和目标数据库的帐号权限要求如表1

表1 迁移帐号权限

迁移类型

全量迁移

全量+增量迁移

源数据库

SELECT、SHOW VIEW、EVENT。

SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。

目标数据库

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、WITH GRANT OPTION。

SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、WITH GRANT OPTION。

· 源数据库权限设置:

需要确保源数据库MySQL的帐号权限具备表1的要求。若权限不足,需要在源数据库端开通高权限的帐号。

· 目标数据库权限设置:

华为云数据库GaussDB(for MySQL)使用初始帐号即可。

 

2、网络准备。

· 源数据库的网络设置:

ECS自建MySQL数据库实时迁移至华为云数据库GaussDB(for MySQL)的场景,一般可以使用VPC网络、VPN网络、专线网络和公网网络四种方式进行迁移,您可以根据实际情况选择。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。

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

△ 若通过公网网络访问,不需要进行任何设置。

△ 若通过VPN、专线网络访问,请先开通华为VPN服务,确保源数据库MySQL和目标端华为云数据库GaussDB(for MySQL)的网络互通。

△ 若通过VPC网络访问,源数据库可以与目标端华为 云数据库MySQL 实例在同一个VPC,也可以不在同一个VPC。

· 当源库和目标库处于同一个VPC时,网络默认是互通的。

· 当不在同一个VPC的时候,要求源数据库实例和目标端华为云数据库MySQ L实例 所处的子网处于不同网段,此时需要通过建立对等连接实现网络互通,具体操作请参见《 虚拟私有云 用户指南》中“VPC对等连接”章节。

 

3、安全规则准备。

a)源数据库的白名单设置:

· 若通过公网网络进行迁移,源数据库MySQL实例需要将具体的DRS迁移实例的 弹性公网IP 添加到其网络白名单中,确保源数据库MySQL实例可以与上述弹性 公网IP 连通。在设置网络白名单之前需要获取DRS迁移实例,具体方法如下:

迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。如图2所示:

图2 迁移实例公网弹性IP
 

以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库MySQL实例的网络白名单设置为0.0.0.0/0,代表允许任何IP地址访问该实例。

· 若通过VPN、专线网络进行迁移,源库需要将DRS迁移实例的私有IP添加到其网络白名单内,确保源端和目标端网络互通。

· 若通过VPC网络进行迁移,同一VPC场景下,默认网络是连通的。不同VPC场景下,通过建立对等连接就可以实现网络互通。

上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。

 

b)目标 数据库安全 组规则设置

目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。

 

4、其他事项准备。

DRS支持部分与业务和性能强相关的参数迁移,具体参数列表请参见参数列表。若涉及其他参数需要根据用户具体的业务进行手动设置。

 

迁移步骤

1、创建迁移任务。

a)登录管理控制台,在服务列表中选择数据库 > 数据复制服务,进入数据复制服务信息页面。

b)在实时迁移管理”页面,单击右上角“创建迁移任务”,进入迁移任务信息页面。

c)在“迁移实例”页面,填选任务信息和迁移实例信息。

表2 任务和描述

参数

描述

区域

当前所在区域,可进行切换。

任务名称

任务名称在4-50位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他的特殊字符。

描述

描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。

任务异常通知设置

该项为可选参数,开启之后,选择对应的 SMN 主题,。当同步任务状态异常时,系统将发送通知。

SMN主题

“任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。

SMN主题申请和订阅可参考 消息通知 服务用户指南》。

时延阈值

在增量同步阶段,源数据库和目标数据库之间的同步有时会存在一个时间差,称为时延,单位为秒。

时延阈值设置是指时延超过一定的值后(时延阈值范围为1—3600s),DRS可以发送告警通知给指定收件人。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。

说明:

· 首次进入增量同步阶段,会有较多数据等待同步,存在较大的时延,属于正常情况,不在此功能的监控范围之内。

· 设置时延阈值之前,需要设置任务异常通知。

任务异常自动结束时间(天)

设置任务异常自动结束天数,输入值必须在14-100之间。

说明:异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免产生不必要的费用。
 
图3 迁移实例信息

表3 迁移实例信息

参数

描述

数据流动方向

选择入云。

入云指目标端数据库为华为云数据库。

源数据库引擎

选择MySQL。

目标数据库引擎

选择GaussDB(for MySQL)主备版。

网络类型

此处选择公网网络。

默认为公网网络类型,支持VPN网络、专线网络。

· 公网网络:适合通过公网网络把其他云下或其他平台的数据库迁移到目标数据库,该类型要求源数据库绑定弹性公网IP。

· VPN网络:适合通过VPN网络,实现其他云下自建数据库与云上数据库迁移、或云上跨Region的数据库之间的迁移。

· 专线网络:适合通过专线网络,实现其他云下自建数据库与云上数据库迁移、或云上跨Region的数据库之间的迁移。

· VPC网络:适合云上数据库之间的迁移。

目标数据库实例

用户所创建的目标GaussDB(for MySQL)实例。

迁移模式

此处以全量+增量模式为示例。

· 全量:该模式为数据库一次性迁移,适用于可中断业务的数据库迁移场景,全量迁移将非系统数据库的全部数据库对象和数据一次性迁移至目标端数据库,包括:表、视图、存储过程等。

说明:如果用户只进行全量迁移时,建议停止对源数据库的操作,否则迁移过程中源数据库产生的新数据不会同步到目标数据库。

· 全量+增量:该模式为数据库持续性迁移,适用于对业务中断敏感的场景,通过全量迁移过程中完成的目标端数据库的初始化后,增量迁移阶段通过解析日志等技术,将源端和目标端数据库保持数据持续一致。

说明:选择“全量+增量”迁移模式,增量迁移可以在全量迁移完成的基础上实现数据的持续同步,无需中断业务,实现迁移过程中源业务和数据库继续对外提供访问。

标签

可选配置,对迁移任务的标识。使用标签可方便管理您的迁移任务。每个任务最多支持10个标签配额。

任务创建成功后,您可以单击实例名称,在“标签”页签下查看对应标签。关于标签的详细操作,请参见标签管理。

d)在“源库及目标库”信息页面,迁移实例创建成功后,填选源库信息和目标库信息,建议您单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”

图4 源库信息
 
表4 源库信息

参数

描述

IP地址或 域名

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

端口

源数据库服务端口,可输入范围为1~65535间的整数。

数据库用户名

源数据库的用户名。

数据库密码

源数据库的用户名所对应的密码。支持在任务创建后修改密码。

任务为启动中、启动失败、全量中、全量失败、增量中、增量失败状态时,可在“基本信息”页面的“迁移信息”区域,单击“源库密码”后的“替换密码”,在弹出的对话框中修改密码。

SSL安全连接

通过该功能,用户可以选择是否开启对迁移链路的加密。如果开启该功能,需要用户上传SSL CA根证书。

说明:

· 最大支持上传500KB的证书文件。

· 如果不使用SSL证书,请自行承担 数据安全 风险。

 
图5 目标库信息
表5 目标库信息

参数

描述

数据库实例名称

默认为创建迁移任务时选择的关系型数据库实例,不可进行修改。

数据库用户名

目标数据库对应的数据库用户名。

数据库密码

目标数据库的登录密码。支持在任务创建后修改密码。

任务为启动中、启动失败、全量中、全量失败、增量中、增量失败状态时,可在“基本信息”页面的“迁移信息”区域,单击“目标库密码”后的“替换密码”,在弹出的对话框中修改密码。

所有Definer迁移到该用户下

·

迁移后,所有源数据库对象的Definer都会迁移至该用户下,其他用户需要授权后才具有数据库对象权限,如何授权请参考《数据复制服务常见问题》中的MySQL迁移中Definer强制转化后如何维持原业务用户权限体系章节。

·

迁移后,将保持源数据库对象Definer定义不变,选择此选项,需要配合下一步用户权限迁移功能,将源数据库的用户全部迁移,这样才能保持源数据库的权限体系完全不变。

 

e)在“迁移设置”页面,设置迁移对象,单击“下一步”

图6 设定迁移
 
表6 迁移对象

参数

描述

迁移对象

目前迁移对象仅支持自定义对象,选择的粒度为视图和表。 数据库对象迁移成功之后,在目标数据库中以小写的名称进行保存。如果有切换源数据库的操作或源库迁移对象变化的情况,请务必在选择迁移对象前单击右上角的,以确保待选择的对象为最新源数据库对象。

说明:

· 若所选的数据库进行迁移时,由于视图、表等对象可能与其他数据库的视图、表存在依赖关系,若所依赖的视图或表未迁移,则会导致迁移失败。建议您在迁移之前进行确认。

· 选择对象的时候,对象名称的前后空格不显示,中间如有多个空格只显示一个空格。

f)在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。

· 查看检查结果,如有失败的检查项,需要修复失败项后,单击“重新校验”按钮重新进行迁移任务预校验。

预检查失败项处理建议请参见《数据复制服务用户指南》中的“预检查失败项修复方法”。

· 预检查完成后,且所有检查项结果均成功时,单击“下一步”

图7 预检查

说明:所有检查项结果均成功时,若存在告警,需要阅读并确认告警详情后才可以继续执行下一步操作。

g)在“任务确认”页面,设置迁移任务的启动时间,并确认迁移任务信息无误后,单击“启动任务”,提交迁移任务。

迁移任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”,优选“稍后启动”。

预计迁移任务启动后,会对源数据库和目标数据库的性能产生影响,强烈建议您将任务启动时间设定在业务低峰期,同时预留2-3天校对数据。

h)迁移任务提交后,您可在“实时迁移管理”页面,查看并管理自己的任务。

 

2、查询迁移进度。

a)在“实时迁移管理”界面,选中指定迁移任务,单击任务名称,进入“基本信息”页面。

b)单击“迁移进度”页签,查看迁移进度

· 查看结构、数据、索引的迁移的百分比进度。

“全量迁移”模式:当全量迁移完成时,显示全量迁移各项指标完成进度100%。“全量+增量”迁移模式:全量迁移完成后,开始进行增量迁移,可在“迁移进度”页签下,查看增量迁移同步时延,当时延为0s时,说明源数据库和目标数据库的数据是实时同步的。
 
图8 迁移进度总览

说明:时延 = 源库当前系统时间 - 成功同步到目标库的最新一个事务在源库的提交成功时间。

一个事务同步的完整过程如下:

1、源端数据库的抽取;

2、经过网络的传输;

3、由DRS进行日志解析;

4、最终在目标数据库上的执行完成。

这样完成了事务从源到目标的同步,时延为该事务最后在目标数据库上执行完成时的源库当前系统时间(current_time)与该事务在源库的提交成功时间(committed_time)的时间差,时延为0代表源和目标瞬时一致,无新的事务需要同步。长时间未提交事务和频繁的DDL 均可以造成高时延。

· 查看迁移对象的进度。在“进度明细”下,单击目标迁移对象“详细信息”列的“查看详情”,查看对象的迁移进度,进入增量迁移后,该数据将不再显示,您可以使用“迁移对比”页签,进行一致性对比。

图9 迁移进度明细

· 查看读写数据性能。单击“监控图表”查看读写数据性能,该图表展示了实时读取源库和写入目标库数据的速率,其单位为MB/s。

图10 性能监控

 

3、查看迁移日志。

a)在“实时迁移管理”界面,选中指定迁移任务,单击任务名称。

b)在“迁移日志”页签,查看当前迁移任务的日志,可以根据“级别”筛选查看内容。

图11 查看迁移日志

您可查看到日志对应的时间,级别和描述。

 

4、对比迁移项。

a)在“实时迁移管理”界面,选中指定迁移任务,单击任务名称,进入“基本信息”页签。

单击“迁移对比”页签,进入“迁移对比”信息页面,对源数据库和目标数据库的数据进行对比分析。

b)您也可以在“实时迁移管理”界面,选中指定迁移任务,单击操作列的“查看对比”,进入“迁移对比”页面。

1、首先进行数据库对象完整性检查。

单击“对象检查”,进入“对象级对比”页签,单击“开始对比”后稍等一段时间再单击,查看各个对比项的对比结果。

图12 对象级对比

若需要查看对比项的对比结果详情,可单击指定对比项操作列的“详情”。

2、数据库对象检查完成后,进行迁移数据行数及内容的对比。

如果仅需要对比全部迁移对象的行数,您也可以在“实时迁移管理”界面,选中指定迁移任务,单击操作列的“创建对比”,创建对比任务。

a)单击迁移对比须知处的“全面检查”,进入“创建对比任务”页面。

b)在“创建对比任务”页面,分别选择“对比类型”、“对比时间”和“对象选择”后,单击“是”,提交对比任务。

图13 创建对比任务

· 对比类型:分为行数对比和内容对比。

· 对比时间:可设置为“立即启动”“稍后启动”。由于同步具有轻微的时差,在数据持续操作过程中进行对比任务,可能会出现符合实际情况的少量数据不一致对比结果,推荐结合对比定时功能,选择在业务低峰期进行对比,得到更为具有参考性的对比结果。

· 对象选择:可根据具体的业务场景选择需要进行对比的对象。

对比任务提交成功后,返回“数据级对比”页签,单击刷新列表,可以查看到所选对比类型的对比结果。

图14 数据级对比结果

若需要查看对比类型详情,可单击指定对比类型操作列的“查看对比报表”,然后选择需要进行对比的数据库,单击操作列的“查看详情”,查看指定源数据库和目标数据库的对比结果详情。

 

图15 对比详情

说明:运行中的任务可以随时取消,已取消的对比任务也支持查看对比报表。

    1. 业务割接前,进行割接复查。

      单击“割接复查”,进入创建对比任务页面,选择“对比类型”、“对比时间”和“对象选择”,单击“确定”,提交对比任务。

      查看对比详情的方法请参考步骤2

    2. 结束任务。

      业务系统和数据库切换成功后,为了防止源数据库的操作继续同步到目标数据库,造成数据覆盖问题,此时您可选择结束迁移任务。该操作仅删除了迁移实例,迁移任务仍显示在任务列表中,您可以进行查看或删除。结束迁移任务后,DRS将不再计费。

      一般情况下,结束任务功能可以确保特殊对象迁移的完整性(触发器、事件在结束阶段迁移),罕见情况下(例如网络异常)可能结束任务失败。当遇到多次任务结束失败时,可以勾选“强制结束任务”优先结束任务,以减少等待时间。强制结束任务,极端场景下可能会导致触发器、事件迁移不完整,请手工迁移触发器、事件。

上一篇:使用MySQL Workbench连接数据库 下一篇:cURL是什么

云数据库 RDS for MySQL

 

云数据库 RDS for MySQL拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点,让您更加专注业务发展。