ora2pg的安装与使用

ora2pg是一款可以方便将oracle内的数据导出并转换成pgsql格式的工具。它支持导出表,视图,序列等,十分强大,下面介绍它的安装与使用:
 
安装ora2pg需要以下三个软件支持
  1)、DBD::Oracle
  2)、DBI
  3)、Ora2pg
要求:perl版本5.8以上
查看perl版本
  perl -v
1、首先安装依赖包
  
   yum install perl-DBI perl-DBD-Pg perl-ExtUtils-MakeMaker gcc
  wget http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.74.tar.gz
  tar -zxvf DBD-Oracle-1.74.tar.gz
  cd DBD-Oracle-1.74
  source /home/oracle/.bash_profile
  perl Makefile.PL -l
  make
  make install        

  

 
2、安装 ora2pg包
  下载地址:https://sourceforge.net/projects/ora2pg/files/?source=navbar
  解压文件
  
  tar -jxvf ora2pg-18.2.tar.bz2
  cd ora2pg-18.2
  perl Makefile.PL
  make
  make install
  默认安装在/usr/local/bin/目录下
3、配置
 
ORACLE_DSN dbi:Oracle:host=192.168.0.153;sid=orcl
ORACLE_USER system
ORACLE_PWD highgo
SCHEMA TEST (注意要大写,否则匹配不到)
TYPE TABLE DATA 设置导出的内容
allow emp 导出TEEST下面的emp表 如果需要让数据自动导入到PostgreSQL中,则需要同时配置关于连接PostgreSQL的相关信息,配置类似上面Oracle的配置,如下: PG_DSN dbi:Pg:dbname
=test_db;host=192.168.100.106;port=5432 PG_USER test PG_PWD highg

4、使用

ora2pg -c /etc/ora2pg.conf

vim /etc/ora2pg/ora2pg.conf
-d | --debug :启用详细输出。   -h | --help :打印出简单的帮助信息。   -v | --version :显示Ora2Pg的版本。   -c | --conf file :使用另一个替代的配置文件,默认是/etc/ora2pg/ora2pg.conf。   -l | --log file :使用一个日志文件,默认是标准输出。   -o | --out file :指定导出的SQL脚本文件的路径,默认是当前目录下。   -t | --type export :指定导出格式。覆盖配置文件中指定的TYPE。   -p | --plsql :启用PLSQL到PLPSQL码的转换。   -s | --source dsn :设置Oracle DBI数据源。   -u | --user user :设置连接Oracle的用户名。   -w | --password pass :设置Oracle用户密码。   -n | --namespace schema :设置用于提取的Oracle模式名称。   -b | --basedir dir :设置默认的输出文件目录,输出的文件将被保存到该目录。   -x | --xtable relname :用于显示给定表的列名,仅在TYPE为SHOW_COLUMN时使用。   -f | --forceowner :如果设置为1将促使Ora2Pg设置表和序列的所有者。如果将其值设置为一个用户名会被设定为对象的所有者。   --nls_lang code :设置Oracle NLS_LANG客户端编码。   --client_encoding code :设置PostgreSQL客户端编码。   -i | --input_file file :文件包含在没有Oracle数据库连接发起时Oracle PL/SQL代码的转换。  

如果出现以下错误

请不要惊慌,耐心等待即可

 5、将导出的文件导入pgsql数据库

  首先创建一个test_db数据库,再创建一个test用户,在test_db数据库下以超级用户创建一个schema,并将该schema的权限者设为test,最后以test用户在test_db数据库下导入数据脚本:

$ psql  
postgres=# CREATE DATABASE test_db;  
postgres=# CREATE USER test password ‘highgo’;  
postgres=# c test_db  
test_db=# CREATE schema test authorization test;  
test_db=# c test_db test  
test_db=> i /root/output.SQL 
 

原文地址:https://www.cnblogs.com/alighie/p/7834136.html