参考博客:
- http://www.doc88.com/p-3718098344314.html(我是按这个操作的,给力)
- http://www.cnblogs.com/kerrycode/p/4561321.html(中间有个报错,(Unable to locate an oracle.mk, proc.mk or other suitable *.mk),DBD::Oracle模块安装不上,参照这个解决的)
perl安装
linux系统一般会自带一个已安装的perl版本
[root@znstest1 ora2pg]# perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
Ora2Pg要求perl版本为高于5.6。
perl下载地址:http://www.perl.org/get.html#unix_like
安装步骤:
1、解压安装包,进入解压目录
2、运行 sh Configure –de (使用默认配置安装)
3、make
4、make test
5、make install
安装Oracle客户端
下载DBD::Oracle所需要得Basic、SQL*Plus、SDK三个包
地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
-rw-r--r--. 1 root root 62587782 Mar 30 12:32 oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
-rw-r--r--. 1 root root 852271 Mar 30 12:31 oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
-rw-r--r--. 1 root root 634803 Mar 30 12:31 oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
安装
[root@zns oracleClient]rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
[root@zns oracleClient]rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
[root@zns oracleClient]rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
配置环境变量
在/etc/profile 最后追加如下环境变量
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME
####安装perl-CPAN模块
yum install perl-CPAN
安装驱动
以root用户进入cpan shell
[root@zns ora2pg]#perl –MCPAN –e shell
cpan> install DBI
cpan> install DBD::Oracle
cpan> install DBD::Pg
安装ora2pg模块
下载地址:https://sourceforge.net/projects/ora2pg/
[root@zns ora2pg]tar –xvf ora2pg-17.3.tar.bz2
[root@zns ora2pg]cd ora2pg-17.3
[root@zns ora2pg]perl makefile.PL
[root@zns ora2pg]make && make install
安装完成后默认的配置文件路径:/etc/ora2pg/ora2pg.conf
ora2pg.conf 主要配置
ORACLE_DSN dbi:Oracle:host=172.16.9.208;sid=innetdb
ORACLE_USER xxxx
ORACLE_PWD xxxxx
生成sql文件
[root@zns ora2pg]ora2pg -c ora2pg.conf
执行无误后在当前目录下会生成out.sql文件,检查无误后方可开始导入到postgres数据库
导入sql到postgres数据库
假设数据库已经创建好
[root@zns oracleClient]# psql -U postgres -h 172.16.8.8 -p 5432
postgres=# \c test
test=# \i /etc/ora2pg/ora2pg/output.sql