Ora2Pg v22.0 和 22.1 版本发布

发布于 2021-07-05 作者:Gilles Darold
相关开源

法国格勒诺布尔 - 2021 年 7 月 2 日

Ora2Pg

Ora2Pg 22.0 版本已正式发布,该版本是一个免费且可靠的工具,用于将 Oracle 数据库迁移到 PostgreSQL,并可公开下载。

此版本修复了过去三个月报告的一些问题,并添加了一些新功能和改进。版本 22.1 是一个维护版本,旨在扩展通过 oracle_fdw PostgreSQL 扩展进行数据导出的功能,以支持使用公共模式且不保留大小写的迁移。

  • 当设置 FDW_SERVER 且导出类型为 COPY 或 INSERT 时,添加使用 oracle_fdw 导出数据的功能。完全支持使用 -P-J 的多进程,但在这种情况下,选项 -j 没有用处。还支持某些列或数据类型的布尔转换。实际上,期望它的工作方式与没有 oracle_fdw 的数据迁移完全相同。这可以将数据迁移速度提高 30% 到 40%,特别是对于 BLOB 导出。感谢 MigOps Inc 提供的补丁。

  • 通过避免 Oracle 目录表之间的连接,提高导出大量对象的性能。感谢 MigOps Inc 提供的补丁。

  • 根据对象的数量,设置表、索引、序列、分区、全局临时表和同义词的评估分数的最大值。感谢 MigOps Inc 提供的补丁。

  • 将 XML 函数的检测添加到评估成本中。感谢 MigOps Inc 提供的补丁。

  • 当 ora2pg 与选项 --init_project--cost_unit_value 一起使用时,允许在 export_all.sh 脚本中更改评估成本单位值。

  • 从 P/PSQL 代码中删除 pragma restrict_references,它没有用处。

  • 当启用 USE_ORAFCE 时,将 oracle 模式添加到生成的 SQL 文件中的 search_path,并改进迁移评估成本。感谢 MigOps Inc 提供的补丁。

  • 在包提取级别应用 ALLOWEXCLUDED 过滤的存储过程。在此补丁之前,无法不导出某些包函数或将其从评估中排除。感谢 MigOps Inc 提供的补丁。

  • 添加新测试以检查双方序列的最后一个值和标识列的数量。感谢 MigOps Inc 提供的补丁。

  • 在 TEST 操作中,默认将不带对象类型规范的 ALLOWEXCLUDED 过滤器应用于表对象。

新的配置指令

  • 添加 ORACLE_FDW_TRANSFORM 配置指令,以便在导出数据时对列应用转换。值必须是以分号分隔的 TABLE[COLUMN_NAME, <replace code in SELECT target list>] 列表。例如,要在 varchar2 列中将字符串“Oracle”替换为“PostgreSQL”,请使用 ERROR_LOG[DBMS_TYPE:regexp_replace("DBMS_TYPE",'Oracle','PostgreSQL')]

  • 添加 DROP_IF_EXISTS 配置指令,以便在创建对象之前添加“DROP ... IF EXISTS”语句。在迭代工作中可能很有用。默认情况下禁用。

向后兼容性

旧的配置文件存在向后兼容性问题,其中默认设置了 FDW_SERVER。导出数据时未使用此指令,但现在不再是这种情况,因为它指示 Ora2Pg 使用给定的外部服务器来使用 oracle_fdw 迁移数据。

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

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

链接 & 致谢

我想感谢所有提交补丁的用户以及报告错误和功能请求的用户,他们都在 ChangeLog 文件中被引用。

Ora2Pg 是一个开放项目。欢迎任何为构建更好的工具而做出的贡献。您只需使用 GitHub 工具或直接发送电子邮件至 ora2pg@darold.net 来发送您的想法、功能请求或补丁。

链接


关于 Ora2Pg

Ora2Pg 是一个简单且可靠的工具,用于从 Oracle 迁移到 PostgreSQL。它自 2001 年开始开发,可以将大多数 Oracle 对象导出为与 PostgreSQL 兼容的代码。

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

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