繁体   English   中英

Ubuntu 上的 Perl Ora2Pg

[英]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环境变量。

预安装步骤:

  1. 必须安装 ORACLE 客户端并设置ORACLE_HOME
  2. 安装 perl(5.6 及以上版本)

安装步骤:

  1. 安装 DBI(数据库接口模块)

    apt-get install cpanminus (适用于 ubuntu)
    yum install cpanminus (适用于 Linux)

     cpanm DBI
  2. 安装DBD::OracleDBD::Pg

     cpanm DBD::Oracle cpanm DBD::Pg
  3. http://sourceforge.net/projects/ora2pg/下载最新版本的 ora2pg 并运行以下命令:

     tar -xvf ora2pg-18.0.tar cd ora2pg-18.0/ perl Makefile.PL su root make make install
  4. 根据要求进行更改
    默认情况下,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
  5. 检查pra2pg的版本:

     ora2pg SHOW_VERSION
  6. 运行以下命令

    ora2pg -c /etc/ora2pg/ora2pg.conf ora2pg -c /etc/ora2pg/ora2pg.conf -p -P 10 -J 10 -L 1000000
  7. .sql 文件会在当前目录创建已经转换的数据到 PostgreSql

希望这会奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM