[英]Perl Ora2Pg on Ubuntu
我刚刚在我的 Ubuntu Jaunty Jackalope 上尝试了 Ora2Pg。
首先,安装很困难,但是在这里和那里下载了一些 debs 和 rpm 之后,我终于设法通过突触安装了 ora2pg。
但是,当我尝试运行此命令时
ora2pg /tmp/ora2pg.conf
我得到一个
install_driver(Oracle) 失败:无法为模块 DBD::Oracle 加载“/usr/lib/perl5/auto/DBD/Oracle/Oracle.so”:libclntsh.so.10.1:无法打开共享对象文件:没有这样的文件或目录 /usr/lib/perl/5.10/DynaLoader.pm 第 196 行。
在(评估 14)第 3 行
在 (eval 14) 第 3 行的 require 中编译失败。
可能未在预期位置安装所需的共享库或 dll
在 /usr/share/perl5/Ora2Pg.pm 第 566 行
任何想法出了什么问题以及如何解决它?
注意:我不会 perl。 因为这个,我才开始浏览它。
这是正确的安装顺序:
apt-get install libdbi-perl
apt-get install alien dpkg-dev debhelper build-essential
apt-get install libaio1
apt-get install make
apt-get install alien
apt-get install rpm
apt-get install libpq-dev
下载 DBD-Oracle-1.74 或最新版本
下载 DBD-Pg-3.5.3 或最新版本
下载 DBI-1.636 或最新版本
下载 ora2pg-17.5 或最新版本
下载 oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
下载 oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
下载 oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
解压rpm包并安装后:
alien oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
alien oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
alien oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
dpkg -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.deb
dpkg -i oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb
dpkg -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.deb
然后:
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
oracle客户端安装路径
export ORACLE_HOME=/usr/lib/oracle/12.1/client64/
然后,安装 Oracle 和 Postgres 的 perl 扩展
cd DBI-1.636
perl Makefile.PL
make && makeinstall
cd DBD-Oracle-1.74 o DBD-Oracle-1.64
perl Makefile.PL
make && makeinstall
cd DBD-Pg-3.5.3
perl Makefile.PL
make && makeinstall
最后,安装
cd ora2pg-17.x
perl Makefile.PL
make && makeinstall
检查版本是否正确
ora2pg -v
最后在/etc/ora2pg/
上配置ora2pg.conf
在文件中插入连接Oracle和Postgres的配置。
DBD::Oracle
找不到 Oracle 客户端库,因为它们不在您的库路径中。 如果您没有 Oracle 客户端库并且没有系统管理员为您提供它们,那么您需要从 oracle 网站获取“Oracle Instantclient”包并安装它。 如果您已经安装了 Instantclient,那么您需要将其lib
目录(类似于/usr/lib/oracle/instantclient/lib
或/opt/ora/instantclient10_1/lib
)添加到您的库路径中——通过添加一行到/etc/ld.so.conf
并以 root 身份运行ldconfig
,或通过设置LD_LIBRARY_PATH
环境变量。
预安装步骤:
ORACLE_HOME
。安装步骤:
安装 DBI(数据库接口模块)
apt-get install cpanminus
(适用于 ubuntu)
yum install cpanminus
(适用于 Linux)
cpanm DBI
安装DBD::Oracle
和DBD::Pg
cpanm DBD::Oracle cpanm DBD::Pg
从http://sourceforge.net/projects/ora2pg/下载最新版本的 ora2pg 并运行以下命令:
tar -xvf ora2pg-18.0.tar cd ora2pg-18.0/ perl Makefile.PL su root make make install
根据要求进行更改
默认情况下,Ora2Pg 会在/etc/ora2pg/
目录中查找ora2pg.conf
配置文件。
ORACLE_HOME /app/oracle/product/11.2.0 ORACLE_DSN dbi:Oracle:host=[hostname];sid=[SID name] ORACLE_USER [SYSTEM] ORACLE_PWD [password] USER_GRANTS 1
检查pra2pg的版本:
ora2pg SHOW_VERSION
运行以下命令
ora2pg -c /etc/ora2pg/ora2pg.conf ora2pg -c /etc/ora2pg/ora2pg.conf -p -P 10 -J 10 -L 1000000
.sql 文件会在当前目录创建已经转换的数据到 PostgreSql
希望这会奏效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.