Ora2Pg 23.2 发布

发布于 2022-10-17,作者:MigOps
相关开源

马达加斯加,塔那那利佛 - 2022 年 10 月 8 日

Ora2Pg 23.2 发布

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

此版本修复了过去八个月报告的几个问题,并增加了一些新功能和改进。

  • 添加了 MySQL KEY 和 LINEAR KEY 分区的导出,转换为 HASH 分区。
  • 允许导出名称中带有美元符号的对象。
  • 添加了 MySQL >= 8.0 的 CHECK 约束的导出。
  • 添加了来自 MYSQL 的函数/表达式索引的导出。
  • 添加了 MySQL 虚拟列的导出。
  • 如果小数位数高于精度,则删除数字的比例和小数位数。PostgreSQL 不支持小数/数字属性的小数位数显式高于精度。
  • 添加了命令行选项 --drop_if_exists,如果对象存在,则添加语句以在创建之前删除对象。它对应于 DROP_IF_EXISTS 配置指令。
  • 添加了选项 -C | --cdc_file,以便能够更改默认文件的名称,该文件用于在导出期间存储/读取每个表的 SCN。默认值是当前目录中的 TABLES_SCN.log。这是由 --cdc_ready 选项写入的文件。
  • 添加了使用 -P 命令行选项在 PostgreSQL 表中(TEST_COUNT)计算行数的多进程。
  • 添加了对带有输出参数的 PostgreSQL 14 过程的支持。
  • 将默认 PostgreSQL 数据库目标版本设置为 14。

新的配置指令

  • 添加了配置指令 MVIEW_AS_TABLE 和命令行选项 --mview_as_table,以设置将哪些物化视图导出为表。默认情况下不导出任何视图。值必须是以空格或逗号分隔的物化视图名称或正则表达式的列表。如果对象名称是物化视图且导出类型为 TABLE,则该视图将导出为 create table 语句。如果导出类型为 COPY 或 INSERT,则将导出相应的数据。
  • 添加了配置变量 FDW_IMPORT_SCHEMA,以重命名将创建用于数据迁移的外部表的模式。如果通过外部数据包装器对数据迁移使用多个 ora2pg 实例,则可能需要为每个实例更改模式的名称。默认值:ora2pg_fdw_import
  • 添加了 TRANSFORM_VALUE 配置指令,以在从 Oracle 检索数据时应用表达式。例如: TRANSFORM_VALUE CLOB_TABLE[CHARDATA:translate("CHARDATA", chr(0), ' ')] 将字符串中的所有 Oracle char(0) 替换为空格字符。
  • 添加了 EXCLUDE_COLUMNS 配置指令。与用于重新定义表结构的 MODIFY_STRUCT 不同,此指令允许指定必须从导出中排除的每个表的列列表。例如:EXCLUDE_COLUMNS T1(nocol1,nocol2) T2(nocol1,nocol2)
  • 添加了新的配置指令 EXPORT_GTT,以使用 pgtt 扩展识别的语法导出 Oracle 全局临时表。有关更多信息,请参阅 https://github.com/darold/pgtt。默认情况下不导出全局临时表,因为 PostgreSQL 本身不支持它们。
  • 添加了新的配置选项 NO_EXCLUDED_TABLE。默认情况下,Ora2Pg 会从导出中排除一些不应成为导出一部分的 Oracle“垃圾”表。当查看表时,此行为会生成许多减慢导出的 REGEXP_LIKE 表达式。要禁用此行为,请启用此指令,您将必须自己排除或清理不需要的表。用于排除表的正则表达式在 lib/Ora2Pg.pm 中的数组 @EXCLUDED_TABLES 中定义。请注意,此行为与 EXCLUDE 配置指令无关。

向后兼容性

  • 当默认值为 0000 年的日期时,强制将所有以 0000 年开始的无效日期重写为 1970-01-01,数据重写为 NULL。旧的行为是仅替换 0000-00-00 日期。
  • 到目前为止,由于 Ora2Pg 无法检测到参数是日期还是数字,因此有很多未翻译的 TRUNC(date) 调用。问题是 Oracle 也有 TRUNC(number),如果存在疑问,Ora2Pg 会尝试不应用转换。在大多数迁移中很少遇到 TRUNC(number),因此现在所有 TRUNC() 调用都将转换为 date_trunc()。必须存在误报重写,但这应该比实际情况的工作量少得多。

有关完整的更改列表,请参阅 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/