
# 创建实时灾备任务
为了解决地区故障导致的业务不可用，数据复制服务推出灾备场景，为用户业务连续性提供数据库的同步保障。当主实例所在区域发生突发生自然灾害等状况无法连接时，可将异地灾备实例切换为主实例，在应用端修改数据库链接地址后，即可快速恢复应用的业务访问。数据复制服务提供的实时灾备功能，可实现主实例和跨区域的灾备实例之间的实时同步。
本文以跨区域的两个RDS for MySQL为例，帮助您使用DRS实时灾备功能，通过公网网络快速搭建异地单主灾备。
#### 操作流程
| 操作步骤                                              | 说明                                               |
|:---|:---|
| [准备工作]        | 注册华为账号并开通华为云，实名认证，准备待迁移数据库、数据库连接账号、网络等。          |
| [步骤一：创建灾备任务]    | 根据需要，选择源和目标数据库，创建灾备任务。                           |
| [步骤二：查询灾备进度]  | 灾备过程中，可以通过查看灾备进度了解灾备数据的完成情况。                     |
| [步骤三：对比灾备项]   | 实时灾备提供对比功能，可根据需要查看对象级对比、数据级对比等，来确保源和目标数据库的数据一致性。 |
| [步骤四（可选）：灾备倒换] | 实现异地数据库主备倒换，数据反向灾备的效果。                           |
   
 #### 准备工作
在进行实时灾备前，需要参考如下内容，提前进行华为账号、待迁移数据库、数据库连接账号、网络等准备工作。
- [注册华为账号]
  准备华为账号，创建用户并赋权使用DRS。
  1. 打开[华为云网站](https://www.huaweicloud.com/)。
  
  2. 单击"注册"，根据提示信息完成注册。
  
  3. 勾选服务条款， 单击"开通"。 
     系统提示开通成功。
     
     
  
  4. 实名认证，请参考： 
     - 个人账号：[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0077914254.html)
     
     - 企业账号：[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0077914253.html)
     
     
     
     
  
  5. 注册华为云账号后，如果需要对华为云上的资源进行精细管理，请使用统一身份认证服务（Identity and Access Management，简称IAM）创建IAM用户及用户组，并授权，以使得IAM用户获得具体的操作权限，更多操作，请参见[创建用户组、用户并授予DRS权限](https://support.huaweicloud.com/prepare-drs/drs_08_0012.html)。
   
- [数据库准备]
  
  在进行实时灾备前，用户需要提前准备好源和目标数据库。
  - 源数据库：为华北-北京一的RDS for MySQL数据库，用户可参考[RDS for MySQL快速入门](https://support.huaweicloud.com/qs-rds-mysql/rds_02_0047.html#section2)内容准备，本文示例信息如下：
    
    | 类别      | 示例                 | 备注                                                                                    |
    |:---|:---|:---|
    | 区域      | 华北-北京一             | 选择和自己业务区最近的Region，减少网络时延。                                                             |
    | RDS实例名称 | rds-DRsrc          | 自定义，易理解可识别。                                                                           |
    | 数据库版本   | MySQL 5.7          | -                                                                                     |
    | 实例类型    | 单机                 | 本示例中为单机。 实际使用时，为提升业务可靠性，推荐选择主备RDS实例。                      |
    | 存储类型    | SSD云盘              | -                                                                                     |
    | 可用区     | 可用区一               | 本示例中为可用区一。 实际业务场景推荐选择主备RDS实例，此时建议将两个实例创建在不同的可用区，提升业务可靠性。 |
    | 性能规格    | 通用型 2 vCPUs \| 8GB | -                                                                                     |
    | 弹性公网IP  | 10.154.217.42      | 仅作为示例。                                                                                |
       
    
  
  - 目标数据库：为华北-北京四的RDS for MySQL数据库，用户可参考[RDS for MySQL快速入门](https://support.huaweicloud.com/qs-rds-mysql/rds_02_0047.html#section2)内容准备，本文示例信息如下：
    
    | 类别      | 示例                 | 备注                                                                                    |
    |:---|:---|:---|
    | 区域      | 华北-北京四             | 选择和自己业务区最近的Region，减少网络时延。                                                             |
    | RDS实例名称 | rds-DRtar          | 自定义，易理解可识别。                                                                           |
    | 数据库版本   | MySQL 5.7          | -                                                                                     |
    | 实例类型    | 单机                 | 本示例中为单机。 实际使用时，为提升业务可靠性，推荐选择主备RDS实例。                    |
    | 存储类型    | SSD云盘              | -                                                                                     |
    | 可用区     | 可用区一               | 本示例中为可用区一。 实际业务场景推荐选择主备RDS实例，此时建议将两个实例创建在不同的可用区，提升业务可靠性。 |
    | 性能规格    | 通用型 2 vCPUs \| 8GB | -                                                                                     |
       
    
   
- [连接账号准备]
  
  为了保证灾备任务顺利进行，在使用DRS进行灾备前，建议单独创建用于DRS任务连接的数据库账号进行灾备，并需要满足一定的权限要求，才能启动实时灾备任务。
  - 源数据库连接账号：
    1. [通过DAS连接RDS for MySQL实例](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_connect_02.html)。
    
    2. 执行以下语句，参考[通过DAS创建账号](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0009.html#section4)章节，创建用于连接的数据库用户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实例](https://support.huaweicloud.com/usermanual-rds-mysql/rds_mysql_connect_02.html)。
    
    2. 执行以下语句，参考[通过DAS创建账号](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0009.html#section4)章节，创建用于连接的数据库用户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](https://support.huaweicloud.com/usermanual-eip/eip_0008.html)内容，为DRS灾备任务创建弹性公网IP。
  
  2. 设置源数据库安全组的规则。 
     将[1]中DRS实例弹性公网IP加入[源数据库RDS for MySQL实例]所属安全组的入方向规则，选择TCP协议，端口为源数据库RDS for MySQL实例的端口号。
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002072008093.png "点击放大")
     
     
     
   
 #### 步骤一：创建灾备任务
本步骤是针对[准备工作]中所举示例进行参数设置及介绍，如果需要了解更多实时灾备的使用指导，请参考[灾备方案概览](https://support.huaweicloud.com/realtimedr-drs/drs_07_0006.html)。
1. 进入[创建DRS灾备任务页面](https://console.huaweicloud.com/drs/?#/drs/guard/create/select)。
2. 填写基本信息。 
   图1基本信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002040009200.png "点击放大")
   
   
   | 参数   | 示例             | 参数说明                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|
   | 计费模式 | **按需计费**       | DRS的计费模式。 - 包年/包月：一种预付费模式，即先付费再使用，按照订单的购买周期进行结算。  - 按需计费：一种后付费模式，即先使用再付费，按照实际使用时长计费。   |
   | 区域   | **华北-北京四**     | 当前任务所在的区域。                                                                                                                                                                                                                                                                      |
   | 项目   | **华北-北京四**     | 当前区域下可以选择的项目。                                                                                                                                                                                                                                                                   |
   | 任务名称 | **DRS-DRTask** | 灾备任务的名称。                                                                                                                                                                                                                                                                        |
   | 描述   | **暂不填写**       | 任务描述。                                                                                                                                                                                                                                                                           |
      
   
   
3. 填写灾备实例信息。 
   图2灾备实例信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002040009220.png "点击放大")
   
   
   | 参数             | 示例            | 参数说明                                                                                                                                                                                                                                                                                                   |
   |:---|:---|:---|
   | 灾备关系           | **本云为备**      | 选择灾备关系，灾备关系是以华为云数据库为中心进行选择，分为本云为备和本云为主。 - 本云为备：指灾备数据库为华为云数据库实例且需将数据传入的场景。  - 本云为主：指业务数据库为华为云数据库实例且需将数据传出的场景。   |
   | 业务数据库引擎        | **MySQL**     | 业务数据库的引擎类型。                                                                                                                                                                                                                                                                                            |
   | 灾备数据库引擎        | **MySQL**     | 灾备数据库的引擎类型。                                                                                                                                                                                                                                                                                            |
   | 网络类型           | **公网网络**      | DRS任务进行数据灾备的网络类型。                                                                                                                                                                                                                                                                                      |
   | DRS任务类型        | **单AZ**       | 选择DRS任务类型，可选"单AZ"和"双AZ"。                                                                                                                                                                                                                                                                               |
   | 灾备数据库实例        | **rds-DRtar** | 选择灾备数据库实例。 灾备数据库实例名称为[数据库准备]中的rds-DRtar。                                                                                                                                                                                                 |
   | 灾备实例所在子网       | **默认的子网**     | 灾备任务所在的子网。                                                                                                                                                                                                                                                                                             |
   | 目标库实例读写设置      | **只读**        | 灾备过程中，将灾备数据库实例设置为"只读"状态。                                                                                                                                                                                                                                                                               |
   | 是否开启Binlog快速清理 | **否**         | DRS任务运行期间，是否开启灾备数据库实例的Binlog快速清理。                                                                                                                                                                                                                                                                      |
   | 指定公网IP         | -             | 选择DRS实例的公网IP，[网络准备]中创建的公网IP。                                                                                                                                                                                                                                         |
      
   
   
4. 选择规格、可用区。 
   图3选择规格和可用区   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039850928.png "点击放大")
   
   
   | 参数   | 示例       | 参数说明                                                                                                                |
   |:---|:---|:---|
   | 规格类型 | **大**    | 选择DRS实例的规格类型，不同规格类型对应不同性能的性能上限，详细可参考[实时灾备链路规格说明](https://support.huaweicloud.com/productdesc-drs/drs_01_0323.html)。 |
   | 可用区  | **可用区1** | 选择DRS任务创建的可用区。                                                                                                      |
      
   
   
5. 选择企业项目和标签。 
   图4选择企业项目和标签   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002040009224.png "点击放大")
   
   
   | 参数   | 示例          | 参数说明                                                                                                                                                                    |
   |:---|:---|:---|
   | 企业项目 | **default** | 对于已成功关联企业项目的用户，仅需在"企业项目"下拉框中选择目标项目。 更多关于企业项目的信息，请参见[《企业管理用户指南》](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)。 |
   | 标签   | **暂不添加**    | 对DRS任务的标识。使用标签可方便管理您的任务。                                                                                                                                                |
      
   
   
6. 单击"开始创建"。 
   等待5～10分钟后，页面显示"灾备实例创建成功"表示DRS任务已创建成功。
   
   
7. 在"测试连接"页面，分别测试DRS实例与源库和目标库的连通性。 
   1. 在"源库信息"区域填写[连接账号准备]中的源库信息。
   
   2. 填写完成后，单击源库信息区域处的"测试连接"。 当出现"测试连接成功"，表示源库连接通过。
      
   
   3. 在"目标库信息"区域填写[连接账号准备]中的目标库信息。
   
   4. 填写完成后，单击目标库信息区域处的"测试连接"。 当出现"测试连接成功"，表示目标库连接通过。
      
   
   5. 单击"下一步"。
   
   
   
   
8. 在"灾备设置"页面，设置流速模式等，单击"下一步"。 
   - 流速模式：不限速
   
   - 所有Definer迁移到该用户下：是
     图5灾备设置   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002035950634.png "点击放大")
     
     
     
     | 参数               | 示例      | 参数说明                                    |
     |:---|:---|:---|
     | 流速模式             | **不限速** | 选择是否对DRS灾备任务限速，默认为不限速。                  |
     | 所有Definer迁移到该用户下 | **是**   | 选择是否将源数据库对象的Definer迁移到测试连接时输入的目标数据库用户下。 |
        
     
   
   
   
   
9. 在"预检查"页面，进行灾备任务预校验，校验是否可进行灾备。 
   - 如果存在待确认项，需要阅读并确认详情后才可以继续执行。
   
   - 如果有不通过的检查项，可参考表中内容修复不通过项后，单击"重新校验"按钮重新进行灾备任务预校验。
   
   
   预检查通过率为100%时表示预检查通过。
   
   
10. 单击"下一步"。
11. 在"参数对比"页面，进行常规参数和性能参数的对比和修改。 
    - 如果用户选择不进行参数对比，或者源库和目标库参数对比一致，可跳过该步骤。
    
    - 如果源库和目标库参数对比不一致，用户可选择手动修改目标数据库参数，或者单击"一键对齐"按钮系统将帮您自动填充目标数据库的参数。
    
    
    
    
12. 单击"下一步"。
13. 在"任务确认"页面，设置灾备任务的启动时间。 
    图6任务启动设置   
    ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002036214376.png "点击放大")
    
    
    | 参数         | 示例       | 参数说明                                                 |
    |:---|:---|:---|
    | 启动时间       | **立即启动** | 灾备任务的启动时间可以根据业务需求，设置为"立即启动"或"稍后启动"，优选"稍后启动"。         |
    | 任务异常通知设置   | **关闭**   | 该项为可选参数，开启之后，选择对应的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分钟，单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075915741.png)，查看各个对比项的对比结果。
     
     当"对比结果"为"一致"时，表示该对象100%迁移完成。
     图7对象级对比   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002076074329.png "点击放大")
     
     
     
   
- [数据级对比]
  数据库对象检查完成后，通过数据级对比，对灾备数据的详细行数或者内容进行对比检查。
  1. 在"实时灾备管理"界面，选中指定灾备任务，单击任务名称。 
     进入"基本信息"页签。
     
     
  
  2. 单击"灾备对比"页签。 
     进入"灾备对比"信息页面。
     
     
  
  3. 选择"数据级对比"页签。
  
  4. 单击"创建对比任务"。
  
  5. 在"创建对比任务"页面，选择对比策略后，单击"是"，提交对比任务。 
     图8创建对比任务   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002040034906.png "点击放大")
     
     
     | 参数     | 示例       | 参数说明                                                                                                                                                                                                                                            |
     |:---|:---|:---|
     | 对比类型   | **行对比**  | 分为行数对比和内容对比。 - 行对比：对比灾备的表的行数是否一致。  - 内容对比：对比灾备的表内数据是否一致。   |
     | 对比时间   | **立即启动** | 设置对比任务启动时间，可设置为"立即启动"和"稍后启动"。                                                                                                                                                                                                                   |
     | 进行数据过滤 | **关闭**   | 选择是否设置对象比对的过滤条件。开启后，可根据配置的过滤条件进行对象比对。                                                                                                                                                                                                           |
     | 对象选择   | **全部**   | 可根据具体的业务场景选择需要进行对比的对象。                                                                                                                                                                                                                          |
        
     
     
  
  6. 对比任务提交成功后，返回"数据级对比"页签。
  
  7. 单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002076074333.png)刷新列表，等待对比任务完成后，可以查看对比结果。
     
     当"对比结果"为"一致"时，表示该对象在源库和目标库数据一致。
     图9行对比结果   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039876610.png "点击放大")
     
     
     
   
 #### 步骤四（可选）：灾备倒换
数据复制服务提供对灾备任务的主备倒换功能，当灾难发生时原灾备数据库可转换为业务数据库保证业务正常运行。
- 主备倒换前，业务正常运行在业务数据库，并且将数据实时同步至灾备数据库。此时，灾备数据库不可写入数据。
- 主备倒换后，原灾备数据库为可读写状态，可将业务切换到原灾备数据库运行，原业务数据库不可写 。
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. 灾备中的任务可进行主备倒换。 
   - 单击"本云数据库升主"，本云实例将升为业务数据库。
   
   - 单击"本云数据库降备"，本云实例将降为灾备数据库。
   
   
   灾备为单主灾备关系，不支持多写的多主模式，主备倒换时请确保即将成为备节点的数据库已经停止数据写入，且作为备节点未来也不会有数据写入，备节点的数据只来自主节点的同步，任何其他地方的写入将会导致备库数据被污染，使得灾备出现数据冲突而无法修复。
   
   
 
