Ubuntu上的PerlOra2PG

Ubuntu上的PerlOra2PG,perl,oracle,postgresql,ubuntu,Perl,Oracle,Postgresql,Ubuntu,我刚刚在我的Ubuntu Jaunty Jackalope上试用了Ora2Pg 首先,安装很困难,但在这里和那里下载了一些deb和rpm之后,我终于通过synaptic安装了ora2pg 但是,当我尝试运行此命令时 ora2pg/tmp/ora2pg.conf 我得到一份工作 安装_驱动程序(Oracle)失败:无法为模块DBD::Oracle:libclntsh.so.10.1加载“/usr/lib/perl5/auto/DBD/Oracle/Oracle.so”:无法打开共享对象文件:在/u

我刚刚在我的Ubuntu Jaunty Jackalope上试用了Ora2Pg

首先,安装很困难,但在这里和那里下载了一些deb和rpm之后,我终于通过synaptic安装了ora2pg

但是,当我尝试运行此命令时

ora2pg/tmp/ora2pg.conf

我得到一份工作

安装_驱动程序(Oracle)失败:无法为模块DBD::Oracle:libclntsh.so.10.1加载“/usr/lib/perl5/auto/DBD/Oracle/Oracle.so”:无法打开共享对象文件:在/usr/lib/perl/5.10/DynaLoader.pm第196行没有这样的文件或目录

在(评估14)第3行

在(eval 14)第3行的require中编译失败

可能所需的共享库或dll没有安装在预期的位置

at/usr/share/perl5/Ora2Pg.pm第566行

有什么问题以及如何解决吗


注意:我不喜欢perl。正因为如此,我才开始浏览它。

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\u LIBRARY\u PATH
环境变量。

这是正确的安装顺序:

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/


在文件中插入连接到Oracle和Postgres的配置。

预安装步骤:

  • 必须安装ORACLE客户端,并且必须设置
    ORACLE\u HOME
  • 安装perl(5.6及以上版本)
  • 安装步骤:

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

    apt get install cpanminus
    (对于ubuntu)
    yum安装cpanminus
    (适用于Linux)

  • 安装
    DBD::Oracle
    DBD::Pg

    cpanm DBD::Oracle
    cpanm DBD::Pg
    
  • 从下载最新版本的ora2pg,并运行以下命令:

    tar -xvf ora2pg-18.0.tar
    cd ora2pg-18.0/
    perl Makefile.PL
    su root
    make
    make install
    
  • 按照要求进行更改
    默认情况下,Ora2Pg将查看
    Ora2Pg.conf
    配置文件到
    /etc/Ora2Pg/
    目录中

    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

  • 希望这能奏效

    ora2pg -c /etc/ora2pg/ora2pg.conf
    ora2pg -c /etc/ora2pg/ora2pg.conf -p -P 10 -J 10 -L 1000000