
# 创建录制回放任务
录制回放是指将源数据库发生的真实业务流量，在目标数据库模拟执行，从而观察和检验目标数据库的功能和性能表现。常用于以下两个场景：
- 功能验证回放：数据库搬迁前，通过录制回放可以提前得知源业务在目标数据库的运行效果。
- 业务加压回放：通过控制回放的线程及回放速度，来模拟源业务流量放大的效果，从而分析目标数据库对于未来业务激增时的稳定性表现。
本文以跨区域的两个RDS for MySQL为例，帮助您使用DRS录制回放功能，通过公网网络完成SQL流量文件的回放。
#### 操作视频
<video controls="controls" preload="none" id="object1671014542819" class="idp-external-video" src="https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/DRS/1730795781339956306.mp4" title="创建DRS实时同步任务" poster="https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002375770600.jpg" height="400.0000" width="700.0000"></video>
#### 操作流程
| 操作步骤                                                                                              | 说明                                          |
|:---|:---|
| [准备工作](https://support.huaweicloud.com/qs-drs/drs_qs_0004.html#drs_qs_0004__section7278134716515) | 注册华为账号并开通华为云，实名认证，准备流量文件和目标数据库、数据库连接账号、网络等。 |
| [步骤一：创建录制回放任务]                                                | 根据需要，选择源和目标数据库，创建回放任务。                      |
| [步骤二：查询回放进度]                                                   | 回放过程中，可以通过查看进度了解回放的完成情况。                    |
| [步骤三：查看回放报告]                                                | 回放完成后，通过查看回放报告，了解各SQL执行情况。                  |
| [结束任务]                                                        | 确定回放任务不再使用后，结束DRS任务。                        |
   
 #### 准备工作
在进行录制回放前，需要参考如下内容，提前进行华为账号、源和目标数据库、数据库连接账号、SQL流量文件、网络等准备工作。
- [注册华为账号]
  准备华为账号，创建用户并赋权使用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-Replaysrc      | 自定义，易理解可识别。                                                                           |
    | 数据库版本   | 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-Replaytar      | 自定义，易理解可识别。                                                                           |
    | 数据库版本   | MySQL 5.7          | -                                                                                     |
    | 实例类型    | 单机                 | 本示例中为单机。 实际使用时，为提升业务可靠性，推荐选择主备RDS实例。                    |
    | 存储类型    | SSD云盘              | -                                                                                     |
    | 可用区     | 可用区一               | 本示例中为可用区一。 实际业务场景推荐选择主备RDS实例，此时建议将两个实例创建在不同的可用区，提升业务可靠性。 |
    | 性能规格    | 通用型 2 vCPUs \| 8GB | -                                                                                     |
       
    
   
- [SQL流量文件准备]
  
  在创建任务前，源数据库需要提前完成SQL流量文件录制。
  1. [登录管理控制台](https://console.huaweicloud.com)。
  
  2. 单击管理控制台左上角的![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002036133596.png)，选择区域"华北-北京一"。
  
  3. 选择"数据库 \> 关系型数据库"。进入关系型数据库信息页面。
  
  4. 在"实例管理"页面，选择[数据库准备]中的源数据库实例，单击实例名称，进入实例的"概览"页签。
  
  5. 在左侧导航栏单击"SQL审计"，单击"设置SQL审计"，在弹出框中设置SQL审计日志保留策略，单击"确定"，保存设置策略。 
     - 审计日志开关：打开
     
     - 保留天数：7天
     
     
     图1设置SQL审计   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002072176745.png "点击放大")
     
     
     
   
- [连接账号准备]
  
  为了保证录制回放任务顺利进行，在使用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)章节，执行以下语句，创建用于连接的数据库用户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实例](https://support.huaweicloud.com/qs-drs/drs_qs_0004.html#drs_qs_0004__section156417214136)所属安全组的入方向规则，选择TCP协议，端口为源数据库RDS for MySQL实例的端口号。
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002072086621.png "点击放大")
     
     
     
   
 #### 步骤一：创建录制回放任务
本步骤是针对[准备工作]中所举示例进行参数设置及介绍，如果需要了解更多录制回放的使用指导，请参考[回放方案概览](https://support.huaweicloud.com/trafficrep-drs/drs_08_0111.html)。
1. 进入[创建DRS录制回放任务页面](https://console.huaweicloud.com/drs/?#/drs/replay/create/select)。
2. 填写基本信息。 
   图2基本信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002076079901.png "点击放大")
   
   
   | 参数   | 示例             | 参数说明          |
   |:---|:---|:---|
   | 区域   | **华北-北京四**     | 当前任务所在的区域。    |
   | 项目   | **华北-北京四**     | 当前区域下可以选择的项目。 |
   | 任务名称 | **DRS-Replay** | 录制回放任务的名称。    |
   | 描述   | **暂不填写**       | 任务描述。         |
      
   
   
3. 填写录制回放实例信息。 
   图3回放录制实例信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075921325.png "点击放大")
   
   
   
   | 参数       | 示例                | 参数说明                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | 数据流动方向   | **本云**            | 创建任务的数据流动方向，以华为云数据库为中心进行选择，分为本云和入云。 - 本云：指源和目标数据库均为华为云数据库实例的场景。  - 入云：指目标数据库为华为云数据库实例且需将数据传入的场景。   |
   | 源数据库引擎   | **MySQL**         | 源数据库的引擎类型。                                                                                                                                                                                                                                                                               |
   | 流量文件来源   | **华为云API下载**      | 源数据库流量文件的来源。                                                                                                                                                                                                                                                                             |
   | 目标数据库引擎  | **MySQL**         | 目标数据库的引擎类型。                                                                                                                                                                                                                                                                              |
   | 网络类型     | **公网网络**          | DRS任务进行录制回放的网络类型。                                                                                                                                                                                                                                                                        |
   | 目标数据库实例  | **rds-Replaytar** | 选择目标数据库实例。 目标数据库实例名称为[数据库准备]中的rds-Replaytar。                                                                                                                                                                           |
   | 录制实例所在子网 | **默认的子网**         | 录制回放任务所在的子网。                                                                                                                                                                                                                                                                             |
   | 指定公网IP   | -                 | 选择DRS实例的公网IP，[网络准备]中创建的公网IP。                                                                                                                                                                                                                           |
      
   
   
4. 选择可用区和企业项目。 
   图4选择可用区和企业项目   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075923081.png "点击放大")
   
   
   | 参数   | 示例          | 参数说明                                                                                                                                                                    |
   |:---|:---|:---|
   | 可用区  | **可用区1**    | 选择DRS任务创建的可用区。                                                                                                                                                          |
   | 企业项目 | **default** | 对于已成功关联企业项目的用户，仅需在"企业项目"下拉框中选择目标项目。 更多关于企业项目的信息，请参见[《企业管理用户指南》](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)。 |
   | 标签   | **暂不添加**    | 对DRS任务的标识。使用标签可方便管理您的任务。                                                                                                                                                |
      
   
   
5. 单击"开始创建"。 
   等待5～10分钟后，页面显示"回放实例创建成功"表示DRS任务已创建成功。
   
   
6. 在"源库及目标库"页面，填选源库信息、目标库信息。 
   - 源库信息
     - 流量文件来源：华为云API下载
     
     - 数据库实例名称：选择[数据库准备]中的源数据库实例rds-Replaysrc
     
     - 流量类型：审计日志
     
     - 时间范围：选择[SQL流量文件准备]的审计日志时间范围
      
   
   - 目标库信息 填写选择[连接账号准备]中的连接信息。
     
   
   
   
   
7. 填写任务配置。 
   图5任务配置   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002072113817.png "点击放大")
   
   
   | 参数      | 示例         | 参数说明                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|:---|
   | SQL类型配置 | **SELECT** | 选择回放到目标数据库SQL类型，默认选择SELECT，可选SELECT、INSERT、UPDATE、DELETE、DDL。                                                                                                                                                                                                                                                                                  |
   | 回放模式    | **性能模式**   | 回放任务的模式，可以选择"性能模式"或"事务模式"。 - 性能模式：可以设置并发连接数，回放过程中将按照设置的连接数在目标库回放。不保证源库的SQL在目标库回放时是同一个线程连接回放，回放性能较好。  - 事务模式：不可以设置并发连接数，将按照源库日志中连接信息动态调整连接数，可以保证源库同一个连接中的事务SQL顺序执行。   |
   | 回放SQL过滤 | **-**      | 支持SQL内容模糊匹配过滤，将按照输入的条件信息模糊匹配回放SQL。                                                                                                                                                                                                                                                                                                             |
   | 非条件过滤   | **-**      | 该选项用于过滤SELECT，UPDATE，DELETE等类型的SQL中不包含条件的语句                                                                                                                                                                                                                                                                                                    |
   | 并发连接数   | **8**      | 设置DRS录制回放任务的回放线程数。                                                                                                                                                                                                                                                                                                                             |
   | 加速配置    | **100%**   | 设置录制回放任务在相同时间内回放SQL的总量与源库执行SQL总量的比值。                                                                                                                                                                                                                                                                                                           |
      
   
   
8. 单击"目标库信息"处的"测试连接"，测试并确定与目标库连通后，单击"下一步"。
9. 在"预检查"页面，进行回放任务预校验，校验是否可进行。 
   - 查看检查结果，如有不通过的检查项，需要修复不通过项后，单击"重新校验"按钮重新进行任务预校验。
   
   - 预检查完成后，且所有检查项结果均通过时，单击"下一步"。
   
   
   
   
10. 在"任务确认"页面，设置回放任务的启动时间。 
    图6任务启动设置   
    ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002072114613.png "点击放大")
    
    
    | 参数         | 示例       | 参数说明                                               |
    |:---|:---|:---|
    | 启动时间       | **立即启动** | 录制回放任务的启动时间可以根据业务需求，设置为"立即启动"或"稍后启动"，优选"稍后启动"。     |
    | 任务异常通知设置   | **关闭**   | 该项为可选参数，开启之后，选择对应的SMN主题。当任务状态、时延指标、数据等异常时，系统将发送通知。 |
    | 任务异常自动结束时间 | **14**   | 设置任务异常自动结束天数。设置任务异常自动结束天数后，异常且超时的任务将会自动结束。         |
       
    
    
11. 确认任务信息无误后，单击"启动任务"，提交回放任务。
12. 回放任务提交后，您可在"录制回放管理"页面，查看任务状态或者[查询回放进度]。
    
    - 在任务列表的右上角，单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000001974384644.png)刷新列表，可查看到最新的任务状态。
    
    - 对于未启动、状态为配置中的任务，DRS默认保留3天，超过3天DRS会自动删除后台资源，当前任务状态不变。当用户再次配置时，DRS会重新申请资源。
    
    
    
    
 
 #### 步骤二：查询回放进度
回放进度展示了回放过程中SQL执行情况，可以帮助您了解任务完成的情况。
1. 在"录制回放管理"界面，选中指定回放任务，单击任务名称，进入"基本信息"页面。
2. 单击"回放进度"页签，查看任务进度。 
   - 回放进度模块中，您可以查看任务状态、启动时间、SQL总量以及已回放SQL数量等信息。
   
   - 录制回放统计图支持选择查看某一时间段内的SQL总量、执行量、异常量以及慢SQL数量情况。
   
   - 录制回放异常SQL模块中，展示回放异常的SQL对象分类及数量。
   
   - 慢SQL模块支持查看SQL原始和回放耗时。
   
   - 执行SQL模块展示回放过程中正在目标库运行的SQL情况。
   
   
   
   
3. 回放完成后，可通过[查看回放报告]，了解各SQL执行情况。
 
 #### 步骤三：查看回放报告
回放报告记录了录制回放目标库中各SQL执行时间曲线，以及各SQL的执行量、执行时长等信息。
1. 在"录制回放管理"界面，选中指定回放任务，单击任务名称。
2. 在"回放报告"页签，查看当前任务的报告信息。 
   - 录制回放统计图支持选择查看某一时间段内，在目标库回放的SQL总量、执行量、异常量以及慢SQL数量情况。
     图7回放统计图   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002010973981.png "点击放大")
     
     
   
   - 慢SQL模块支持查看各类型SQL的数量和回放耗时情况。
   
   - 录制回放异常SQL模块中，展示回放异常的SQL对象分类和数量。
     图8回放SQL   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000001974254286.png "点击放大")
     
     
   
   
   
   
 
 #### 结束任务
确定回放任务不再使用后，结束DRS任务。
1. 在"录制回放管理"页面的任务列表中，选择要结束的任务，单击操作列"结束"。
2. 在弹出框中单击"是"，提交结束任务。
 
