Ora2Pg 16 发布

发布于 2015-10-16,作者:Dalibo

法国巴黎 - 2015年10月16日

Ora2Pg 16 发布

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

这个主要版本改进了 PL/SQL 代码替换,修复了几个错误并添加了一些主要的新功能

  • 完整迁移 MySQL 数据库,其工作方式与 Oracle 数据库相同。
  • MySQL 数据库的完整迁移评估报告。
  • 新脚本 ora2pg_scanner,用于对网络上的所有 Oracle 和 MySQL 实例执行迁移评估。
  • 在迁移评估中添加技术难度级别。
  • 允许对从 AUDIT_TRAIL (oracle) 或 general_log 表 (mysql) 中提取的客户端查询进行迁移评估。
  • Ora2Pg 有一个“一夜之间完成”的全新网站(仍需一些工作)http://ora2pg.darold.net/

使用 sakila 数据库和一些更多难度进行技术难度级别评估输出的示例

总共 83.90 个成本迁移单元,大约意味着 1 个人工日。迁移级别:B-5

以下是迁移级别代码的说明

  • 迁移级别
  • A - 可以自动运行的迁移
  • B - 需要重写代码且人工成本高达 5 天的迁移
  • C - 需要重写代码且人工成本超过 5 天的迁移
  • 技术级别
  • 1 = 微不足道:没有存储函数和触发器
  • 2 = 容易:没有存储函数但有触发器,无需手动重写
  • 3 = 简单:存储函数和/或触发器,无需手动重写
  • 4 = 手动:没有存储函数但有触发器或视图需要重写代码
  • 5 = 困难:带有代码重写的存储函数和/或触发器

这可以帮助您找到可以首先以较小的工作量 (A 和 B) 迁移的数据库,以及那些需要进行完整迁移项目 (C) 的数据库。

此版本还有一些新的实用功能

  • 导出类型 SHOW_TABLE 现在显示有关表类型的附加信息(FOREIGN、EXTERNAL 或 PARTITIONED 以及分区数)。
  • 可以通过环境变量 ORA2PG_USER 和 ORA2PG_PASSWD 传递连接的用户和密码,以避免在 ora2pg 命令行中设置它们。
  • 改进了对 ADD_MONTH()、ADD_YEAR()、TRUNC()、INSTR() 的 PL/SQL 替换,并取消了对 DECODE() 的替换限制。
  • 在视图中添加了迁移难度检测,以前仅限于函数、过程、包和触发器。
  • 当使用 --init_project 时,从命令行选项 -s、-n、-u 和 -p 自动生成配置文件中替换值。
  • 根据 Ora2Pg 的新功能调整了许多分数,例如:现在更容易迁移自治事务、dblink 或同义词。

ora2pg 脚本有一些新的命令行选项

  • -m | --mysql:与 --init_project 和 -i 选项一起使用,以告知 ora2pg 我们正在使用 MySQL 格式
  • -T | --temp_dir:可以设置一个不同的临时目录以便并行运行 ora2pg 的选项。
  • --audit_user:用于设置审计过滤器中使用的用户,并启用对来自 AUDIT_TRAIL (oracle) 或 general_log 表 (mysql) 的查询的迁移评估报告的选项。
  • --dump_as_sheet 和 --print_header 选项,可以使用来自 Oracle 数据库列表的所有迁移评估来计算 CSV 文件。
  • --dump_as_csv 选项将评估报告到 csv 文件中。它将不包括注释或详细信息,仅包括对象名称、数字和成本。

一些更改可能会破坏向后兼容性

  • 更改 NULL_EQUAL_EMPTY 默认禁用,以强制更改应用程序而不是转换 PL/SQL。

此版本添加了一些新的配置指令

  • MYSQL_PIPES_AS_CONCAT:如果双竖线和双 & (|| 和 &&) 不应被视为等同于 OR 和 AND,则启用此选项。
  • MYSQL_INTERNAL_EXTRACT_FORMAT:如果希望 EXTRACT() 替换使用作为整数返回的内部格式,则启用此选项。
  • AUDIT_USER:设置必须用于从 DBA_AUDIT_TRAIL 或 general_log 表中进行过滤的逗号分隔的用户名列表。
  • REPLACE_ZERO_DATE:默认情况下,"零"日期:0000-00-00 00:00:00 被 NULL 替换,使用它可以使用您选择的日期。当您有 NOT NULL 约束时很有用。
  • INDEXES_RENAMING:强制使用 tablename_columnsnames 的名称重命名所有索引。对于多次使用相同索引名称或使用与表相同的名称的数据库非常有用。
  • HUMAN_DAYS_LIMIT:默认为 5 天,用于设置 C 类型迁移的人工日上限。

像往常一样,还有一些错误修复和 Oracle 到 PostgreSQL 转换调整,有关完整列表,请参阅变更日志

链接 & 致谢

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

实用链接


关于 Ora2Pg

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

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

文档、下载和支持请访问 ora2pg.darold.net