#评估任务
# 1. 评估时部分对象未在评估范围之内
物化视图 : 还在创建过程中,等待其写入视图或者手动执行(ALTER SYSTEM FLUSH BUFFER_CACHE
; 不建议,耗时过长)。
索引 :LOB类型索引本身为LOB类型列自动生成,不在评估范围内。
# 2. 在刷新评估报告时遇到报错信息为:“YAS-00004 feature "DROP TYPE FORCE with table dependents" has not been implemented yet"
连接内置库,删除使用自定义类型的表,重新刷新报告即可。
# 3. 评估结果约束报错信息为:“YAS-02206 specified index does not exist or cannot be used to enforce the constrain”
检查索引是否存在,如果索引存在则查看约束使用列是否与索引一致,如果数量不一致则需要根据业务需要对索引或约束的列修改使其保持一致。
# 4. 评估阶段故障和解决方式
故障原因 | 表现形式 | 解决方法 |
---|---|---|
YMP进程异常中断 | 工具界面打不开 | 重启YMP → 重新评估 |
源库进程异常中断 | 工具报错timeout | 任务失败 → 重新评估 |
内/外置库进程异常中断 | 工具界面全部不可用 | 重启数据库 →重启YMP →重新评估 |
内/外置库数据故障无法重启 | 界面所有数据丢失 | 重新部署安装YMP → 重新新建任务开始评估 |
# 5. 索引状态为UNUSABLE,主键状态为ENABLE,评估时先创建索引,再创建主键,则主键无法成功,导致不兼容。
找到主键依赖的索引,将其状态改为USABLE,重新刷新报告即可。
# 6. 评估或迁移报告过大,导致无法下载,日志中有“Java heap space”相关报错。
修改YMP配置文件application.properties中参数ymp_memory
,调节内存限制大小(默认是物理内存的50%),然后重启YMP服务(具体操作:到YMP的安装路径下,执行sh ymp.sh restart
或sh ymp.sh restartnodb
),再重新下载报告。
# 7. 下载评估或迁移报告失败,弹出失败页面。
对象数量越多,报告越大,下载或预览报告速度越慢;如果上一份报告没有下载/预览完成,就刷新页面重新点击下载/预览,则会返回失败页面;耐心等待上一份报告下载或预览完成即可。
# 8. DM在建表时自动生成的索引评估均不兼容,报错信息为:“YAS-04225, invalid word CLUSTER”。
首先点击对象详情,随后点击评估结果选择不兼容并确定,勾选详情框左下角全选所有选项,最后点击页面右上方刷新报告,等再次评估结束后即可进入迁移配置阶段。
# 9. YMP不支持对PLSQL做任何语法、大小写转换,对于MySQL/DM,PLSQL内有小写对象名且没有双引号时,评估会失败报错找不到该对象。
这种情况下,需要用户手动给PLSQL中小写对象名字添加双引号。
# 10. 携带LOCAL(PARTITION xxx TABLESPACE "xxx")的索引评估转换后LOCAL里的信息全部丢失。
其受数据库限制,做数据迁移时容易受数据影响导致分区数和索引DDL定义的分区数不一致,迁移索引无法成功,因此将全部LOCAL信息在转换时移除。
# 11. Mybatis Mapper XML文件评估结果中,使用refid的引用SQL没有自动进行参数替换,见下图。
受限于Mybatis解析能力,在解析SQL之前有对$符号做替换#,对于传入的参数,未自动映射,用户可手动修改目标端SQL,以达到评估兼容性目的。 例如:
# 12. Mybatis Mapper XML文件评估结果中,因为SQL自身问题(SQL写错,中文逗号等)评估不兼容,修改DDL后验证或者刷新报告时,提示”YAS-02012,table or view does not exist“。
SQL自身有问题(SQL写错,中文逗号等),评估前并不能解析到对应的表名,在刷新时或者验证也不会再去改动目标端SQL,用户可以在SQL语句前加上建表语句,尽量和真实环境保持一致后进行验证或者刷新评估报告。
# 13. Mybatis Mapper XML文件评估结果中,即使有了自动生成的建表语句,评估提示中还是有”YAS-02012,table or view does not exist“。
自动生成的schema或者table是根据SQL解析出来的例子,并不保证一定和XML应用的实际表保持一致,如果在评估结果中看到表不存在报错,用户可以手动修改目标端SQL中的建表语句,尽量和真实环境保持一致后进行验证或者刷新评估报告。
例如:
# 14. Mybatis Mapper XML文件评估结果中,不兼容提示字段和SQL语句中使用的函数、类型不匹配的错误,例如:”YAS-00014 illegal conversion from DATE to INTEGER“、”YAS-00007 no mul method for DATE INTEGER“、”YAS-04401 data type INTEGER expected, but DATE got“等。
原因和13一样,用户可以手动修改目标端SQL中的建表语句的字段类型,尽量和真实环境保持一致后进行验证或者刷新评估报告。 参考:
# 15. ARM机器下JDK8环境部署的YMP,源端使用Oracle做源评估时,评估进度很慢,使用数据源测试连接时,响应时间也很慢。
当我们排除网络、防火墙问题后,确定只是YMP使用时连接慢的话,可能原因是YMP部署环境的JDK版本太低,和Oracle驱动兼容性问题。
解决方案:升级环境的JDK到11版本,重启YMP后重新评估。
如果问题还存在,请联系技术人员支持排查。