绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
PostgreSQL 使用EDB Migration Protal迁移Oracle元数据
2022-03-30 14:54:34

前言

近把10几套数据库从Oracle迁移到了PostgreSQL。迁移过程中使用的工具主要是ora2pg和 dataX,迁移结构时还会使用亚马逊的 AWS schema Conversion Tool工具,但总感觉有些缺陷,因此也就想到了尝试 EDB PostgresMigration Protal工具的想法。确切地说,是一颗躁动的心。

EDB Migration Protal

访问网站https://migration.enterprisedb.com/,您需要注册。注册完毕之后登录。登陆后的件事就是下载edb_ddl_extractor.sql脚本,它的主要功能是在 Oracle中导出结构。

把下载的脚本上传到你的Oracle服务器,然后执行它。运行时需要输入三个参数,即要导出的模式名,导出的路径,是否需要导出依赖对象。如下图所示:

不得不说这个脚本还挺不错的,可以从Oracle schema导出元数据。在/tmp下您可以看到导出的 Oracle脚本。

再返回到刚才的网页,创建新项目,上传脚本,选择相应的数据库版本,这里大的问题是,我们只能选择转换到EDB Postgres Advanced Server,这与我们使用的原生PG有些不同。这是一个企业级版本,提供了许多与 Oracle兼容的功能。具体请参阅https://www.enterprisedb.com/compare-postgres-databases

在点完 create& assess后,出现以下界面,您将看到,能够实现直接转换兼容性达到了99%。

单击 report可进一步了解对象转换的细节。

比如我的这个 schema,总共有1083个对象,523个可以直接转换,555个可以自动转换和修复,还有5个无法转换。

下一步,我们可以修改有问题的地方。修改之后,点 Reassess可以进行验证。这里有一个做的比较棒的地方,首先,它会提示您代码中存在错误,例如,当您看到一个不兼容的函数时,您可以看到它的右下脚 repaired。它可以帮助你进行修复和查找,右侧为它的在线知识库,能帮助您找到可以替代的函数。不需要你再到处找资料

但这里的 dump函数,知识库没有。但这并不重要,毕竟我完成了99%的迁移工作。单击右侧的COMMON FAILURURES,可以看到在转换中出现失败的点。

完成所有 fix后,就可以执行导出操作了。按一下Migrate to.....

选择Existing on-premise EDB Postgres Advanced Server,点击Next。

在选择指定 Schema确认无误之后,再次点击 Next,此时您就可以把修改好的脚本导出来。

在自己的服务器上导入下载的脚本,就实现了从Oracle把结构迁移到PostgreSQL了。剩下工作是使用工具迁移数据。

后记

EDB Migration Protal工具看起挺适合我们使用。但一个大问题是,它指定的版本并非原生的PostgreSQL,而是其自己的EDB Postgres Advanced Server。如果您在本地使用 EDB PostgresAdvanced Server版本,那么没有任何问题。若您正在使用原生PG,则估计还需要再次处理兼容性问题。


分享好友

分享这个小栈给你的朋友们,一起进步吧。

EDB Postgres
创建时间:2022-03-30 14:51:45
EDB Postgres
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • gaokeke123
    专家
戳我,来吐槽~