创建实时灾备任务
为了解决地区故障导致的业务不可用,数据复制服务推出灾备场景,为用户业务连续性提供数据库的同步保障。当主实例所在区域发生突发生自然灾害等状况无法连接时,可将异地灾备实例切换为主实例,在应用端修改数据库链接地址后,即可快速恢复应用的业务访问。数据复制服务提供的实时灾备功能,可实现主实例和跨区域的灾备实例之间的实时同步。
本文以跨区域的两个RDS for MySQL为例,帮助您使用DRS实时灾备功能,通过公网网络快速搭建异地单主灾备。
操作流程
操作步骤 |
说明 |
---|---|
注册华为账号并开通华为云,实名认证,准备待迁移数据库、数据库连接账号、网络等。 |
|
根据需要,选择源和目标数据库,创建灾备任务。 |
|
灾备过程中,可以通过查看灾备进度了解灾备数据的完成情况。 |
|
实时灾备提供对比功能,可根据需要查看对象级对比、数据级对比等,来确保源和目标数据库的数据一致性。 |
|
实现异地数据库主备倒换,数据反向灾备的效果。 |
准备华为账号,创建用户并赋权使用DRS。
- 打开华为云网站。
- 单击“注册”,根据提示信息完成注册。
- 勾选服务条款, 单击“开通”。
系统提示开通成功。
- 实名认证,请参考:
- 注册华为云账号后,如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户组、用户并授予DRS权限。
在进行实时灾备前,用户需要提前准备好源和目标数据库。
- 源数据库:为中国-香港的RDS for MySQL数据库,用户可参考RDS for MySQL快速入门内容准备,本文示例信息如下:
类别
示例
备注
区域
中国-香港
选择和自己业务区最近的Region,减少网络时延。
RDS实例名称
rds-DRsrc
自定义,易理解可识别。
数据库版本
MySQL 5.7
-
实例类型
单机
本示例中为单机。
实际使用时,为提升业务可靠性,推荐选择主备RDS实例。
存储类型
SSD云盘
-
可用区
可用区一
本示例中为可用区一。
实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。
性能规格
通用型 2 vCPUs | 8GB
-
弹性公网IP
10.154.217.42
仅作为示例。
- 目标数据库:为亚太-新加坡的RDS for MySQL数据库,用户可参考RDS for MySQL快速入门内容准备,本文示例信息如下:
类别
示例
备注
区域
亚太-新加坡
选择和自己业务区最近的Region,减少网络时延。
RDS实例名称
rds-DRtar
自定义,易理解可识别。
数据库版本
MySQL 5.7
-
实例类型
单机
本示例中为单机。
实际使用时,为提升业务可靠性,推荐选择主备RDS实例。
存储类型
SSD云盘
-
可用区
可用区一
本示例中为可用区一。
实际业务场景推荐选择主备RDS实例,此时建议将两个实例创建在不同的可用区,提升业务可靠性。
性能规格
通用型 2 vCPUs | 8GB
-
为了保证灾备任务顺利进行,在使用DRS进行灾备前,建议单独创建用于DRS任务连接的数据库账号进行灾备,并需要满足一定的权限要求,才能启动实时灾备任务。
- 源数据库连接账号:
- 通过DAS连接RDS for MySQL实例。
- 执行以下语句,参考通过DAS创建账号章节,创建用于连接的数据库用户usersrc:
CREATE USER 'usersrc'@'%' IDENTIFIED BY 'password';
- 执行以下语句,授予数据库用户usersrc权限:
GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'usersrc'@'%' WITH GRANT OPTION;
- 目标数据库连接账号:
- 通过DAS连接RDS for MySQL实例。
- 执行以下语句,参考通过DAS创建账号章节,创建用于连接的数据库用户usertar:
CREATE USER 'usertar'@'%' IDENTIFIED BY 'password';
- 执行以下语句,授予数据库用户usertar权限:
GRANT SELECT,CREATE,ALTER,DROP,DELETE,INSERT,UPDATE,TRIGGER,REFERENCES,SHOW VIEW,EVENT,INDEX,LOCK TABLES,CREATE VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,RELOAD,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'usertar'@'%' WITH GRANT OPTION;
在创建公网网络灾备任务前,用户需要先申请弹性公网IP,并在设置源数据库安全组规则,使得该弹性公网IP可以访问源数据库。
- 参考申请弹性公网IP内容,为DRS灾备任务创建弹性公网IP。
- 设置源数据库安全组的规则。
将1中DRS实例弹性公网IP加入源数据库RDS for MySQL实例所属安全组的入方向规则,选择TCP协议,端口为源数据库RDS for MySQL实例的端口号。
步骤一:创建灾备任务
本步骤是针对准备工作中所举示例进行参数设置及介绍,如果需要了解更多实时灾备的使用指导,请参考灾备方案概览。
- 进入创建DRS灾备任务页面。
- 填写基本信息。
图1 基本信息
参数
示例
参数说明
计费模式
按需计费
DRS的计费模式。
- 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。
- 按需计费:一种后付费模式,即先使用再付费,按照实际使用时长计费。
区域
亚太-新加坡
当前任务所在的区域。
项目
亚太-新加坡
当前区域下可以选择的项目。
任务名称
DRS-DRTask
灾备任务的名称。
描述
暂不填写
任务描述。
- 填写灾备实例信息。
图2 灾备实例信息
参数
示例
参数说明
灾备关系
本云为备
选择灾备关系,灾备关系是以华为云数据库为中心进行选择,分为本云为备和本云为主。
- 本云为备:指灾备数据库为华为云数据库实例且需将数据传入的场景。
- 本云为主:指业务数据库为华为云数据库实例且需将数据传出的场景。
业务数据库引擎
MySQL
业务数据库的引擎类型。
灾备数据库引擎
MySQL
灾备数据库的引擎类型。
网络类型
公网网络
DRS任务进行数据灾备的网络类型。
DRS任务类型
单AZ
选择DRS任务类型,可选“单AZ”和“双AZ”。
灾备数据库实例
rds-DRtar
选择灾备数据库实例。
灾备数据库实例名称为数据库准备中的rds-DRtar。
灾备实例所在子网
默认的子网
灾备任务所在的子网。
目标库实例读写设置
只读
灾备过程中,将灾备数据库实例设置为“只读”状态。
是否开启Binlog快速清理
否
DRS任务运行期间,是否开启灾备数据库实例的Binlog快速清理。
指定公网IP
-
选择DRS实例的公网IP,网络准备中创建的公网IP。
- 选择规格、可用区。
图3 选择规格和可用区
参数
示例
参数说明
规格类型
大
选择DRS实例的规格类型,不同规格类型对应不同性能的性能上限,详细可参考实时灾备链路规格说明。
可用区
可用区1
选择DRS任务创建的可用区。
- 选择企业项目和标签。
图4 选择企业项目和标签
参数
示例
参数说明
企业项目
default
对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。
更多关于企业项目的信息,请参见《企业管理用户指南》。
标签
暂不添加
对DRS任务的标识。使用标签可方便管理您的任务。
- 单击“开始创建”。
等待5~10分钟后,页面显示“灾备实例创建成功”表示DRS任务已创建成功。
- 在“测试连接”页面,分别测试DRS实例与源库和目标库的连通性。
- 在“灾备设置”页面,设置流速模式等,单击“下一步”。
- 流速模式:不限速
- 所有Definer迁移到该用户下:是
图5 灾备设置
参数
示例
参数说明
流速模式
不限速
选择是否对DRS灾备任务限速,默认为不限速。
所有Definer迁移到该用户下
是
选择是否将源数据库对象的Definer迁移到测试连接时输入的目标数据库用户下。
- 在“预检查”页面,进行灾备任务预校验,校验是否可进行灾备。
- 如果存在待确认项,需要阅读并确认详情后才可以继续执行。
- 如果有不通过的检查项,可参考表中内容修复不通过项后,单击“重新校验”按钮重新进行灾备任务预校验。
预检查通过率为100%时表示预检查通过。
- 单击“下一步”。
- 在“参数对比”页面,进行常规参数和性能参数的对比和修改。
- 如果用户选择不进行参数对比,或者源库和目标库参数对比一致,可跳过该步骤。
- 如果源库和目标库参数对比不一致,用户可选择手动修改目标数据库参数,或者单击“一键对齐”按钮系统将帮您自动填充目标数据库的参数。
- 单击“下一步”。
- 在“任务确认”页面,设置灾备任务的启动时间。
图6 任务启动设置
参数
示例
参数说明
启动时间
立即启动
灾备任务的启动时间可以根据业务需求,设置为“立即启动”或“稍后启动”,优选“稍后启动”。
任务异常通知设置
关闭
该项为可选参数,开启之后,选择对应的SMN主题。当灾备任务状态、时延指标、数据等异常时,系统将发送通知。
任务异常自动结束时间
14
设置任务异常自动结束天数。设置任务异常自动结束天数后,异常且超时的任务将会自动结束。
- 确认灾备任务信息无误后,单击“启动任务”,提交灾备任务。
- 灾备任务提交后,您可在“实时灾备管理”页面,查看任务状态。
- 任务状态为“启动中”时,表示任务已正常启动。
- 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源。
步骤二:查询灾备进度
当任务正常启动后,您可以通过DRS提供的灾备进度功能来查询数据灾备的进展。DRS提供流式进度展示,帮助您在灾备过程中实时了解灾备进展。
- 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称。
进入“基本信息”页面。
- 单击“灾备进度”页签,查看灾备进度。
- 当灾备任务时延为0s时,可使用DRS提供的对比功能,确认业务和灾备数据库的数据是否一致性。
步骤三:对比灾备项
当任务进入灾备中阶段,并且灾备RPO和RTO均为0时,用户可使用DRS提供的对比功能,确认源和目标数据库的数据是否一致性。
- 对象级对比:对数据库、索引、表、视图、存储过程和函数、表的排序规则等对象进行对比,建议在先进行对象级对比。
- 数据级对比:对迁移的表的行数或者表内数据进行一致性检查。
通过对象对比,可以对数据库对象完整性进行检查。
- 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称。
进入“基本信息”页签。
- 单击“灾备对比”页签。
进入“灾备对比”信息页面。
- 单击“对象级对比”。
进入“对象级对比”页签。
- 单击“开始对比”。
- 等待5~10分钟,单击,查看各个对比项的对比结果。
当“对比结果”为“一致”时,表示该对象100%迁移完成。图7 对象级对比
数据库对象检查完成后,通过数据级对比,对灾备数据的详细行数或者内容进行对比检查。
- 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称。
进入“基本信息”页签。
- 单击“灾备对比”页签。
进入“灾备对比”信息页面。
- 选择“数据级对比”页签。
- 单击“创建对比任务”。
- 在“创建对比任务”页面,选择对比策略后,单击“是”,提交对比任务。
图8 创建对比任务
参数
示例
参数说明
对比类型
行对比
分为行数对比和内容对比。
- 行对比:对比灾备的表的行数是否一致。
- 内容对比:对比灾备的表内数据是否一致。
对比时间
立即启动
设置对比任务启动时间,可设置为“立即启动”和“稍后启动”。
进行数据过滤
关闭
选择是否设置对象比对的过滤条件。开启后,可根据配置的过滤条件进行对象比对。
对象选择
全部
可根据具体的业务场景选择需要进行对比的对象。
- 对比任务提交成功后,返回“数据级对比”页签。
- 单击刷新列表,等待对比任务完成后,可以查看对比结果。
当“对比结果”为“一致”时,表示该对象在源库和目标库数据一致。图9 行对比结果
步骤四(可选):灾备倒换
数据复制服务提供对灾备任务的主备倒换功能,当灾难发生时原灾备数据库可转换为业务数据库保证业务正常运行。
- 主备倒换前,业务正常运行在业务数据库,并且将数据实时同步至灾备数据库。此时,灾备数据库不可写入数据。
- 主备倒换后,原灾备数据库为可读写状态,可将业务切换到原灾备数据库运行,原业务数据库不可写 。
- 在“实时灾备管理”页面,选择指定的灾备任务。
- 单击任务名称。
进入“基本信息”页签。
- 单击“灾备进度”页签,查看灾备时延RPO和RTO。
- RPO(Recovery Point Objective),为业务数据库与DRS实例数据差的一种度量方式,RPO=0时,意味着业务数据库的数据已经全部到达DRS实例。
- RTO(Recovery Time Objective),处在传输中数据量的一种度量方式,RTO=0时,意味着DRS实例上的事务已经全部在灾备数据库上执行完毕。
RPO和RTO均为0时,表示数据已经完全迁移到灾备库,可以进行主备倒换。
- 单击“灾备监控”页签。
- 灾备中的任务可进行主备倒换。
- 单击“本云数据库升主”,本云实例将升为业务数据库。
- 单击“本云数据库降备”,本云实例将降为灾备数据库。
灾备为单主灾备关系,不支持多写的多主模式,主备倒换时请确保即将成为备节点的数据库已经停止数据写入,且作为备节点未来也不会有数据写入,备节点的数据只来自主节点的同步,任何其他地方的写入将会导致备库数据被污染,使得灾备出现数据冲突而无法修复。