文档首页/ 数据复制服务 DRS/ 快速入门/ 创建实时灾备任务
更新时间:2024-11-13 GMT+08:00

创建实时灾备任务

为了解决地区故障导致的业务不可用,数据复制服务推出灾备场景,为用户业务连续性提供数据库的同步保障。当主实例所在区域发生突发生自然灾害等状况无法连接时,可将异地灾备实例切换为主实例,在应用端修改数据库链接地址后,即可快速恢复应用的业务访问。数据复制服务提供的实时灾备功能,可实现主实例和跨区域的灾备实例之间的实时同步。

本文以跨区域的两个RDS for MySQL为例,帮助您使用DRS实时灾备功能,通过公网网络快速搭建异地单主灾备。

操作流程

操作步骤

说明

准备工作

注册华为账号并开通华为云,实名认证,准备待迁移数据库、数据库连接账号、网络等。

步骤一:创建灾备任务

根据需要,选择源和目标数据库,创建灾备任务。

步骤二:查询灾备进度

灾备过程中,可以通过查看灾备进度了解灾备数据的完成情况。

步骤三:对比灾备项

实时灾备提供对比功能,可根据需要查看对象级对比、数据级对比等,来确保源和目标数据库的数据一致性。

步骤四(可选):灾备倒换

实现异地数据库主备倒换,数据反向灾备的效果。

准备工作

在进行实时灾备前,需要参考如下内容,提前进行华为账号、待迁移数据库、数据库连接账号、网络等准备工作。

准备华为账号,创建用户并赋权使用DRS。

  1. 打开华为云网站
  2. 单击“注册”,根据提示信息完成注册。
  3. 勾选服务条款, 单击“开通”。

    系统提示开通成功。

  4. 实名认证,请参考:

  5. 注册华为云账号后,如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(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任务连接的数据库账号进行灾备,并需要满足一定的权限要求,才能启动实时灾备任务。

  • 源数据库连接账号:
    1. 通过DAS连接RDS for MySQL实例
    2. 执行以下语句,参考通过DAS创建账号章节,创建用于连接的数据库用户usersrc:

      CREATE USER 'usersrc'@'%' IDENTIFIED BY 'password';

    3. 执行以下语句,授予数据库用户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;

  • 目标数据库连接账号:
    1. 通过DAS连接RDS for MySQL实例
    2. 执行以下语句,参考通过DAS创建账号章节,创建用于连接的数据库用户usertar:

      CREATE USER 'usertar'@'%' IDENTIFIED BY 'password';

    3. 执行以下语句,授予数据库用户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可以访问源数据库。

  1. 参考申请弹性公网IP内容,为DRS灾备任务创建弹性公网IP。
  2. 设置源数据库安全组的规则。

    1中DRS实例弹性公网IP加入源数据库RDS for MySQL实例所属安全组的入方向规则,选择TCP协议,端口为源数据库RDS for MySQL实例的端口号。

步骤一:创建灾备任务

本步骤是针对准备工作中所举示例进行参数设置及介绍,如果需要了解更多实时灾备的使用指导,请参考灾备方案概览

  1. 进入创建DRS灾备任务页面
  2. 填写基本信息。

    图1 基本信息

    参数

    示例

    参数说明

    计费模式

    按需计费

    DRS的计费模式。

    • 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。
    • 按需计费:一种后付费模式,即先使用再付费,按照实际使用时长计费。

    区域

    亚太-新加坡

    当前任务所在的区域。

    项目

    亚太-新加坡

    当前区域下可以选择的项目。

    任务名称

    DRS-DRTask

    灾备任务的名称。

    描述

    暂不填写

    任务描述。

  3. 填写灾备实例信息。

    图2 灾备实例信息

    参数

    示例

    参数说明

    灾备关系

    本云为备

    选择灾备关系,灾备关系是以华为云数据库为中心进行选择,分为本云为备和本云为主。

    • 本云为备:指灾备数据库为华为云数据库实例且需将数据传入的场景。
    • 本云为主:指业务数据库为华为云数据库实例且需将数据传出的场景。

    业务数据库引擎

    MySQL

    业务数据库的引擎类型。

    灾备数据库引擎

    MySQL

    灾备数据库的引擎类型。

    网络类型

    公网网络

    DRS任务进行数据灾备的网络类型。

    DRS任务类型

    单AZ

    选择DRS任务类型,可选“单AZ”和“双AZ”。

    灾备数据库实例

    rds-DRtar

    选择灾备数据库实例。

    灾备数据库实例名称为数据库准备中的rds-DRtar。

    灾备实例所在子网

    默认的子网

    灾备任务所在的子网。

    目标库实例读写设置

    只读

    灾备过程中,将灾备数据库实例设置为“只读”状态。

    是否开启Binlog快速清理

    DRS任务运行期间,是否开启灾备数据库实例的Binlog快速清理。

    指定公网IP

    -

    选择DRS实例的公网IP,网络准备中创建的公网IP。

  4. 选择规格、可用区。

    图3 选择规格和可用区

    参数

    示例

    参数说明

    规格类型

    选择DRS实例的规格类型,不同规格类型对应不同性能的性能上限,详细可参考实时灾备链路规格说明

    可用区

    可用区1

    选择DRS任务创建的可用区。

  5. 选择企业项目和标签。

    图4 选择企业项目和标签

    参数

    示例

    参数说明

    企业项目

    default

    对于已成功关联企业项目的用户,仅需在“企业项目”下拉框中选择目标项目。

    更多关于企业项目的信息,请参见《企业管理用户指南》

    标签

    暂不添加

    对DRS任务的标识。使用标签可方便管理您的任务。

  6. 单击“开始创建”

    等待5~10分钟后,页面显示“灾备实例创建成功”表示DRS任务已创建成功。

  7. 在“测试连接”页面,分别测试DRS实例与源库和目标库的连通性。

    1. 在“源库信息”区域填写连接账号准备中的源库信息。
    2. 填写完成后,单击源库信息区域处的“测试连接”

      当出现“测试连接成功”,表示源库连接通过。

    3. 在“目标库信息”区域填写连接账号准备中的目标库信息。
    4. 填写完成后,单击目标库信息区域处的“测试连接”

      当出现“测试连接成功”,表示目标库连接通过。

    5. 单击“下一步”

  8. “灾备设置”页面,设置流速模式等,单击“下一步”

    • 流速模式:不限速
    • 所有Definer迁移到该用户下:是
      图5 灾备设置

      参数

      示例

      参数说明

      流速模式

      不限速

      选择是否对DRS灾备任务限速,默认为不限速。

      所有Definer迁移到该用户下

      选择是否将源数据库对象的Definer迁移到测试连接时输入的目标数据库用户下。

  9. “预检查”页面,进行灾备任务预校验,校验是否可进行灾备。

    • 如果存在待确认项,需要阅读并确认详情后才可以继续执行。
    • 如果有不通过的检查项,可参考表中内容修复不通过项后,单击“重新校验”按钮重新进行灾备任务预校验。

    预检查通过率为100%时表示预检查通过。

  10. 单击“下一步”。
  11. “参数对比”页面,进行常规参数和性能参数的对比和修改。

    • 如果用户选择不进行参数对比,或者源库和目标库参数对比一致,可跳过该步骤。
    • 如果源库和目标库参数对比不一致,用户可选择手动修改目标数据库参数,或者单击“一键对齐”按钮系统将帮您自动填充目标数据库的参数。

  12. 单击“下一步”。
  13. “任务确认”页面,设置灾备任务的启动时间。

    图6 任务启动设置

    参数

    示例

    参数说明

    启动时间

    立即启动

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

    任务异常通知设置

    关闭

    该项为可选参数,开启之后,选择对应的SMN主题。当灾备任务状态、时延指标、数据等异常时,系统将发送通知。

    任务异常自动结束时间

    14

    设置任务异常自动结束天数。设置任务异常自动结束天数后,异常且超时的任务将会自动结束。

  14. 确认灾备任务信息无误后,单击“启动任务”,提交灾备任务。
  15. 灾备任务提交后,您可在“实时灾备管理”页面,查看任务状态。

    • 任务状态为“启动中”时,表示任务已正常启动。
    • 对于未启动、状态为配置中的任务,DRS默认保留3天,超过3天DRS会自动删除后台资源,当前任务状态不变。当用户再次配置时,DRS会重新申请资源。

步骤二:查询灾备进度

当任务正常启动后,您可以通过DRS提供的灾备进度功能来查询数据灾备的进展。DRS提供流式进度展示,帮助您在灾备过程中实时了解灾备进展。

  1. “实时灾备管理”界面,选中指定灾备任务,单击任务名称。

    进入“基本信息”页面。

  2. 单击“灾备进度”页签,查看灾备进度

    • 灾备进度:当数据初始化完成时,显示初始化进度为100%。
    • 灾备时延:时延 = 源库当前系统时间 - 成功同步到目标库的最新一个事务在源库的提交成功时间。

      时延为0表示业务数据库和灾备数据库进入近实时同步状态,此时可以通过“灾备监控”页签查看更多时延指标,如RPO、RTO等。

  3. 当灾备任务时延为0s时,可使用DRS提供的对比功能,确认业务和灾备数据库的数据是否一致性。

步骤三:对比灾备项

当任务进入灾备中阶段,并且灾备RPO和RTO均为0时,用户可使用DRS提供的对比功能,确认源和目标数据库的数据是否一致性。

  • 对象级对比:对数据库、索引、表、视图、存储过程和函数、表的排序规则等对象进行对比,建议在先进行对象级对比。
  • 数据级对比:对迁移的表的行数或者表内数据进行一致性检查。

通过对象对比,可以对数据库对象完整性进行检查。

  1. 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称。

    进入“基本信息”页签。

  2. 单击“灾备对比”页签。

    进入“灾备对比”信息页面。

  3. 单击“对象级对比”。

    进入“对象级对比”页签。

  4. 单击“开始对比”
  5. 等待5~10分钟,单击,查看各个对比项的对比结果。

    当“对比结果”为“一致”时,表示该对象100%迁移完成。
    图7 对象级对比

数据库对象检查完成后,通过数据级对比,对灾备数据的详细行数或者内容进行对比检查。

  1. 在“实时灾备管理”界面,选中指定灾备任务,单击任务名称。

    进入“基本信息”页签。

  2. 单击“灾备对比”页签。

    进入“灾备对比”信息页面。

  3. 选择“数据级对比”页签。
  4. 单击“创建对比任务”。
  5. “创建对比任务”页面,选择对比策略后,单击“是”,提交对比任务。

    图8 创建对比任务

    参数

    示例

    参数说明

    对比类型

    行对比

    分为行数对比和内容对比。

    • 行对比:对比灾备的表的行数是否一致。
    • 内容对比:对比灾备的表内数据是否一致。

    对比时间

    立即启动

    设置对比任务启动时间,可设置为“立即启动”和“稍后启动”。

    进行数据过滤

    关闭

    选择是否设置对象比对的过滤条件。开启后,可根据配置的过滤条件进行对象比对。

    对象选择

    全部

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

  6. 对比任务提交成功后,返回“数据级对比”页签。
  7. 单击刷新列表,等待对比任务完成后,可以查看对比结果。

    当“对比结果”为“一致”时,表示该对象在源库和目标库数据一致。
    图9 行对比结果

步骤四(可选):灾备倒换

数据复制服务提供对灾备任务的主备倒换功能,当灾难发生时原灾备数据库可转换为业务数据库保证业务正常运行。

  • 主备倒换前,业务正常运行在业务数据库,并且将数据实时同步至灾备数据库。此时,灾备数据库不可写入数据。
  • 主备倒换后,原灾备数据库为可读写状态,可将业务切换到原灾备数据库运行,原业务数据库不可写 。
  1. 在“实时灾备管理”页面,选择指定的灾备任务。
  2. 单击任务名称。

    进入“基本信息”页签。

  3. 单击“灾备进度”页签,查看灾备时延RPO和RTO。

    • RPO(Recovery Point Objective),为业务数据库与DRS实例数据差的一种度量方式,RPO=0时,意味着业务数据库的数据已经全部到达DRS实例。
    • RTO(Recovery Time Objective),处在传输中数据量的一种度量方式,RTO=0时,意味着DRS实例上的事务已经全部在灾备数据库上执行完毕。

    RPO和RTO均为0时,表示数据已经完全迁移到灾备库,可以进行主备倒换。

  4. 单击“灾备监控”页签。
  5. 灾备中的任务可进行主备倒换。

    • 单击“本云数据库升主”,本云实例将升为业务数据库。
    • 单击“本云数据库降备”,本云实例将降为灾备数据库。

    灾备为单主灾备关系,不支持多写的多主模式,主备倒换时请确保即将成为备节点的数据库已经停止数据写入,且作为备节点未来也不会有数据写入,备节点的数据只来自主节点的同步,任何其他地方的写入将会导致备库数据被污染,使得灾备出现数据冲突而无法修复。