更新时间:2023-12-14 gmt 08:00

步骤二:实施项目迁移-凯发k8国际娱乐官网入口

本章节向用户介绍如何实施迁移项目。使用ugo迁移,对源数据库的影响,可参见迁移对源数据库的影响

前提条件

“项目状态”“就绪”且目标库信息正确、测试连接成功。

操作步骤

  1. 在对象迁移页面,单击待迁移项目的“操作 > 迁移”
    在迁移计划页面,显示待迁移项目采集对象及分类。具体对象信息详见查看评估项目具体信息
    图1 转换计划
    • 若源库为oracle且目标库为云数据库 gaussdb的分布式时,table对象类型可单独对对象选择分布映射。
    • 当源库为goldendb、mysql(版本在8.0以下)时,不支持role对象的创建,所以ugo不对role对象进行采集且,展示role对象的数量为0。
    • 可以按照更新日期或具体对象名称进行搜索,也可依据schema、对象状态以及转换状态进行筛选。
    • 用户密码:当目标库是rds for postgresql增强版时,不支持该功能。
      • 如果要转换数据库对象user,必须设置密码才能完成转换。设置的密码将用于目标数据库上创建的所有用户对象,迁移后需要逐一手动修改用户的密码。若不转换数据库对象user,请选中并单击“跳过转换”“转换状态”列变为“跳过”,忽略转换。若需继续转换,可选择具体对象并单击“转换”
      • 建议选择ssl连接。如果选择非ssl连接,密码将在数据库连接以及sql语句中以明文形式传输,存在潜在的安全风险。
      • 密码创建完成后,在迁移过程中不支持再次修改。
      • 密码长度最少8个字符,最多32个字符。其中至少包含大写字符a-z、小写字符a-z、数字0-9和特殊字符 ~!@#$%^&*()-_= \|[{}];:,<.>/?四类字符中的三类,但不能使用空格。可重复字符不能超过3个连续字符。
    • 选择迁移对象类型:可选择需要迁移的对象类型。必须至少选择一种对象类型进行迁移。
    • 对象状态为“异常”的对象,表示源库中该对象本身存在异常,“转换状态”自动显示为“跳过”,无法转换。
    • 从2.23.t1031版本后,新建迁移任务中的对象不再有“重复”状态,原来应判定为“重复”状态的对象,现在为“正常”状态,默认进行转换和迁移。此外,版本升级后历史迁移任务中的对象,则保留“重复”状态。对象状态筛选下拉框,新建迁移任务和历史存留任务都不再包含“重复”选项。
    • 当源库为oracle且目标数据库为gaussdb时,用户若选中user对象类型并单击“跳过转换”,界面会显示提示信息:忽略user迁移后,转换配置中“用户连接”需选择“将sysadmin设置为执行gaussdb脚本的用户。”请在转换配置页面进行特性修改,否则可能会导致迁移会失败。
  2. 单击“下一步”,进入转换配置页面。

    可查看具体配置信息,如何转换配置,请见转换配置

    图2 转换配置
  3. 单击“下一步”,进入语法转换页面。
  4. 单击“启动”,进行迁移。页面显示对象类型、总数、转换成功、转换失败等信息以及转换开始时间与结束时间。
    图3 语法转换
    • 页面以进度条和百分比显示迁移进度。
    • 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。
      • 转换错误报告:该报告介绍了无法等价转换为目标库语法的源库对象详情。
      • 匿名化转换错误报告:该报告通过匿名方式介绍了无法等价转换为目标库语法的源库对象。
      • 转换风险报告:该报告介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。
      • 匿名化转换风险报告:对象信息脱敏后的转换风险报告。该报告通过匿名方式介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。
      • 转换后的sql解析失败报告:该报告介绍了无法使用目标库语法解析转换脚本的源库对象。
      • 匿名化转换后的sql解析失败报告:该报告通过匿名方式介绍了无法使用目标库语法解析转换脚本的源库对象。
    • 单击“详情”,有转换失败的对象可进入对象校正页面查看对象类型的具体信息。
    • 查看迁移历史详情信息,请见查看转换历史详情
    • 单击“暂停”,流程将被暂停,用户可以到转换历史中去查询之前执行过的迁移任务。
    • 单击“启动”,将会进行一次新的转换流程。单击“恢复”,将继续进行转换流程。

      再次单击“启动”,将再次进行语法转换,会覆盖上一次转换的全部转换数据,包含手工修改的对象,请谨慎操作。如确需重新转换,单击“确认”

  5. 单击“下一步”,对象校验页面显示待验证的schema、对象名称、对象类型等信息。
    图4 对象校正
    • 可依据具体对象名称进行搜索,也可依据schema、转换状态及迁移状态进行筛选。
    • 仅当源数据库为oracle、mysql、postgresql时,若“转换状态”“失败”,可单击具体失败项的对象名称,查看“对象迁移成功率”

      “支持迁移”“否”时,可以使用“应用筛选器”查询同样包含该语法点的其他失败对象。

    • 可对选中的具体对象单击“跳过迁移”,忽略不想验证迁移的对象。
    • 重新转换:可选择需要重新转换的对象类型或对象,进行单独重新转换,不会覆盖其他对象的sql修改。

      单击进入“重新转换”页面,选定对象后单击“重新转换”,可返回步骤3重新启动语法转换。

      mysql为源,table对象转换后结果将会展示转换拆分后的子对象create table和create index;oracle为源,table对象转换后结果将会展示转换拆分后的子对象create table和foreign_key,两者都可以选择子对象进行单独的迁移或是修改,拆分后的子对象数目不计入转换总对象数量当中。
      • 拆分子对象是为了控制转换后父类对象部分子对象的迁移,所以页面展示的子对象并不是全量子对象,如需查看全量子对象的状态和内容需点击父类对象查看详情。
      • 子对象拆分依赖ugo的转换功能,当出现解析脚本出错和转换脚本时出错的情形时无法进行转换,不会拆分子对象。
    • 父对象与其下所有子对象的状态如下:当父对象转换状态为成功,则子对象转换状态都为成功;当父对象转换状态为失败,则子对象转换状态至少存在一个失败;当父对象转换状态为手工修改,至少有一个子对象转换状态为手工修改;当父对象迁移后若迁移状态为成功,则子对象迁移状态为成功或是忽略;当父对象迁移后迁移状态若为失败,则子对象迁移状态至少存在一个失败;当子对象全被忽略迁移,父对象也将会被忽略迁移;当子对象迁移状态存在手工修改项,则父对象迁移状态也为手工修改。

      对于“迁移状态”“成功”的对象,如果重新进行转换,再次迁移和验证将出现错误“对象已存在于目标数据库上”。为避免这种情况,请手动从目标数据库中删除这些对象。若选择数据库对象类型,将重新转换选中类型下所有对象。

    • 批量语句更新:批量语句更新支持类似问题的批量搜索和修改。如何批量语句更新,请参见批量语句更新
    • 可对选中的对象进行“修改”“查看详情”
      • 单击“查看详情”,可查看对应对象的转换/迁移错误信息和源端、目标端以及比较的信息,也可以复制详细代码。
      • 单击“查看详情”:可对具体对象进行逐条手工修改。如何修改,请参见修改对象校正
    • 选择可忽略的对象并单击“跳过迁移”“迁移状态”变为“忽略”。也可以“撤销跳过”,撤销后对应状态恢复原样。
    • 迁移结果注释了一些特性,可能会有功能影响,可单击“查看详情”查看详细信息。
  6. 单击“下一步”,进入迁移验证页面。
  7. 单击“启动”,进行校验。页面以进度条和百分比显示迁移进度。

    迁移验证完成后,页面显示读取到的sql行总数与迁移成功数与失败数。

    查看校验历史详细信息,请见查看迁移历史详情

    图5 迁移验证
    • 停止验证后,会出现提示“迁移存在错误/风险,请点击查看”单击后有“警告 : 异常自动暂停”弹框提示。
    • 停止后单击“启动”,可继续进行迁移。
    • 查看空存储过程:可查看失败的对象列表和失败次数。
    • 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。mysql为源时,子对象的相关数据不会统计在迁移报告中。
      • 迁移验证报告:该报告简要介绍了迁移和验证对象的状态。
      • 迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句和错误信息。
      • 匿名化迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句、错误信息,但源库sql语句和迁移后的sql语句均以匿名的形式呈现。
    • 若有迁移失败,可单击对象类型后的“详情”,可返回对象校正页面查看对象类型的具体信息。

      迁移过程中,若ugo连接不上目标库或因网络不稳定等原因与目标库连接断开,ugo会自动重试再次迁移(默认重试10次,每次重试前等待20s),重试迁移过程会产生新的迁移历史记录。

  8. 迁移验证完成后,若有验证失败项,可返回对象校正页面,进行单独修改或批量语句更新。
分享:
网站地图