oracle依赖导入_PostgreSQL 使用EDB Migration Protal迁移Oracle元数据

前言
233581ac548d86aef4b41f7fc9451a18.png

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

EDB Migration Protal

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

883f1ef698fe3bb9631a8e419724a72f.png

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

35147b9c2974309891066de272abf005.png

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

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

f1eaae213c2b1db21e93b956c36277c6.png

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

d45fa41ca404e41fc7bd4eaf88819de6.png

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

f0d0a4bee4c859c3b484055cb2ded69b.png

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

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

722b0027ecf4bbb8b96735aa15fa6a11.png

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

2243f420cb7f022948e3b4d77982791a.png

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

2ce52bea0fced30ba44f62817dc82bc0.png

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

151609fe268a8d8bf120519d200f6950.png

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

3c9fae808c9280eca0ead5c2a62e0278.png

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

后记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值