环境说明
Linux 系统
: Deepin(可以参照Ubuntu或者Debian)
Postgresql
: v12.2
Ora2pg
: v20.2
perl
: v5.24(用于编译ora2pg)
完整安装包链接
安装步骤
安装依赖
以下依赖可能缺失,请按需安装
$ apt-get install zip
$ apt-get install make
$ apt-get install gcc
$ apt-get install libaio1
$ apt-get install postgresql-contrib
$ apt-get install libpq-dev
$ apt-get install bzip2
$ apt-get install zlib1g.dev
安装Postgresql12.2
# 安装依赖,否则会报错:error:readline library not found
$ apt-get install libreadline-dev
# 解压安装包
$ tar -zxvf /home/pg/postgresql-12.0.tar.gz
$ ./configure
# 安装
$ make && make install
# 更改环境变量
$ vi /etc/profile
export PGHOME=/usr/local/pgsql
export PATH=$PGHOME/bin:$PATH
$ source /etc/profile
安装oracle客户端
$ cd /home/pg/tool/oracle
$ unzip instantclient-basic-linux.x64-19.6.0.0.0dbru.zip
$ unzip instantclient-jdbc-linux.x64-19.6.0.0.0dbru.zip
$ unzip instantclient-sdk-linux.x64-19.6.0.0.0dbru.zip
$ unzip instantclient-sqlplus-linux.x64-19.6.0.0.0dbru.zip
# 配置环境变量
$ vi /etc/profile
export ORACLE_HOME=/opt/instantclient_11_2
export LD_LIBRARY_PATH=/opt/instantclient_11_2
$ source /etc/profile
安装DBI
$ tar -zxvf DBI-1.6.43.tar.gz
$ cd DBI-1.6.43/
$ perl Makefile.PL
$ make && make install
安装DBD-Oracle模块
$ tar -zxvf DBD-Oracle-1.74.tar.gz
$ cd DBD-Oracle-1.74/
$ perl Makefile.PL
$ make && make install
安装DBD-PG模块
$ tar -zxvf DBD-Oracle-1.74.tar.gz
$ cd DBD-Oracle-1.74/
$ perl Makefile.PL
$ make && make install
安装Devel-CheckLib-1.14(DBD-MySQL依赖该模块)
$ tar -zxvf Devel-CheckLib-1.14.tar.gz
$ cd Devel-CheckLib-1.14/
$ perl Makefile.PL
$ make && make install
安装DBD-mysql-4.050
# 安装依赖
$ apt-get install libmariadb-dev-compat libmariadb-dev
$ tar -zxvf DBD-mysql-4.050.tar.gz
$ cd DBD-mysql-4.050/
$ perl Makefile.PL
$ make && make install
安装Ora2PG
$ tar -jxvf ora2pg-20.0.tar.bz2
$ cd ora2pg-20.0/
$ perl Makefile.PL
$ make && make install
验证
$ ora2pg -v
Ora2Pg v20.0
$ ora2pg -d --no_header -J 5 -t INSERT \
-a "DEMO" --pg_schema poc \
-s "dbi:Oracle:host=192.168.254.82;sid=xe;port=11521" \
-u poc -w 123456 \
--pg_dsn "dbi:Pg:dbname=ffcs;host=192.168.254.105;port=18801" \
--pg_user postgres --pg_pwd postgres