
# 数据库迁移和验证
#### 操作场景
创建迁移项目完成后，启动迁移项目，选择需要迁移对象，根据迁移风险项配置转换方案，启动语法转换后，UGO服务会将源库的SQL语法一键转换成目标库语法，转换失败的语法支持手工进行校正，修改完成后，迁移验证阶段，在目标数据库执行，完成源库对象到目标库的迁移，查看迁移进度和详情来确认迁移结果。
数据库迁移验证为五个步骤：
- 步骤一：[转换配置]。
- 步骤二：[选择对象迁移（可选）]。
- 步骤三：[启动语法转换]。
- 步骤四：[启动对象迁移验证]。
- 步骤五：[校正迁移失败对象]。
 
 #### 转换配置
1. [登录UGO控制台。](https://console.huaweicloud.com/ugo/#/console/dashboard)
2. 单击左侧导航栏"结构迁移 \> 对象迁移"。
3. 在对象迁移页面，单击待迁移项目的"操作 \> 迁移"，进入"语法转换配置"页面。 
   图1设置转换配置   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002626389840.png "点击放大")
   - 设置转换配置参数。有两种方式：
     - 默认情况下，使用默认模板，在各个转换配置项中单击"操作 \> 编辑"，查看配置详情，根据实际使用场景进行详细设置。
     
     - 优先最大化迁移成功率的场景下，可在"基线模板"下拉框选择最大兼容性模板，并根据实际使用场景进行微调。
      
   
   
   
   
4. （可选）单击"表空间映射"，进入"表空间"页面。 
   若需添加表空间映射关系，可选择需要的源数据库表空间和对应的目标数据库表空间，单击"映射表空间"。
   ![](https://support.huaweicloud.com/qs-ugo/public_sys-resources/note_3.0-zh-cn.png)
   以下链路支持表空间映射功能。
   - Oracle到GaussDB
   
   - Oracle到PostgreSQL
    
   
   
5. （可选）单击"标签"，进入"标签"页面。 
   若需添加标签，可单击"编辑标签"，在"编辑标签"弹出框中，单击"添加标签"，输入标签的键和值。
   
   
 
 #### 选择对象迁移（可选）
1. 单击"下一步"，进入"语法转换"页面。
2. 下划进入"对象列表"页面，选择需要转换和迁移的对象。可以按照"全部时间"或"具体对象名称"进行搜索，也可依据"Schema"、"对象状态"以及"转换对象"进行筛选。 
   图2待启动转换   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002626549762.png "点击放大")
   - 界面选取转换对象。
     - 单击"全选"或者"取消全选"所有对象是否全部选中或者取消选中。
     
     - 单击Schema前的复选框，勾选转换的具体的对象，单击"关闭转换"或者"开启转换"，选择对象是否迁移，支持批量操作。可通过对象名称、对象状态等进行过滤筛选。
      
   
   - 只对选中的对象转换，单击"转换选中对象"，弹出"转换选中对象"页面，单击"确认"，选中的对象进行转换。
   
   - 使用配置策略选取转换对象，具体参考[配置策略](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0034.html#section4)。
   
   
   
   
3. （可选）设置GaussDB数据分布方式。 
   - 对象类型为TABLE时可设置数据分布方式，参见[表对象的分布映射](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0034.html#section6)。
   
   
   
   
 
 #### 启动语法转换
1. 进入"转换任务"页面，单击"启动"，进行语法的转换。 
   图3语法转换   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002656669179.png "点击放大")
   - 转换完成后单击"转换报告"，进入"转换报告"页面，可查看下载最近一次转换报告、下载报告、以及转换历史详情。
   
   
   
   
2. 语法转换完成后，可查看语法转换历史记录和转换详情，参见[查看语法转换历史详情](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0034.html#section7)。
   
   - 若语法转化完成，需要修改转换方案，参见[转换配置]重新配置。
   
   
   
   
3. （可选）语法转换完成后，若有转换失败对象，可进行单独语法转换修改并直接迁移，具体参考[步骤4 单独迁移转换失败对象](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0021.html#section3)。
 
 #### 启动对象迁移验证
1. 单击"下一步"，进入"迁移验证"界面。 
   图4迁移任务   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002656672861.png "点击放大")
   进入"迁移任务"页面，单击"迁移验证配置"，弹出"迁移验证配置"页面
   图5迁移验证配置   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002656792819.png "点击放大")
   - 转换失败对象是否迁移：
     - 不勾选：默认"不勾选""迁移转换失败对象"，转换失败对象不参与迁移任务。
     
     - 勾选："勾选""迁移转换失败对象"，转换失败对象参与迁移任务。
      
   
   - 用户连接：
     - 默认"勾选""将数据库连接用户设置为执行GaussDB脚本的用户"，因此各个schema的owner为数据库连接用户。若"勾选""将对象所有者设置为执行GaussDB脚本的用户"，则各个schema的owner为schema自己。
      
   
   - 修改用户密码：
     - 当待转换对象中包含USER对象时，需要为用户设置统一的密码，设置的密码将用于目标数据库上创建所有用户对象，迁移后需要逐一手动修改用户的密码。
      
   
   
   
   
2. 单击"启动"开始进行迁移验证，开始将对象迁移至目标数据库中。 
   迁移成功：进入"对象列表"页面，"迁移状态"标记为"成功"，可登录目标库查看迁移对象。
   迁移失败：进入"对象列表"页面，"迁移状态"标记为"失败"，单击失败对象后的"对象校正"，跳转至[校正迁移失败对象]，重新进行对象的手工修改并迁移验证。
   
   
3. 迁移完成后，单击"迁移报告"，弹出"迁移报告"页面： 
   图6迁移报告   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002626393554.png "点击放大")
   - "最近一次迁移报告"页面，显示最近一次迁移项目的详细信息，包括对象类型、总数、迁移成功、迁移失败、剩余量等信息。当在"迁移验证配置"中设置了不迁移转换失败对象时，还会展示"转换失败不迁移"，以及迁移成功率等信息。
   
   - "迁移历史"页面，以倒序方式显示迁移历史记录，包括序号、总数、迁移成功、迁移失败、迁移状态、开始时间、结束时间，可以单击"操作\>详情"查看详细信息。
    
   
   
4. 迁移失败对象全部修改完并迁移到目标数据库，迁移任务完成。
 
 #### 校正迁移失败对象
1. 迁移验证完成后，若有迁移失败项，下划到"对象列表"页面，进行单独修改并直接迁移或批量语句更新。 
   图7迁移验证失败   
   ![](https://support.huaweicloud.com/qs-ugo/zh-cn_image_0000002626553456.png "点击放大")
   - 界面选取迁移对象。
     - 单击"全选"或者"取消全选"所有对象是否全部选中或者取消选中。
     
     - 单击Schema前的复选框，勾选迁移的具体的对象，单击"开启迁移"或者"关闭迁移"，选择对象是否迁移，支持批量操作。可通过对象名称、对象状态等进行过滤筛选。
      
   
   
   ![](https://support.huaweicloud.com/qs-ugo/public_sys-resources/note_3.0-zh-cn.png)
   - 选择可忽略的迁移对象并单击"关闭迁移"，"迁移状态"变为"忽略"。也可以"开启迁移"，撤销后对应状态恢复原样。
    
   
   
2. 单击"批量语句更新"，支持类似问题的批量搜索和修改。如何批量语句更新，请参见[批量语句更新](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0021.html#section2)。
3. 单条迁移失败对象修改并迁移验证，参考[步骤5 单独迁移迁移失败对象](https://support.huaweicloud.com/usermanual-ugo/ugo_03_0021.html#section3)。
 
