首页
/ Ora2Pg v25.0 版本发布:Oracle 到 PostgreSQL 迁移工具的重大更新

Ora2Pg v25.0 版本发布:Oracle 到 PostgreSQL 迁移工具的重大更新

2025-07-05 17:54:43作者:余洋婵Anita

项目简介

Ora2Pg 是一个开源工具,专门用于将 Oracle 数据库迁移到 PostgreSQL。它能够自动转换 Oracle 的 SQL 和 PL/SQL 代码到 PostgreSQL 兼容的格式,同时支持数据结构、数据内容的迁移以及性能评估等功能。作为数据库迁移领域的成熟工具,Ora2Pg 在 v25.0 版本中带来了多项重要改进和新特性。

核心功能增强

多格式评估报告输出

v25.0 版本现在支持同时生成多种格式的评估报告。这一改进使得用户能够一次性获取不同格式的迁移评估结果,大大提高了工作效率。评估报告是迁移规划阶段的重要参考,能够帮助用户预估迁移难度和工作量。

Oracle 到 PostgreSQL 异常映射扩展

新版本增强了对 Oracle 异常处理到 PostgreSQL 的转换支持。异常处理是 PL/SQL 中的重要组成部分,更完善的映射意味着迁移后的代码能够更好地保持原有逻辑和行为。

配置覆盖功能

现在用户可以通过命令行直接覆盖配置文件中的 PG_SUPPORTS_* 设置,而不再受 PG_VERSION 的限制。这一改进为高级用户提供了更大的灵活性,特别是在需要针对特定 PostgreSQL 版本进行定制化迁移时。

数据迁移优化

并行分区导出

v25.0 显著改进了分区表的导出性能,现在支持并行导出每个分区。相比之前版本中串行处理所有分区的方式,这一优化能够大幅减少大型分区表的导出时间。

一致性数据快照

数据导出现在默认使用当前 SCN(系统变更号)作为快照点,确保多进程导出时所有表的数据都来自同一时间点,保持数据一致性。对于不需要此功能的场景,用户可以使用新增的 --no_start_scn 选项禁用此行为。

oracle_fdw 增强

新版本对 oracle_fdw 的支持进行了多项改进:

  • 新增 ORACLE_FDW_COPY_MODE 配置项,支持本地(local)和服务器端(server)两种 COPY 模式
  • 新增 ORACLE_FDW_COPY_FORMAT 配置项,可选择二进制(binary)或 CSV 格式
  • 优化了数据迁移流程,提高了大容量数据迁移的效率和可靠性

语法转换改进

DBMS_SQL 转换

v25.0 能够将简单的 DBMS_SQL 游标操作转换为 PostgreSQL 的动态查询执行。DBMS_SQL 是 Oracle 中常用的动态 SQL 接口,这一转换使得相关代码能够更好地迁移到 PostgreSQL 环境。

MOD 运算符替换

新增了对 MOD 运算符的转换支持,解决了之前版本中相关表达式无法正确迁移的问题。

时间戳处理优化

修正了 SYSTIMESTAMP 的转换,现在会正确地转换为 statement_timestamp() 而非 CURRENT_TIMESTAMP,确保时间相关逻辑的准确性。

其他重要改进

脚本处理增强

新增 SCRIPT 动作,支持将 sqlplus 脚本作为一个整体处理,而非逐行解析。这一改进特别适用于处理复杂的存储过程或脚本文件。

默认配置调整

使用 --init_project 生成的默认配置文件中,现在将 PG_NUMERIC_TYPE 设为 0,NULL_EQUAL_EMPTY 设为 1,这些默认值更适合大多数迁移场景。

命令行选项扩展

新增 -O | --options 选项,允许用户直接在命令行中覆盖任何配置参数,格式灵活,可以多次使用或使用管道符分隔多个参数。

问题修复

v25.0 版本修复了大量问题,包括但不限于:

  • 修复了多进程 TEST_DATA 动作的问题
  • 修正了 UPDATE 语句中的赋值符号处理
  • 解决了 MySQL 注释和标签转换的问题
  • 修复了枚举值 "inf" 被错误扩展为 "Infinity" 的问题
  • 修正了 DBMS_LOB.GETLENGTH() 的权限检查
  • 解决了 TO_DATE 转换中 NLS 设置相关的问题
  • 修复了多种情况下的子查询处理问题
  • 修正了 JSON 和 CLOB 数据类型迁移中的多个问题

总结

Ora2Pg v25.0 是一个功能丰富且稳定的版本,在多格式评估报告、并行分区导出、oracle_fdw 支持、语法转换准确性等方面都有显著提升。这些改进使得从 Oracle 到 PostgreSQL 的数据库迁移过程更加高效、可靠。对于计划进行数据库迁移的用户,特别是处理大型复杂数据库系统的团队,升级到 v25.0 版本将能获得更好的迁移体验和结果。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
178
262
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
866
513
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
265
305
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
598
57
GitNextGitNext
基于可以运行在OpenHarmony的git,提供git客户端操作能力
ArkTS
10
3