MySQL数据库到GaussDB(DWS)同步实例(多对一场景)
本小节以RDS for MySQL->GaussDB(DWS)多对一场景的实时同步为示例,介绍如何使用数据复制服务配置实时同步任务。
操作步骤
- 在“实时同步管理”页面,单击“创建同步任务”。
- 在“同步实例”页面,填选区域、任务名称、任务异常通知信息、SMN主题、时延阈值、任务异常自动结束时间、描述、同步实例信息,单击“下一步”。图1 同步任务信息
表1 任务和描述 参数
描述
区域
当前所在区域,可进行切换。
任务名称
任务名称在4-50位之间,必须以字母开头,不区分大小写,可以包含字母、数字、中划线或下划线,不能包含其他的特殊字符。
任务异常通知设置
该项为可选参数,开启之后,选择对应的SMN主题。当同步任务状态异常时,系统将发送通知。
SMN主题
“任务异常通知设置”项开启后可见,需提前在SMN上申请主题并添加订阅。
SMN主题申请和订阅可参考《消息通知服务用户指南》。
时延阈值
在增量同步阶段,源数据库和目标数据库之间的同步有时会存在一个时间差,称为时延,单位为秒。
时延阈值设置是指时延超过一定的值后(时延阈值范围为1—3600s),DRS可以发送告警通知。告警通知将在时延稳定超过设定的阈值6min后发送,避免出现由于时延波动反复发送告警通知的情况。
说明:- 首次进入增量同步阶段,会有较多数据等待同步,存在较大的时延,属于正常情况,不在此功能的监控范围之内。
- 设置时延阈值之前,需要设置任务异常通知。
任务异常自动结束时间(天)
设置任务异常自动结束天数,输入值必须在14-100之间。
说明:异常状态下的任务仍然会计费,而长时间异常的任务无法续传和恢复。设置任务异常自动结束天数后,异常且超时的任务将会自动结束,以免产生不必要的费用。
描述
描述不能超过256位,且不能包含! = < > & ' " \ 特殊字符。
图2 同步实例信息表2 同步实例信息 参数
描述
数据流动方向
选择“入云”。
源数据库引擎
选择“MySQL”。
目标数据库引擎
选择“GaussDB(DWS)”。
网络类型
此处以“VPC网络”为示例。目前支持可选公网网络、VPC网络和VPN、专线网络。
目标数据库实例
可用的GaussDB(DWS)实例。
同步实例所在子网
请选择同步实例所在的子网。也可以单击“查看子网”,跳转至“网络控制台”查看实例所在子网帮助选择。
默认值为当前所选数据库实例所在子网,请选择有可用IP地址的子网。为确保同步实例创建成功,仅显示已经开启DHCP的子网。
同步类型
企业项目
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
如果需要自定义企业项目,请前往项目管理服务进行创建。关于如何创建项目,详见《项目管理用户指南》。
标签
可选配置,对同步任务的标识。使用标签可方便管理您的实时同步任务。每个任务最多支持10个标签配额。
任务创建成功后,您可以单击实例名称,在“标签”页签下查看对应标签。关于标签的详细操作,请参见标签管理。
- 在“源库及目标库”页面,同步实例创建成功后,填选源库信息和目标库信息,建议您单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”。图3 源库信息
表3 源库信息 参数
描述
源库类型
源数据库类型,可选“ECS自建库”和“RDS实例”,此处以“RDS实例”为示例。
数据库实例名称
选择待同步的RDS实例。
数据库用户名
源数据库的用户名。
数据库密码
源数据库的用户名所对应的密码。
源数据库的数据库用户名和密码,会被系统加密暂存,直至删除该任务后自动清除。
图4 目标库信息表4 目标库信息 参数
描述
数据库实例名称
默认为创建同步任务时选择的关系型数据库实例,不可进行修改。
数据库用户名
目标数据库对应的数据库用户名。
数据库密码
数据库用户名和密码将被系统加密暂存,直至该任务删除后清除。
- 在“设置同步”页面,选择同步对象类型和同步对象。单击“下一步”。图5 同步模式
表5 同步模式和对象 参数
描述
流速模式
流速模式支持限速和不限速,默认为不限速。
- 限速
自定义的最大同步速度,全量同步过程中的同步速度将不会超过该速度。
当流速模式选择了“限速”时,你需要通过流速设置来定时控制同步速度。流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为全天限流,您也可以根据业务需求自定义时段限流。自定义的时段限流支持最多设置3个定时任务,每个定时任务之间不能存在交叉的时间段,未设定在限速时间段的时间默认为不限速。
流速的大小需要根据业务场景来设置,不能超过9999MB/s。
图6 设置流速模式 - 不限速对同步速度不进行限制,通常会最大化使用源数据库的出口带宽。该流速模式同时会对源数据库造成读消耗,消耗取决于源数据库的出口带宽。比如源数据库的出口带宽为100MB/s,假设高速模式使用了80%带宽,则同步对源数据库将造成80MB/s的读操作IO消耗。说明:
- 限速模式只对全量阶段生效,增量阶段不生效。
- 您也可以在创建任务后修改流速模式。具体方法请参见修改流速模式。
同步对象类型
可选同步表结构、同步数据、同步索引,根据实际需求进行选择要同步内容。
- 同步数据为必选项。
- 选择同步表结构的时候目标库不能有同名的表。
- 不选同步表结构的时候目标库必须有相应的表,且要保证表结构与所选表结构相同。
增量阶段冲突策略
该冲突策略特指增量同步中的冲突处理策略,全量阶段的冲突默认忽略。
同步对象
可选表级同步、库级同步、导入对象文件,您可以根据业务场景选择对应的数据进行同步。
数据同步拓扑
数据同步功能支持多种同步拓扑,您可以根据业务需求规划您的同步实例。数据同步拓扑说明可参考数据同步拓扑介绍。
增量支持DDL
用户根据需求选择增量同步的DDL类型,不同链路支持的DDL类型以显示为准。
- 一对一、一对多场景:如果业务上认为源和目标应该使用保持严格一致,那么高危类DDL也应该勾选并同步。如果业务上确定某个高危DDL不应该发生,则可以不勾选同步高危类DDL,这样DRS将拦截过滤这个DDL,从而起到保护目标数据的作用。但需要知晓,过滤DDL的附带问题是可能导致同步失败,例如过滤删列动作。
- 多对一数据聚合场景:最佳方式是推荐只选择同步加列DDL,其他大部分DDL同步都可能因目标表修改而导致数据不一致或多对一中其他任务失败的情况发生。
在选择同步对象阶段可通过设置映射关系,实现多张表对GaussDB(DWS)一张表的同步。
- 在同步对象右侧已选对象框中,选择需要进行映射的表,单击“编辑”按钮。
- 在“编辑库名和表名”的弹出框中,填写新的数据库名和新表名,单击“是”,修改后的名称即为保存在目标数据库中的库名。图7 编辑库名和表名
- 文件导入对象也支持多张表对GaussDB(DWS)一张表的映射,由于消息体限制最多导入10000个表(表名长度过长或者规则过长也会影响导入数量)。
- 使用多对一操作时,需要使用数据加工的附加列操作来避免数据冲突。
- 源库和目标库多对一的表的结构要一致。
- 限速
- 在“数据加工”页面,选择需要加工的表对象,单击“操作”列添加,填选需要添加的列名、类型、操作类型信息,检查无误后,单击“下一步”。图8 数据加工
- “以serverName@database@table为列填充列”该操作会使用@符号拼接serverName、源库的库名和表名填充新加的列,并且该列会与源端表的主键形成复合主键。
- 在“预检查”页面,进行同步任务预校验,校验是否可进行实时同步。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。
预检查不通过项处理建议请参见《数据复制服务用户指南》中的“预检查不通过项修复方法”。
- 预检查完成后,且所有检查项结果均通过时,单击“下一步”。图9 预检查
所有检查项结果均通过时,若存在请确认项,需要阅读并确认详情后才可以继续执行下一步操作。
- 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行任务预校验。
- 在“任务确认”页面,设置同步任务的启动时间,并确认同步任务信息无误后,勾选协议,单击“启动任务”,提交同步任务。
- 同步任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”。
- 预计同步任务启动后,会对源数据库和目标数据库的性能产生影响,建议选择业务低峰期,合理设置同步任务的启动时间。
- 同步任务提交后,您可在“实时同步管理”页面,查看并管理自己的任务。
- 您可查看任务提交后的状态,状态请参见任务状态。
- 在任务列表的右上角,单击
刷新列表,可查看到最新的任务状态。
