#评估配置

# 创建评估任务

# 基础信息

支持点击右侧【编辑】按钮来修改基础信息。需要注意的是,编辑确认【保存】时会检查源端数据库连接用户是否满足选择的任务步骤所需的权限,权限详见:数据源权限配置。 缺失的权限会弹窗提示。

# 创建在线评估任务

创建评估任务1.png

创建评估任务2.png

# 选择评估数据库

  • 评估数据库:可选项,默认值:内置库。
    • 选择【内置库】,若表默认类型为LSC,YMP将自动在system和user表空间下挂载DATABUCKET。
    • 选择【外置库】,请确保评估数据库与迁移目标数据库版本一致,否则评估结果可能不准确,导致迁移不可用。要求数据库用户具有DBA权限。

# 选择评估对象

  • 选择评估对象:评估对象至少选择一项,可多选。
    • Oracle支持评估对象类型:用户、权限、表、约束、索引、视图、序列、物化视图、同义词、触发器、自定义类型、自定义函数、包、存储过程。
    • MySQL支持评估对象类型:表、约束、索引、视图、触发器、自定义函数、存储过程、Event。
    • DM8支持评估对象类型:序列、表、约束、索引、视图、物化视图、自定义类型、触发器、同义词、存储过程、函数、包。
    • YashanDB支持评估类型:表、序列、索引、约束、AC(访问约束)、DBLINK、视图、物化视图、同义词、存储过程、函数(自定义函数)、高级包、定时任务、触发器。

Note:

DBLINK对象迁移完成后,默认密码为yasdb_123。 如果任务配置采用MySQL模式,则会自动创建选择的DATABASE同名的SCHEMA和DATABASE,原生模式仅创建同名SCHEMA。 如果MySQL模式下,对象使用的用户超出了选择的DATABASE范围,则会因为用户不存在而不兼容。

# 选择评估范围

  • 选择评估范围:下方列表会展示源端数据库的schema名称,可以选择需要进行评估迁移的schema列表,可多选。
    • 系统schema已经被过滤,无法选择,且如果选中的schema与YashanDB系统schema同名,则也无法保存任务或进行下一步。
    • MySQL系统schema主要有4个:information_schema,MySQL,performance_schema,sys。
    • Oracle11系统schema参考配置文件application.properties中的schemaBlackList.oracle。
    • Oracle12、19、21版本在11的过滤基础上再次根据系统视图查询结果进行过滤,查询SQL为sql SELECT username FROM dba_users WHERE ORACLE_MAINTAINED = 'N';
    • YashanDB系统schema主要来自系统视图的查询结果,SQL为sql SELECT username FROM dba_users WHERE DATABASE_MAINTAINED= 'N';
    • DM8系统schema主要有4个:SYS,SYSDBA,SYSSSO,SYSAUDITOR。
    • YashanDB评估暂不支持SCHEMA名中含有特殊字符`~!@#$&*();'"<>,/|。

# 高级选项

高级选项受源端数据源类型影响,会根据源端数据源类型而展示不同的选项。

1.源端数据源类型为DM:

  • 数据源为普通用户

    • VARCHAR长度以字符为单位:可选项,默认值:否。该配置需与源端DM配置一致,可通过 SELECT NAME, VALUE, DESCRIPTION FROM v$parameter WHERE NAME IN ('LENGTH_IN_CHAR') 查询获取,VALUE为0选择【否】,为1选择【是】。

      • 选择【是】表示VARCHAR长度以字符(CHAR)为单位。
      • 选择【否】表示VARCHAR长度以字节(BYTE)为单位。
  • 是否校验失效对象:可选项,默认值:是。

    • 选择【是】会评估源端数据库当前状态为invalid状态的对象。
    • 选择【否】则不会评估invalid状态的对象。

2.源端数据源类型为Oracle:

  • 是否校验失效对象:可选项,默认值:是。

    • 选择【是】会评估源端数据库当前状态为invalid状态的对象。
    • 选择【否】则不会评估invalid状态的对象。
  • 是否忽略nologging:可选项,默认值:是。

    • 选择【是】在进行迁移评估时会去除表和索引的nologging关键字。

    • 选择【否】则不做处理。

      YashanDB的表和索引如果NOLOGGING状态没有保持统一,则在评估或者迁移的时候会失败,且修改方案均为剔除NOLOGGING关键字,因此用户可以选择是否自动过滤NOLOGGING。

  • 评估库部署模式:可选项,默认值:单机。可选集群,集群模式下带有子分区的表与物化视图将默认评估不兼容。

3.通用高级选项:

  • 手动DDL保留策略:
    • 全保留:手动改过的DDL都会保留。
    • 仅保留未变更:只保留源端DDL没有发生变化的手动修改过的DDL。
    • 不保留:手动改过的DDL全不保留。

Note:

  1. 如果评估库不是内置库,且评估库存在与评估任务选择的schema列表中同名的schema,并且这些schema不是YMP评估任务创建的,则会提示用户是否覆盖。
  2. Mysql的Event可与同Database下其他对象同名,YashanDB不支持。非同名Event目前兼容率为100%,但是其中对应的YashanDB的Job的PLSQL可能会在该Job执行时失败,因此仍需要用户确认DDL是否符合预期。

# 创建离线评估任务

创建离线评估任务.png

# 选择评估数据库

  • 评估数据库:可选项,默认值:内置库。

# 上传评估文件

评估文件说明:

文件内容建议尽可能以Create和Alter开头,不建议包含Drop、Delete等操作。文件大小不超过200MB,支持上传以下类型的文件:

  • 单个.sql文件
  • 单个.xml文件:需为MyBatis支持的Mapper XML格式。且仅当Oracle作为源端时支持xml文件的兼容性评估,当前版本存在以下约束:
    • 暂时仅支持DML语句,对于<update>标签中可能有的DDL语句,评估结果为不兼容。
    • 对于MyBatis的动态SQL标签<choose>的解析,只能拼接到第一个<when>子句的SQL内容。
    • 外部引用使用<include>标签引用后的参数标签<property>不再会自动传递。参见:评估常见问题
    • 兼容性评估时YMP会根据文件中的SQL语句自动生成对应的schema、table信息,若生成结果表与应用实际使用表相差较大,用户可手动修改目标端SQL后重新验证或者刷新报告。参见:评估常见问题
  • zip或tar压缩方式的压缩文件:只能包含一种支持的文件格式:全是.sql或全是.xml。

Note

目前表的DDL如果自动兼容,会剔除掉约束和索引信息,后续版本会持续优化。

上传文件后,点击【开始评估】按钮进行评估。若文件比较大,且文件正处于拆分过程中,终止该任务可能较为耗时。

# 操作

# 保存

该操作可保留当前配置,任务列表会保留该任务信息,之后可继续使用,此时任务状态为评估编辑中。

# 下一步:开始迁移评估

开始执行评估任务,此时任务状态为评估中。

# 迁移步骤勾选

在该页面右上角显示已选择的迁移步骤,需注意:只允许增加迁移步骤。