
# 创建实时同步任务
实时同步是指在不同的系统之间，通过DRS自主研发的同步技术，将源数据库中的对象、数据实时同步到目的数据库，并保持源与目的数据库的对象、数据最终一致。
本文以本地MySQL同步到云上RDS for MySQL为例，帮助您使用DRS实时同步功能，通过通过创建公网网络类型的全量+增量同步任务，快速完成同步上云。更多实时同步场景的使用指导请参考[同步方案概览](https://support.huaweicloud.com/realtimesyn-drs/drs_05_0005.html)。
#### 操作视频
<video controls="controls" preload="none" id="object76281955142511" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/DRS/1721906546417978942.mp4" title="创建DRS实时同步任务" poster="https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002409288953.jpg" height="400.0000" width="700.0000"></video>
#### 操作流程
| 操作步骤                                                                                              | 说明                                      |
|:---|:---|
| [准备工作](https://support.huaweicloud.com/qs-drs/drs_qs_0001.html#drs_qs_0001__section7278134716515) | 注册华为账号并开通华为云，实名认证，准备待同步数据库、数据库连接账号、网络等。 |
| [步骤一：创建同步任务]                                                  | 选择源和目标数据库，创建并启动同步任务。                    |
| [步骤二：查询同步进度]                                                | 同步过程中，可以通过查看同步进度了解数据同步完成情况。             |
| [步骤三：对比同步项]                                                  | 使用DRS提供的对比功能，来确认源和目标数据库的数据是否一致性。        |
| [结束任务]                                                        | 确定数据一致后，切换业务，结束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)。
   
- [数据库准备]
  
  在进行实时同步前，用户需要提前准备好源和目标数据库。
  - 源数据库：为用户本地自建的MySQL数据库，可参考如下信息进行准备：
    
    | 类别    | 示例            | 备注     |
    |:---|:---|:---|
    | 数据库版本 | MySQL 5.7     | -      |
    | IP地址  | 10.154.217.42 | 仅作为示例。 |
    | 端口    | 3306          | -      |
       
    
  
  - 目标数据库：为云上的RDS for MySQL数据库，用户可参考[RDS for MySQL快速入门](https://support.huaweicloud.com/qs-rds-mysql/rds_02_0047.html#section2)内容准备如下信息：
    
    | 类别      | 示例                 | 备注                                                                                    |
    |:---|:---|:---|
    | 区域      | 华北-北京四             | 选择和自己业务区最近的Region，减少网络时延。                                                             |
    | RDS实例名称 | rds-mysql          | 自定义，易理解可识别。                                                                           |
    | 数据库版本   | MySQL 5.7          | -                                                                                     |
    | 实例类型    | 单机                 | 本示例中为单机。 实际使用时，为提升业务可靠性，推荐选择主备RDS实例。                    |
    | 存储类型    | SSD云盘              | -                                                                                     |
    | 可用区     | 可用区一               | 本示例中为可用区一。 实际业务场景推荐选择主备RDS实例，此时建议将两个实例创建在不同的可用区，提升业务可靠性。 |
    | 性能规格    | 通用型 2 vCPUs \| 8GB | -                                                                                     |
       
    
   
- [连接账号准备]
  
  为了保证同步任务顺利进行，在使用DRS进行同步前，建议单独创建用于DRS任务连接的数据库账号进行同步，并需要满足一定的权限要求，才能启动实时同步任务。
  - 源数据库连接账号：
    1. 登录源数据库。
    
    2. 执行以下语句，创建用于连接的数据库用户usersrc： **CREATE USER** 'usersrc'@'%' **IDENTIFIED BY** '*password*';
       
    
    3. 执行以下语句，授予数据库用户usersrc权限： **GRANT** REPLICATION SLAVE, REPLICATION CLIENT **ON** **\*.\*** **TO** 'usersrc';
       **GRANT** SELECT, SHOW VIEW, EVENT, LOCK TABLES ON \[待同步数据库\].\* TO 'usersrc';
       
     
  
  - 目标数据库连接账号：
    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, DROP, DELETE, INSERT, UPDATE, ALTER, REFERENCES **ON** **\*.\*** **TO** 'usertar';
       
     
   
- [网络准备]
  
  在创建公网网络同步任务前，用户需要先申请弹性公网IP，并在本地数据中心进行网络相关配置使得该弹性公网IP可以访问本地数据中心数据库。
  1. 参考[申请弹性公网IP](https://support.huaweicloud.com/usermanual-eip/eip_0008.html)内容，为DRS同步任务创建弹性公网IP。
  
  2. 设置本地数据中心的防火墙。 
     请在源数据库网络白名单中加入[1]中的弹性公网IP，确保源数据库与此IP可连通。
     
     
  
  3. 本地数据中心自建数据库添加白名单。 
     本地数据中心自建数据库需要添加DRS弹性公网IP远程访问数据库的权限。
     
     
   
 #### 步骤一：创建同步任务
本步骤是针对[准备工作]中所举示例进行参数设置及介绍，如果需要了解更多实时同步的使用指导，请参考[同步方案概览](https://support.huaweicloud.com/realtimesyn-drs/drs_05_0005.html)。
1. 进入[创建DRS同步任务页面](https://console.huaweicloud.com/drs/?#/drs/sync/create/select)。
2. 填写基本信息。 
   图1基本信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039945462.png "点击放大")
   
   
   | 参数   | 示例                      | 参数说明                                                                                                                                                                                                                                                                            |
   |:---|:---|:---|
   | 计费模式 | **按需计费**                | DRS的计费模式。 - 包年/包月：一种预付费模式，即先付费再使用，按照订单的购买周期进行结算。  - 按需计费：一种后付费模式，即先使用再付费，按照实际使用时长计费。   |
   | 区域   | **华北-北京四**              | 当前任务所在的区域。                                                                                                                                                                                                                                                                      |
   | 项目   | **华北-北京四**              | 当前区域下可以选择的项目。                                                                                                                                                                                                                                                                   |
   | 任务名称 | **DRS-Synchronization** | 同步任务的名称。                                                                                                                                                                                                                                                                        |
   | 描述   | **暂不填写**                | 任务描述。                                                                                                                                                                                                                                                                           |
      
   
   
3. 填选同步实例信息。 
   图2同步实例信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002035875306.png "点击放大")
   
   
   | 参数             | 示例            | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|
   | 数据流动方向         | **入云**        | 创建任务的数据流动方向，以华为云数据库为中心进行选择，分为入云、出云和自建-自建。 - 入云：指目标数据库为华为云数据库实例且需将数据传入的场景。  - 出云：指源数据库为华为云数据库实例且需将数据传出的场景。  - 自建-自建：源和目标数据库均不为华为云数据库实例的场景。                                                      |
   | 源数据库引擎         | **MySQL**     | 源数据库的引擎类型。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 目标数据库引擎        | **MySQL**     | 目标数据库的引擎类型。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 网络类型           | **公网网络**      | DRS任务进行数据同步的网络类型。 - VPC网络：适合云上同账号同Region同VPC场景下数据库之间的同步。  - 公网网络：适合通过公网网络把其他云下或其他平台的数据库同步到目标数据库。  - VPN、专线网络：适合VPN、专线、CC、VPCEP、或者用户已打通VPC对等连接的网络场景，实现其他云下自建数据库与云上数据库同步、或云上跨Region的数据库之间的同步。   |
   | DRS任务类型        | **单AZ**       | 选择DRS任务类型，可选"单AZ"和"双AZ"。                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 目标数据库实例        | **rds-mysql** | 选择目标数据库实例。 目标数据库实例名称为[数据库准备]中的rds-mysql。                                                                                                                                                                                                                                                                                                                                         |
   | 同步实例所在子网       | **默认的子网**     | 同步任务所在的子网。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 同步模式           | **全量+增量**     | DRS的实时同步任务模式，分为全量+增量、全量、增量三种模式。                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 是否开启Binlog快速清理 | **否**         | DRS任务运行期间，是否开启目标数据库实例的Binlog快速清理。                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 指定公网IP         | -             | 选择DRS实例的公网IP，[网络准备]中创建的公网IP。                                                                                                                                                                                                                                                                                                                                                                                     |
      
   
   
4. 选择规格、可用区。 
   图3选择规格和可用区   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075995037.png "点击放大")
   
   
   | 参数   | 示例       | 参数说明                                                                                                                |
   |:---|:---|:---|
   | 规格类型 | **大**    | 选择DRS实例的规格类型，不同规格类型对应不同性能的性能上限，详细可参考[实时同步链路规格说明](https://support.huaweicloud.com/productdesc-drs/drs_01_0314.html)。 |
   | 可用区  | **可用区1** | 选择DRS任务创建的可用区。                                                                                                      |
      
   
   
5. 选择企业项目和标签。 
   图4选择企业项目和标签   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039955606.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. 在"设置同步"页面，选择数据冲突策略和同步对象，单击"下一步"。 
   图5同步模式   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002071837417.png "点击放大")
   
   
   
   | 参数                                         | 示例                       | 参数说明                                                                                                                      |
   |:---|:---|:---|
   | 流速模式                                       | **不限速**                  | 选择是否对DRS同步任务限速，默认为不限速。限速模式只对全量阶段生效，增量阶段不生效。                                                                               |
   | 增量阶段冲突策略                                   | **覆盖**                   | 选择增量同步阶段数据冲突时的处理策略，全量阶段的冲突默认为忽略。                                                                                          |
   | 过滤DROP DATABASE                            | **否**                    | 为了降低同步数据的风险，DRS提供了过滤删除数据库操作的功能。                                                                                           |
   | 对象同步范围                                     | **普通索引、增量DDL**           | 选择同步对象的范围类型。                                                                                                              |
   | 索引与表结构同时建立                                 | **否**                    | 全量阶段，是否与表结构同时建立索引。                                                                                                        |
   | DML同步                                      | **Insert、Update、Delete** | 选择需要同步的DML操作，默认都勾选。                                                                                                       |
   | Online DDL                                 | **否**                    | 对象选择是表级同步场景下，可以选择是否同步Online DDL，默认不同步。                                                                                    |
   | 数据同步拓扑  | **一对一**                  | 数据同步功能支持多种同步拓扑，您可以根据业务需求规划您的同步实例。数据同步拓扑说明可参考[数据同步拓扑介绍](https://support.huaweicloud.com/realtimesyn-drs/drs_11_0457.html)。 |
   | 增量支持DDL                                    | **默认值**                  | 选择增量阶段需要同步的DDL类型，                                                                                                         |
   | 同步对象                                       | **表级同步**                 | 选择同步对象，可根据用户用户需求选择全部对象同步、表级同步或者库级同步。                                                                                      |
      
   
   
9. 在"数据加工"页面，选择是否进行数据加工。 
   - 如果需要数据加工，可选择"数据过滤"、"附加列"或"列加工"，参考[数据加工](https://support.huaweicloud.com/realtimesyn-drs/drs_03_0035.html)章节，设置相关规则。
   
   - 本示例中选择不进行数据加工，直接单击"下一步"。
   
   
   
   
10. 在"预检查"页面，进行同步任务预校验，校验是否可进行同步。 
    - 如果存在待确认项，需要阅读并确认详情后才可以继续执行。
    
    - 如果有不通过的检查项，可参考表中内容修复不通过项后，单击"重新校验"按钮重新进行同步任务预校验。
    
    
    预检查通过率为100%时表示预检查通过。
    
    
11. 单击"下一步"。
12. 在"任务确认"页面，设置同步任务的启动时间。 
    图6任务启动设置   
    ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002076026845.png "点击放大")
    
    
    | 参数         | 示例       | 参数说明                                                 |
    |:---|:---|:---|
    | 启动时间       | **立即启动** | 同步任务的启动时间可以根据业务需求，设置为"立即启动"或"稍后启动"，优选"稍后启动"。         |
    | 任务异常通知设置   | **关闭**   | 该项为可选参数，开启之后，选择对应的SMN主题。当同步任务状态、时延指标、数据等异常时，系统将发送通知。 |
    | 任务异常自动结束时间 | **14**   | 设置任务异常自动结束天数。设置任务异常自动结束天数后，异常且超时的任务将会自动结束。           |
       
    
    
13. 确认同步任务信息无误后，单击"启动任务"，提交同步任务。
14. 同步任务提交后，您可在"实时同步管理"页面，查看任务状态。 
    - 任务状态为"启动中"时，表示任务已正常启动。
    
    - 对于未启动、状态为配置中的任务，DRS默认保留3天，超过3天DRS会自动删除后台资源，当前任务状态不变。当用户再次配置时，DRS会重新申请资源。
    
    
    
    
 #### 步骤二：查询同步进度
当任务正常启动后，您可以通过DRS提供的同步进度功能来查询数据同步的进展。DRS提供流式进度展示，帮助您在同步过程中实时了解同步进展。
1. 在"实时同步管理"界面，选中指定同步任务，单击任务名称。 
   进入"基本信息"页面。
   
   
2. 单击"同步进度"页签，查看同步进度。 
   - 同步进度：当同步项显示为100%时，表示全量同步完成（百分比是根据同步对象的数量来统计计算的）。
     图7同步进展   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002071838217.png "点击放大")
     
     
   
   - 同步明细：当"对象数目"和"已同步数目"相等时，表示该对象已经同步完成。
     图8同步进度明细   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000001960254578.png "点击放大")
     
     
   
   - 增量时延：当全量同步完成后，任务进入增量阶段，可查看增量时延。 时延 = 源库当前系统时间 - 成功同步到目标库的最新一个事务在源库的提交成功时间。
     时延为0代表源和目标瞬时一致，无新的事务需要同步。
     
   
   
   
   
 
 #### 步骤三：对比同步项
对于全量+增量迁移任务，当任务全量迁移完成进入增量阶段，并且增量时延为0时，用户可使用数据同步提供的对比功能，确认源和目标数据库的数据是否一致性。
- 对象级对比：对数据库、索引、表、视图、存储过程和函数、表的排序规则等对象进行对比。
- 数据级对比：对同步的表的行数或者表内数据进行一致性检查。
 
- [对象级对比]
  通过对象对比，可以对数据库对象完整性进行检查。
  1. 在"实时同步管理"界面，选中指定同步任务，单击任务名称。 
     进入"基本信息"页签。
     
     
  
  2. 单击"同步对比"页签。 
     进入"同步对比"信息页面。
     
     
  
  3. 单击"对象级对比"。 
     进入"对象级对比"页签。
     
     
  
  4. 单击"开始对比"。
  
  5. 等待5～10分钟，单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075870289.png)，查看各个对比项的对比结果。
     
     当"对比结果"为"一致"时，表示该对象100%同步完成。
     图9对象级对比   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039989468.png "点击放大")
     
     
     
   
- [数据级对比]
  数据库对象检查完成后，通过数据级对比，对同步数据的详细行数或者内容进行对比检查。
  1. 在"实时同步管理"界面，选中指定同步任务，单击任务名称。 
     进入"基本信息"页签。
     
     
  
  2. 单击"同步对比"页签 
     进入"同步对比"信息页面。
     
     
  
  3. 选择"数据级对比"页签。
  
  4. 单击"创建对比任务"。
  
  5. 选择对比策略，单击"是"，提交对比任务。 
     图10创建对比任务   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039831172.png "点击放大")
     
     
     | 参数     | 示例       | 参数说明                                                                                                                                                                                                                                                                                                        |
     |:---|:---|:---|
     | 对比类型   | **行对比**  | 分为行数对比和内容对比。 - 行对比：对比同步的表的行数是否一致。  - 内容对比：对比同步的表内数据是否一致。                                                               |
     | 对比策略   | **普通对比** | 选择映射对比策略，分为普通对比和多对一对比两种。 - 普通对比策略：源库中的一张表跟映射到目标库中的那张表做整表的行数比对。  - 多对一对比策略：源库中的一张表跟映射到目标库中的聚合表中对应的那部分数据做行数比对。   |
     | 对比时间   | **立即启动** | 设置对比任务启动时间，可设置为"立即启动"和"稍后启动"。                                                                                                                                                                                                                                                                               |
     | 进行数据过滤 | **关闭**   | 选择是否设置对象比对的过滤条件。开启后，可根据配置的过滤条件进行对象比对。                                                                                                                                                                                                                                                                       |
     | 对象选择   | **全部**   | 可根据具体的业务场景选择需要进行对比的对象。                                                                                                                                                                                                                                                                                      |
        
     
     
  
  6. 对比任务提交成功后，返回"数据级对比"页签。
  
  7. 单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039989500.png)刷新列表，等待对比任务完成后，可以查看对比结果。
     
     当"对比结果"为"一致"时，表示该对象在源库和目标库数据一致。
     图11行对比结果   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002076028937.png "点击放大")
     
     
     
   
 #### 结束任务
当确认源数据库数据全部同步至目标数据库后，可选择结束同步任务。
1. 在"实时同步管理"页面的任务列表中，选择要结束的任务，单击操作列"结束"。
2. 在弹出框中单击"是"，提交结束任务。
 
