在使用 YMP 工具进行 Oracle 数据库迁移至 YashanDB 时,有用户遇到了不兼容的授权语句问题,导致迁移评估任务中断。别担心,这种情况处理起来非常简单,下面带你快速了解原因及解决方法。
一、问题现象
在迁移评估过程中,出现以下不兼容语句提示:
grant execute on sys.dbms_stats to user1;
导致迁移任务报告不兼容,需要人工干预。
二、风险与影响
迁移过程中产生不兼容项,需要手动确认或处理;
初次接触的用户可能误以为迁移失败,增加排查成本。
三、问题原因分析
出现这个问题的原因在于:
在 Oracle 中,DBMS_STATS 包属于 SYS 用户下,访问时通常需要显式授权;
而在 YashanDB 的实现中,DBMS_STATS 并不属于 SYS 用户;
同时,在 YashanDB 中,调用 DBMS_STATS 功能本身不需要额外授权。
因此,原本在 Oracle 中必要的授权操作,在 YashanDB 环境下变成了无效语句,自然导致迁移工具识别为不兼容。
四、解决方法与规避建议
遇到这种情况,处理非常简单:
直接删除迁移脚本中这一行 grant execute on sys.dbms_stats to user1;;
移除后继续迁移,不影响功能使用,也不会影响数据一致性。
无需其他特殊处理。
五、适用范围说明
该问题影响 YMP 23.2.1.7 及之前版本;
后续版本可能会优化对这一特性自动兼容。
六、小结建议
在迁移 Oracle 至 YashanDB 时,注意授权类 DDL 语句的兼容性;
类似对 DBMS_STATS、DBMS_LOB 等系统包的授权操作,通常在崖山无需显式授权;
迁移过程中遇到不兼容项,建议仔细阅读提示,合理判断是否确实需要保留。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。