介绍
Ora2Pg是一个免费工具,用于将Oracle或者MySQL数据库迁移到PostgreSQL。它通过连接Oracle数据库,执行自动扫描并且提取数据库的结构和数据,然后生成相应的SQL脚本。这些脚本可以用于将数据库结构和数据导入PostgreSQL之中。

Ora2Pg可以用于各种场景,小到Oracle数据库的反向工程,大到大型企业数据库迁移,或者简单地将一些Oracle数据复制到PostgreSQL数据库。它非常简单易用,甚至不需要任何Oracle数据库的相关知识,只需要提供连接到Oracle数据库的配置参数。
迁移表数据
下面介绍ora2pg是如何迁移表数据的:
1. 安装依赖包
要求:perl版本5.8以上
#yuminstallperl-DBIperl-DBD-Pgperl-ExtUtils-MakeMaker gcc
#wgethttp://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz
#tar -zxvfDBD-Oracle-1.74.tar.gz
#cd DBD-Oracle-1.74
#source /home/oracle/.bash_profile
#perlMakefile.PL-l
#make
#make install
2. 安装ora2pg包
下载地址:https://sourceforge.net/projects/ora2pg/files/?source=navbar
解压文件
#tar-jxvfora2pg-22.1.tar.bz2
#cdora2pg-22.1
#perlMakefile.PL
#make
#makeinstall
默认安装在/usr/local/bin/目录下
3. 编辑配置文件
#viora2pg_tab_1.conf
ORACLE_HOME /u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_DSN dbi:Oracle:host=x.x.x.x;sid=PROD;port=xxx
ORACLE_USER xxxxxxx
ORACLE_PWD xxxx
LOGFILE /tmp/test.log
USER_GRANTS 0
SCHEMA xxxx
EXPORT_SCHEMA 0
#TYPE TABLE
PARALLEL_TABLES 4
JOBS 4
PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 1
DEFAULT_NUMERIC float
SKIP fkeys pkeys ukeys indexes checks
NLS_LANG AMERICAN_AMERICA.UTF8
OUTPUT output.sql
LIMIT 100000
PG_DSN dbi:Pg:dbname=xxxx;host=x.x.x.x;port=xxx
PG_USER xxx
PG_PWD xxxxxx
PG_SCHEMA xxx
LOG_ON_ERROR .0
BLOB_LIMIT 100
TRUNCATE_TABLE 1
DISABLE_SEQUENCE 1
PG_VERSION 12
EMPTY_LOB_NULL
ORA_INITIAL_COMMAND
IMPORT imp_tab_1.conf
CREATE_SCHEMA 1
COMPILE_SCHEMA 0
debug 1
4. 执行导入
#nohup ora2pg -t COPY -c /data/ora2pg/huang/ora2pg_tab_1.conf -T /tmp/huang &
5. 查看导入日志
#tail-111f/tmp/test.log
可以看到当前导入速度导入完成,可以看到平均速度
注意事项:迁移数据之前一定要确保源端和目标端的表名、表结构都完全一致,否则导入会失败。开并行需谨慎,需要根据机器CPU的当前使用情况来确定。如果只导入单表,可以将PARALLEL_TABLES参数为调整为1。配置文件中的用户需要对表有相关使用权限,建议导数时使用高权限用户。TRUNCATE_TABLE参数会清空目标端表中现有数据,需要根据实际情况谨慎使用。
更多精彩干货分享点击下方名片关注IT那活儿
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6155.html
