
# 创建实时迁移任务
实时迁移是指在数据复制服务能够同时连通源数据库和目标数据库的情况下，只需要配置迁移的源、目标数据库实例及迁移对象即可完成整个数据迁移过程，再通过多项指标和数据的对比分析，帮助确定合适的业务割接时机，实现最小化业务中断的数据库迁移。
本文以本地MySQL迁移到云上RDS for MySQL为例，帮助您使用DRS实时迁移功能，通过创建公网网络类型的全量+增量迁移任务，快速完成迁移上云。更多实时迁移场景的使用指导请参考[迁移方案概览](https://support.huaweicloud.com/realtimemig-drs/drs_08_0089.html)。
#### 操作视频
<video controls="controls" preload="none" id="object591741912414" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/DRS/1655258828822825496.mp4" title="创建DRS实时迁移任务" poster="https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002375767540.jpg" height="400.0000" width="700.0000"></video>
#### 操作流程
| 操作步骤                                            | 说明                                      |
|:---|:---|
| [准备工作]      | 注册华为账号并开通华为云，实名认证，准备待迁移数据库、数据库连接账号、网络等。 |
| [步骤一：创建迁移任务] | 选择源和目标数据库，创建并启动迁移任务。                    |
| [步骤二：查询迁移进度] | 迁移过程中，可以通过查看迁移进度了解数据迁移完成情况。             |
| [步骤三：对比迁移项] | 使用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, ALTER, DROP, DELETE, INSERT, UPDATE, INDEX, EVENT, CREATE VIEW, CREATE ROUTINE, TRIGGER **ON** **\*.\*** **TO** 'usertar' **WITH GRANT OPTION**;
       
     
   
- [网络准备]
  
  在创建公网网络迁移任务前，用户需要先申请弹性公网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/realtimemig-drs/drs_08_0089.html)。
1. 进入[创建DRS迁移任务页面](https://console.huaweicloud.com/drs/?#/drs/migrate/create/select)。
2. 填写基本信息。 
   图1基本信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075962041.png "点击放大")
   
   
   | 参数   | 示例                | 参数说明          |
   |:---|:---|:---|
   | 区域   | **华北-北京四**        | 当前任务所在的区域。    |
   | 项目   | **华北-北京四**        | 当前区域下可以选择的项目。 |
   | 任务名称 | **DRS-Migration** | 迁移任务的名称。      |
   | 描述   | **暂不填写**          | 任务描述。         |
      
   
   
3. 填写迁移实例信息。 
   图2迁移实例信息   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002074902125.png "点击放大")
   
   
   | 参数             | 示例            | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|
   | 数据流动方向         | **入云**        | 创建任务的数据流动方向，以华为云数据库为中心进行选择，分为入云和出云。 - 入云：指目标数据库为华为云数据库实例且需将数据传入的场景。  - 出云：指源数据库为华为云数据库实例且需将数据传出的场景。                                                                                                                                                          |
   | 源数据库引擎         | **MySQL**     | 源数据库的引擎类型。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 目标数据库引擎        | **MySQL**     | 目标数据库的引擎类型。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 网络类型           | **公网网络**      | DRS任务进行数据迁移的网络类型。 - VPC网络：适合云上同账号同Region同VPC场景下数据库之间的迁移。  - 公网网络：适合通过公网网络把其他云下或其他平台的数据库迁移到目标数据库。  - VPN、专线网络：适合VPN、专线、CC、VPCEP、或者用户已打通VPC对等连接的网络场景，实现其他云下自建数据库与云上数据库迁移、或云上跨Region的数据库之间的迁移。   |
   | 目标数据库实例        | **rds-mysql** | 选择目标数据库实例。 目标数据库实例名称为[数据库准备]中的rds-mysql。                                                                                                                                                                                                                                                                                                                                          |
   | 迁移实例所在子网       | **默认的子网**     | 迁移任务所在的子网。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 迁移模式           | **全量+增量**     | DRS的实时迁移任务模式，分为全量、全量+增量两种模式。 - 全量：该模式为数据库一次性迁移，适用于可中断业务的数据库迁移场景。如果用户只进行全量迁移时，建议停止对源数据库的操作，否则迁移过程中源数据库产生的新数据不会同步到目标数据库。  - 全量+增量：该模式为数据库持续性迁移，适用于对业务中断敏感的场景。                                                                                                  |
   | 目标库实例读写设置      | **只读**        | 迁移过程中，将目标数据库实例设置为"只读"或者"读写"状态。 - 只读：迁移中，目标数据库整个实例将转化为只读、不可写入的状态，迁移任务结束后恢复可读写状态，此选项可有效地确保数据迁移的完整性和成功率，推荐此选项。  - 读写：迁移中，目标数据库可以读写。                                                                                                                                  |
   | 是否开启Binlog快速清理 | **否**         | DRS任务运行期间，是否开启目标数据库实例的Binlog快速清理。                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 指定公网IP         | -             | 选择DRS实例的公网IP，[网络准备]中创建的公网IP                                                                                                                                                                                                                                                                                                                                                                                      |
      
   
   
4. 选择可用区和企业项目。 
   图3选择可用区和企业项目   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002038982698.png "点击放大")
   
   
   | 参数   | 示例          | 参数说明                                                                                                                                                                    |
   |:---|:---|:---|
   | 可用区  | **可用区1**    | 选择DRS任务创建的可用区。                                                                                                                                                          |
   | 企业项目 | **default** | 对于已成功关联企业项目的用户，仅需在"企业项目"下拉框中选择目标项目。 更多关于企业项目的信息，请参见[《企业管理用户指南》](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763975.html)。 |
   | 标签   | **暂不添加**    | 对DRS任务的标识。使用标签可方便管理您的任务。                                                                                                                                                |
      
   
   
5. 单击"开始创建"。 
   等待5～10分钟后，页面显示"迁移实例创建成功"表示DRS任务已创建成功。
   
   
6. 在"测试连接"页面，分别测试DRS实例与源库和目标库的连通性。 
   1. 在"源库信息"区域填写[连接账号准备]中的源库信息。
   
   2. 填写完成后，单击源库信息区域处的"测试连接"。 当出现"测试连接成功"，表示源库连接通过。
      
   
   3. 在"目标库信息"区域填写[连接账号准备]中的目标库信息。
   
   4. 填写完成后，单击目标库信息区域处的"测试连接"。 当出现"测试连接成功"，表示目标库连接通过。
      
   
   5. 单击"下一步"。
   
   
   
   
7. 在"迁移设置"页面，设置迁移模式和迁移对象后，单击"下一步"。 
   图4迁移模式   
   ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002055019185.png "点击放大")
   
   
   | 参数              | 示例       | 参数说明                                        |
   |:---|:---|:---|
   | 流速模式            | **不限速**  | 选择是否对DRS迁移任务限速，默认为不限速。限速模式只对全量阶段生效，增量阶段不生效。 |
   | 迁移增量账号及权限       | **否**    | 选择数据库迁移过程中，是否迁移增量账号。                        |
   | 迁移用户            | **否**    | 选择是否迁移源数据库中的用户。                             |
   | 过滤DROP DATABASE | **否**    | 为了降低迁移数据的风险，DRS提供了过滤删除数据库操作的功能。             |
   | 迁移对象            | **全部迁移** | 选择迁移对象，可根据用户用户需求选择全部对象迁移、表级迁移或者库级迁移。        |
      
   
   
8. 在"预检查"页面，进行迁移任务预校验，校验是否可进行迁移。 
   - 如果存在待确认项，需要阅读并确认详情后才可以继续执行。
   
   - 如果有不通过的检查项，可参考表中内容修复不通过项后，单击"重新校验"按钮重新进行迁移任务预校验。
   
   
   预检查通过率为100%时表示预检查通过。
   
   
9. 单击"下一步"。
10. 在"参数对比"页面，进行常规参数和性能参数的对比和修改。 
    - 如果用户选择不进行参数对比，或者源库和目标库参数对比一致，可跳过该步骤。
    
    - 如果源库和目标库参数对比不一致，用户可选择手动修改目标数据库参数，或者单击"一键对齐"按钮系统将帮您自动填充目标数据库的参数。
    
    
    
    
11. 单击"下一步"。
12. 在"任务确认"页面，设置迁移任务的启动时间。 
    图5任务启动设置   
    ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002018753818.png "点击放大")
    
    
    | 参数         | 示例       | 参数说明                                                               |
    |:---|:---|:---|
    | 启动时间       | **立即启动** | 迁移任务的启动时间可以根据业务需求，设置为"立即启动"或"稍后启动"，优选"稍后启动"。                       |
    | 任务异常通知设置   | **关闭**   | 该项为可选参数，开启之后，选择对应的SMN主题。当入云迁移任务即将开始计费或者迁移任务状态、时延指标、数据等异常时，系统将发送通知。 |
    | 任务异常自动结束时间 | **14**   | 设置任务异常自动结束天数。设置任务异常自动结束天数后，异常且超时的任务将会自动结束。                         |
       
    
    
13. 确认迁移任务信息无误后，单击"启动任务"，提交迁移任务。
14. 迁移任务提交后，您可在"实时迁移管理"页面，查看任务状态。 
    - 任务状态为"启动中"时，表示任务已正常启动。
    
    - 对于未启动、状态为配置中的任务，DRS默认保留3天，超过3天DRS会自动删除后台资源，当前任务状态不变。当用户再次配置时，DRS会重新申请资源。
    
    
    
    
 
 #### 步骤二：查询迁移进度
当任务正常启动后，您可以通过DRS提供的迁移进度功能来查询数据迁移的进展。DRS提供流式进度展示，帮助您在迁移过程中实时了解迁移进展。
1. 在"实时迁移管理"界面，选中指定迁移任务，单击任务名称。 
   进入"基本信息"页面。
   
   
2. 单击"迁移进度"页签，查看迁移进度以及迁移对象明细。 
   - 迁移进度：当所有迁移项显示为100%时，表示全量迁移完成（百分比是根据迁移对象的数量来统计计算的）。
     图6迁移进展   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002055044301.png "点击放大") 
   
   - 迁移对象明细：当"对象数目"和"已迁移数目"相等时，表示该对象已经迁移完成。
     图7迁移进度明细   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002054967917.png "点击放大")
     
     
   
   - 增量时延：当全量迁移完成后，任务进入增量阶段，可查看增量时延。 时延 = 源库当前系统时间 - 成功同步到目标库的最新一个事务在源库的提交成功时间。
     时延为0代表源和目标瞬时一致，无新的事务需要同步。
     
   
   
   
   
 
 #### 步骤三：对比迁移项
对于全量+增量迁移任务，当任务全量迁移完成进入增量阶段，并且增量时延为0时，用户可使用数据迁移提供的对比功能，确认源和目标数据库的数据是否一致性。
- 对象级对比：对数据库、索引、表、视图、存储过程和函数、表的排序规则等对象进行对比。
- 数据级对比：对迁移的表的行数或者表内数据进行一致性检查。
 
- [对象级对比]
  通过对象对比，可以对数据库对象完整性进行检查。
  1. 在"实时迁移管理"界面，选中指定迁移任务，单击任务名称。 
     进入"基本信息"页签。
     
     
  
  2. 单击"迁移对比"页签。 
     进入"迁移对比"信息页面。
     
     
  
  3. 单击"对象级对比"。 
     进入"对象级对比"页签。
     
     
  
  4. 单击"开始对比"。
  
  5. 等待5～10分钟，单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039107844.png)，查看各个对比项的对比结果。
     
     当"对比结果"为"一致"时，表示该对象100%迁移完成。
     图8对象级对比   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002038949872.png "点击放大")
     
     
     
   
- [数据级对比]
  数据库对象检查完成后，通过数据级对比，对迁移数据的详细行数或者内容进行对比检查。
  1. 在"实时迁移管理"界面，选中指定迁移任务，单击任务名称。 
     进入"基本信息"页签。
     
     
  
  2. 单击"迁移对比"页签。 
     进入"迁移对比"信息页面。
     
     
  
  3. 单击迁移对比须知处的"全面检查"。 
     进入"创建对比任务"页面。
     
     
  
  4. 选择对比策略，单击"是"，提交对比任务。 
     图9创建对比任务   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075187297.png "点击放大")
     
     
     | 参数     | 示例       | 参数说明                                                                                                                                                                                                                                            |
     |:---|:---|:---|
     | 对比类型   | **行对比**  | 分为行数对比和内容对比。 - 行对比：对比迁移的表的行数是否一致。  - 内容对比：对比迁移的表内数据是否一致。   |
     | 对比时间   | **立即启动** | 设置对比任务启动时间，可设置为"立即启动"和"稍后启动"。                                                                                                                                                                                                                   |
     | 进行数据过滤 | **关闭**   | 选择是否设置对象比对的过滤条件。开启后，可根据配置的过滤条件进行对象比对。                                                                                                                                                                                                           |
     | 对象选择   | **全部**   | 可根据具体的业务场景选择需要进行对比的对象。                                                                                                                                                                                                                          |
        
     
     
  
  5. 对比任务提交成功后，返回"数据级对比"页签。
  
  6. 单击![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002075148697.png)刷新列表，等待对比任务完成后，可以查看对比结果。
     
     当"对比结果"为"一致"时，表示该对象在源库和目标库数据一致。
     图10行对比结果   
     ![](https://support.huaweicloud.com/qs-drs/zh-cn_image_0000002039566914.png "点击放大")
     
     
     
   
 #### 结束任务
当确认源和目标数据一致后，可以选择割接业务，待业务割接完成且正常运行后，可选择结束迁移任务。
1. 在"实时迁移管理"页面的迁移列表中，选择要结束的迁移任务，单击操作列"结束"。
2. 在弹出框中单击"是"，提交结束任务。
 
