1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Ora2Pg的使用

介绍

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

Ora2Pg的使用

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