Ora2Pg v21.0 已发布

发布于 2020-10-13,作者:Gilles Darold
相关开源项目

法国格勒诺布尔 - 2020 年 10 月 12 日

Ora2Pg 21.0 发布

Ora2Pg 21.0 版本正式发布并公开提供下载,它是一款用于将 Oracle 数据库迁移到 PostgreSQL 的免费且可靠的工具。

此版本修复了自上次发布以来报告的多个问题,并添加了几个新功能和改进。

新功能和改进

  • 当表具有 IDENTITY 列时,向 INSERT 语句添加 OVERRIDING SYSTEM VALUE 子句。
  • 显著提高了生成关于迁移评估报告的速度,特别是对于具有大量对象的数据库。
  • 减少进度条中花费的时间。由于数据库对象的数量,我们在刷新进度条上花费了太多时间。
  • 在迁移评估报告中添加了标识列的数量。
  • 使用 HTML5 标签 details+summary 使评估详细信息报告初始隐藏。
  • 提高 BLOB/CLOB 数据导出的速度。Oracle 建议使用 LOB 块大小的倍数分批读取和写入 LOB。此块大小默认为 8k (8192)。最近的测试表明,使用更高的值(如 512K 或 4Mb)可以达到最佳性能。
  • 在单进程模式中使用 --oracle_speed 时添加进度条。
  • 当连接用户没有 DBA 权限时自动激活 USER_GRANTS。将显示警告。
  • 通过在 ora2pg 命令行调用时使用 Windows 分隔符将 stdout 重定向到文件,并改进 Windows 操作系统上的 ora2pg_scanner 端口,完成向 Windows 的移植。
  • 添加用 WHERE 子句代替 ON 重写 MySQL JOIN。
  • 将 MGDSYS(Oracle E-Business Suite)和 APEX_040000 添加到从导出中排除的模式列表中。
  • 当配置文件中未定义密码时,以交互方式提供凭据。需要安装新的 Perl 模块 Term::ReadKey。
  • 添加对 “as sysdba” Oracle 连接的支持,使用用户名 “/” 和空密码连接到本地 Oracle 实例。
  • 将 Oracle 18c 中的 PRIVATE TEMPORARY TABLE 转换为 PostgreSQL 基本临时表,仅更改 on commit 的默认行为。

新的命令行选项

  • 为 ora2pg_scanner 添加新的命令行选项:-b | --binpath DIR,用于设置 ora2pg 二进制文件所在目录的完整路径。可能仅在 Windows 操作系统上有效。
  • 添加 -r | --relative 命令行选项和 PSQL_RELATIVE_PATH 配置指令。默认情况下,Ora2Pg 使用 \i psql 命令来执行生成的 SQL 文件,如果要使用脚本执行文件之后的相对路径,启用此选项将使用 \ir。有关更多信息,请参阅 psql 帮助。

新的配置指令

  • NO_VIEW_ORDERING:默认情况下,Ora2Pg 会尝试对视图进行排序,以避免在导入嵌套视图时出现错误。如果视图数量巨大,这可能会花费很长时间,您可以通过启用此指令来绕过此排序。
  • NO_FUNCTION_METADATA:强制 Ora2Pg 不查找函数声明。如果需要,这将阻止 Ora2Pg 重写函数替换调用。除非期待函数中断其他导出,否则不要启用它。
  • LOB_CHUNK_SIZE:有关 BLOB/CLOB 导出速度改进,请参阅新功能和改进列表中的说明。
  • ALTERNATIVE_QUOTING_REGEXP:为了支持字符串字面量的替代引号机制('Q' 或 'q'),请使用文本捕获设置正则表达式以提取文本部分。此指令的值可以是分号分隔的正则表达式列表。如果要恢复字符串常量,则每个正则表达式中的捕获部分是必需的。

向后兼容性更改

  • NO_LOB_LOCATOR 的默认值现在为 1,以便从 LOB_CHUNK_SIZE 的性能提升中获益。
  • 默认启用模式编译 (COMPILE_SCHEMA 设置为 1),以加快 DDL 提取速度。
  • 更改 Ora2Pg 在具有默认值的参数之后跟随参数的行为。Ora2Pg 过去会更改参数函数的顺序,将所有具有默认值的参数放在列表的末尾,这需要函数调用重写。这已经被放弃,现在,在具有默认值的参数之后,任何没有默认值的参数都将附加 DEFAULT NULL。

有关完整的更改列表,请参阅 https://github.com/darold/ora2pg/blob/master/changelog

感谢所有贡献者,他们都已在更改日志文件中被引用。

有用的链接

  • 网站:http://www.ora2pg.com/
  • 下载1:https://github.com/darold/ora2pg/releases
  • 下载2:http://sourceforge.net/projects/ora2pg/
  • 开发:https://github.com/darold/ora2pg
  • 更改日志:https://github.com/darold/ora2pg/blob/master/changelog
  • 文档:http://www.ora2pg.com/documentation.html

  • PostgreSQL 扩展的全局临时表:https://github.com/darold/pgtt

  • PostgreSQL 扩展的 BFILE:https://github.com/darold/external_file

关于 Ora2Pg

Ora2Pg 是一款简单可靠的从 Oracle 迁移到 PostgreSQL 的工具。它由 Gilles Darold 自 2001 年开始开发,可以导出大多数 Oracle 对象(表、视图、物化视图、表空间、序列、索引、触发器、授权、函数、过程、包、分区、数据、blob、外部表等)。

Ora2Pg 可以在任何平台上运行,并以 GPL v3 许可证提供。

文档、下载和支持请访问 http://www.ora2pg.com/