Ora2Pg介绍
Ora2Pg是一个将Oracle迁移至PostgreSQL的开源工具,通过连接Oracle数据库,自动扫描并提取其中的对象结构及数据,产生SQL脚本,通过手动或自动的方式将其应用到PostgreSQL。
官方网站:https://ora2pg.darold.net/
Ora2Pg优秀特性
-
支持导出数据库绝大多数对象类型,包括表、视图、序列、索引、外键、约束、函数、存储过程等。
-
提供PL/SQL到PL/PGSQL语法的自动转换,一定程度避免了人工修正。
-
可生成迁移报告,包括迁移难度评估、人天估算。
-
可选对导出数据进行压缩,节约磁盘开销。
-
配置选项丰富,可自定义迁移行为。
Ora2Pg在openGauss的应用
Ora2Pg主要语言是perl,使用Perl DBI模块,通过DBD:Pg连接PostgreSQL目标数据库,openGauss兼容PostgreSQL的通信协议以及绝大部分语法,因此只需作部分命名上的修改,Ora2Pg同样可应用于openGauss。
Ora2Pg使用示例
对于对象结构,Ora2Pg将其DDL语句导出到SQL文件中,对于表数据,则既可以以INSERT或COPY命令导出到文件,也支持直接导入到目标数据库,不需要产生中间SQL文件。
为了完成上述过程,Ora2Pg工具同时支持命令行和一键式脚本的方式完成迁移。命令行方式通过Ora2Pg二进制分布执行各条命令,来完成对应的步骤;一键式脚本通过创建迁移项目,分别得到导出导入脚本以及迁移目录模板,脚本集成了若干Ora2Pg命令以及导入SQL文件所需的psql命令(openGauss为gsql),用户只需要执行两个脚本即可完成迁移。本次主要演示脚本的方式。
1. 依赖安装
Ora2Pg语言为perl,故需安装所需perl模块。
# root用户下操作
yum install -y perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum install perl-CPAN
安装DBI、DBD:Pg、DBD:Oracle,Ora2Pg依赖这些软件去连接数据库。
perl -MCPAN -e 'install DBI'
perl -MCPAN -e 'install DBD::Pg'
安装DBD:Oracle,需要先安装Oracle Instant Client或者本地已安装Oracle数据库。