ITPub博客

首页 > 数据库 > 数据库开发技术 > Ora2Pg:Oracle/MySQL迁移到PostgreSQL

Ora2Pg:Oracle/MySQL迁移到PostgreSQL

原创 数据库开发技术 作者:BUAA_dxy 时间:2023-12-11 21:00:00 0 删除 编辑

Ora2Pg 是一个用于将 Oracle 或者 MySQL 数据库迁移到 PostgreSQL 的免费工具。

官方地址:http://ora2pg.darold.net

Ora2Pg 通过连接源端数据库,自动扫描并且提取数据库的结构和数据,然后生成相应的 SQL 脚本。这些脚本可以用于将数据库结构和数据导入 PostgreSQL 之中。

Ora2Pg 可以用于各种场景,小到 Oracle 数据库的反向工程,大到大型企业数据库迁移,或者简单地将一些 Oracle 数据复制到 PostgreSQL 数据库。它非常简单易用,甚至不需要任何 Oracle 数据库的相关知识,只需要提供连接到 Oracle 数据库的配置参数。

该工具支持以下功能:

  • 导出完整的数据库模式(表、视图、序列、索引),包括唯一建、主键、外键以及检查约束。

  • 导入用户/用户组的授权/权限。

  • 导出范围/列表/哈希分区以及它们的子分区。

  • 导出指定的表(通过指定表名)。

  • 将 Oracle 模式导出为 PostgreSQL 8.4+ 模式。

  • 导出预定义的函数、触发器、过程、包以及包体。

  • 导出表中的数据,支持添加 WHERE 条件导出指定数据。

  • 支持将 Oracle BLOB 对象导出为 PG BYTEA 数据。

  • 将 Oracle 视图导出为 PG 中的表。

  • 导出 Oracle 用户定义类型。

  • 提供一些基本的 PLSQL 代码到 PLPGSQL 代码的转换。

  • 支持各种平台。

  • 将 Oracle 数据表导出为 FDW 外部表。

  • 导出物化视图。

  • 显示关于 Oracle 数据库的详细报告。

  • Oracle 数据库迁移成本评估。

  • Oracle 数据库迁移难度评估。

  • 从文件中迁移 PL/SQL 代码的成本评估。

  • 从文件中迁移 Oracle SQL 查询的成本评估。

  • 生成用于 Pentaho Data Integrator(Kettle)的 ktr 文件。

  • 将 Oracle Locator 和空间几何图形数据导入 PostGIS。

  • 将 DBLINK 导出为 Oracle FDW。

  • 将 SYNONYMS 导出为视图。

  • 将 DIRECTORY 导出为外部表或者 external_file 插件的目录。

  • 与 Oracle 数据库类似的完整 MySQL 导出。

  • 通过多个 PostgreSQL 连接并发处理多个 SQL 命令。

  • 执行 Oracle 与 PostgreSQL 数据库之间的差异测试。

  • MySQL/MariaDB 以及 Microsoft SQL Server 数据库迁移。

Ora2Pg 由一个 Perl 脚本(ora2pg)以及一个 Perl 模块(Ora2Pg.pm)组成,唯一需要做的事情就是修改它的配置文件 ora2pg.conf,设置连接 Oracle 数据库的 DSN 和一个可选的模式名称。完成之后,只需要设置导出的类型:TABLE(包括约束)、VIEW、MVIEW、TABLESPACE、SEQUENCE、INDEXES、TRIGGER、GRANT、FUNCTION、PROCEDURE、PACKAGE、PARTITION、TYPE、INSERT 或 COPY、FDW、QUERY、KETTLE 以及 SYNONYM。

以下是一个 Oracle 数据库迁移报告示例。

默认情况下,Ora2Pg 导出一个文件,可以通过 psql 客户端将文件加载到 PostgreSQL 数据库;但是也可以在配置文件中设置一个数据库的 DSN,直接导入 PostgreSQL 数据库。通过 ora2pg.conf 中的配置选项,可以控制导出的内容和方式。

Ora2Pg 尽量自动将 Oracle 数据库转换为 PostgreSQL 数据库,但是仍然需要手动完成某些工作。Oracle 特定的 PL/SQL 代码,包括函数、过程、包和触发器都需要进行检查,确认转换之后能够符合 PostgreSQL 语法标准。

下一篇我们将会介绍 Ora2Pg 的安装和使用。

原文作者:SQL编程思想;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
《SQL编程思想》作者,专注于数据库领域知识的分享。

注册时间:2021-08-26

  • 博文量
    443
  • 访问量
    546909