
# 阶段三：迁移实施
以某企业业务上云为例，业务上云迁移技术选型方案如下所示：
图1迁移实施   
![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001941569734.png)
#### 主机迁移实施
主机迁移实施服务是一种P2V/V2V迁移服务，可以把X86物理服务器或者私有云、公有云平台上的虚拟机迁移到华为云弹性云服务器上，从而帮助用户轻松地把服务器上的应用和数据迁移到华为云。
主机迁移服务支持市场上主流的云服务商，同时也支持将本地服务器、物理服务器、VM虚拟机等迁移到华为云弹性云服务器、云耀云服务器上。原则上只要是x86架构的服务器都可以通过SMS服务迁移到华为云。
迁移技术方案如下图：
图2迁移技术方案   
![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001968608697.png)
实施步骤如下：
1. 用户在源端服务器上安装迁移Agent。
2. 源端服务器上的迁移Agent向主机迁移服务注册自身连接状态并将源端服务器信息上报到主机迁移服务，完成迁移可行性检查。
3. 用户在主机迁移服务控制台设置目的端并开始迁移。
4. 迁移Agent获取并执行主机迁移服务发送的迁移指令。
5. 迁移源端服务器系统盘。
6. 迁移源端服务器数据盘。
7. 启动目的端。
#### 数据库迁移实施
根据调研评估结果选择合适的迁移方案选择云上同样的数据库、其他更高性能数据库、云上自建数据库;
迁移方式的选择，有手动迁移(如mysqldump等)、数据库自带的专业迁移工具、华为云专业迁移工具/服务。下面介绍华为云专业迁移工具使用方法。
数据复制服务（Data Replication Service，简称DRS）是一种易用、稳定、高效、用于数据库实时迁移和数据库实时同步的云服务。
数据复制服务围绕云数据库，降低了数据库之间数据流通的复杂性，有效地减少了数据传输的成本。
通过数据复制服务快速解决多场景下，数据库之间的数据流通问题，以满足数据传输业务需求。
技术方案介绍：
- 实时迁移 实时迁移是指在数据复制服务能够同时连通源数据库和目标数据库的情况下，只需要配置迁移的源、目标数据库实例及迁移对象即可自动完成整个数据迁移过程。
  实时迁移支持多种网络迁移方式，如：公网网络、VPC网络、VPN网络和专线网络。通过多种网络链路，可快速实现跨云平台数据库迁移、云下数据库迁移上云或云上跨区域的数据库迁移等多种业务场景迁移。
  特点：通过增量迁移技术，能够最大限度允许迁移过程中业务继续对外提供使用，有效的将业务系统中断时间和业务影响最小化，实现数据库平滑迁移上云，支持全部数据库对象的迁移。
  图3实时迁移   
  ![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001941410458.png) 

- 实时同步 实时同步是指在不同的系统之间，将数据通过同步技术从一个数据源复制到其他数据库，并保证数据的一致性，实现关键业务的数据实时流动。
  实时同步不同于迁移，迁移是以整体数据库搬迁为目的，而实时同步是维持不同业务之间的数据持续性流动。
  常用场景：实时分析，报表系统，数仓环境。
  特点：实时同步功能聚焦于表和数据，并满足多种灵活性的需求，例如多对一、一对多，动态增减同步表，不同表名之间同步数据等。
  图4实时同步   
  ![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001968488953.png)
  实施步骤如下：
  1. 权限准备
     - 源数据库权限设置
     
     - 目标数据库权限设置
      
  
  2. 网络准备
     - 使用公网网络进行迁移，该方式下的数据迁移过程较为方便和经济
     
     - 安全规则准备：源数据库的白名单设置；目标数据库安全组规则设置
      
  
  3. 其他事项准备 由于迁移过程不会迁移Oracle的用户信息以及相关参数，需要自行将上述信息导出后手动添加到目标端云数据库GaussDB(for MySQL)中
     
  
  4. 在"实时迁移管理"页面，单击"创建迁移任务"，进入创建迁移任务页面。
  
  5. 在"迁移实例"页面，填选区域、项目、任务名称、描述、迁移实例信息，单击"开始创建"。
  
  6. 在"源库及目标库"页面，迁移实例创建成功后，填选自建DNS服务配置、源库信息和目标库信息，单击"源库和目标库"处的"测试连接"，分别测试并确定与源库和目标库连通后，勾选协议，单击"下一步"。
  
  7. 在"迁移设置"页面，设置迁移用户和迁移对象，单击"下一步"。
  
  8. 在"预检查"页面，进行迁移任务预校验，校验是否可进行迁移。
  
  9. 进入"参数对比"页面，进行参数对比。
  
  10. 在"任务确认"页面，设置迁移任务的启动时间、任务异常通知设置、SMN主题、时延阈值、任务异常自动结束时间，并确认迁移任务信息无误后，单击"启动任务"，提交迁移任务。
  
  11. 迁移任务提交后，您可在"实时迁移管理"页面，查看并[管理自己的任务](https://support.huaweicloud.com/realtimemig-drs/drs_04_0010.html)。
   
#### 存储数据迁移实施
存储数据迁移服务提供将数据从线下、其他云厂商平滑地迁移到目标华为云，也可以在华为云不同账号之间进行灵活的数据迁移,并支持多任务并行、数据增量复制、数据对比。
表1不同工具选型对比 
| **迁移工具**     | **使用场景**                                                    | **说明**                            | **备注**                          |
|:---|:---|:---|:---|
| 对象存储迁移服务 OMS | 将其他公有云上对象存储数据迁移至华为云，或华为云上跨账号、跨地域、同地域对象存储数据迁移                | 只支持对象存储服务，无法迁移其他数据，目标端只能是华为云OBS服务 | 支持第三方云平台的对象存储数据迁移至华为云           |
| 云数据迁移 CDM    | 批量数据迁移服务，CDM围绕大数据迁移上云和智能数据湖解决方案，提供了简单易用的迁移能力和多种数据源到数据湖的集成能力 | 针对大数据场景下的迁移工具，同时也支持迁移到OBS以及数据库的迁移 | 关系型数据库迁移建议用DRS代替，对象存储迁移建议用OMS代替 |
| 数据快递服务 DES   | 支持的数据类型不限，主要是针对数据量较大TB（10\~100）级数据                          | 可节约传输成本，只能是离线数据                   | 需要专门硬件，迁移周期较长                   |
   
以对象存储迁移为例，存储数据迁移方案：
- 对象存储迁移介绍 华为云对象存储迁移服务OMS是一种线上数据迁移服务，可以将其他云服务商对象存储服务中的数据在线迁移至华为云的对象存储服务（Object Storage Service，OBS）中，也可以在对象存储OBS之间进行灵活的数据迁移。本案例以华为云上不同Region之间的OBS数据迁移。
  使用华为云对象存储迁移服务，只需在控制台填写源端数据地址和目的端OBS地址信息，并创建迁移任务或创建迁移任务组即可。
  对象存储迁移服务暂不支持迁移多版本的对象存储数据。
  

- 对象存储迁移流程
  图5对象存储迁移流程   
  ![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001941569738.png)
  流程说明：
  1. OMS服务请求获取一定数量的源端对象列表。
  
  2. 源端响应对象列表。
  
  3. OMS服务请求获取源端对象元数据。
  
  4. 源端响应对象元数据。
  
  5. OMS服务请求获取目的端对象元数据。
  
  6. 目的端响应对象元数据。
  
  7. 根据对象元数据判断对象是否需要迁移。
  
  8. OMS服务请求获取源端对象数据。
  
  9. 源端响应对象数据。
  
  10. OMS服务将对象数据写入目的端。
  
  11. 目的端响应写入结果。
  
  12. OMS服务请求获取源端对象元数据。
  
  13. 源端响应对象元数据。
  
  14. OMS服务请求获取目的端对象元数据。
  
  15. 目的端响应对象元数据。
  
  16. 通过元数据校验数据的完整性和一致性。
  
  17. 重复步骤3\~16，完成[步骤1]中获取的全部对象迁移工作。
  
  18. 重复步骤1\~17，完成迁移任务中的全部对象迁移工作。
   
- 对象存储迁移实施详细步骤
  图6对象存储迁移实施详细步骤   
  ![](https://support.huaweicloud.com/icsscmsfe-cmgrt/zh-cn_image_0000001968608701.png)
  1. 创建源端和目的端的访问密钥（AK/SK）。
  
  2. 在对象存储服务中创建用于存放迁移数据的桶。
  
  3. 在对象存储迁移服务中创建迁移任务，开始迁移。
  
  4. 在对象存储迁移服务中检查迁移任务的结果。
     - 迁移任务成功，迁移完成。
     
     - 迁移任务失败，查看失败详情并尝试重启。
      
   
 
