Ora2Pg-安装(Linux)

本文详述了在Deepin Linux系统中,从Oracle数据库迁移到PostgreSQL的全过程,包括所需软件版本、依赖安装、环境配置及验证步骤。

环境说明

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客户端

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
### 安装 Oracle Instant Client 在 Linux安装 Ora2Pg 之前,必须先安装 Oracle Instant Client。从 Oracle 官网下载 [Instant Client Basic Package](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html)。解压后设置环境变量 `LD_LIBRARY_PATH`: ```bash unzip instantclient-basic-linux.x64-*.zip export LD_LIBRARY_PATH=/path/to/instantclient_21_10:$LD_LIBRARY_PATH ``` 此外,还需要安装 `devel`, `jdbc`, 和 `sqlplus` 包以确保所有必要的开发文件和工具可用[^3]。 ### 安装 Perl 及相关模块 Ora2Pg 是基于 Perl 的工具,因此需要确保系统中已安装 Perl 以及相关的 Perl 模块。执行以下命令来安装 Perl 和必需的模块: ```bash sudo apt-get install perl perl-DBI perl-DBD-Pg perl-ExtUtils-MakeMaker ``` 接下来,使用 CPAN 安装 `DBD::Oracle` 模块: ```bash cpan install DBD::Oracle ``` 如果遇到问题,可以手动下载并安装该模块[^5]。 ### 下载并安装 Ora2Pg 使用 `wget` 命令下载最新版本的 Ora2Pg: ```bash cd /opt wget https://sourceforge.net/projects/ora2pg/files/latest/download -O ora2pg-latest.tar.gz tar -xvf ora2pg-latest.tar.gz cd ora2pg-<version>/ ``` 然后运行 `Makefile.PL` 来配置编译环境,并进行编译和安装: ```bash perl Makefile.PL make sudo make install ``` 这将把 Ora2Pg 安装到默认目录下,通常包括 `/usr/local/bin/ora2pg` 可执行文件[^1]。 ### 配置 Ora2Pg 编辑配置文件 `/etc/ora2pg/ora2pg.conf` 或者自定义路径下的配置文件,设置 Oracle 数据库连接参数和其他选项: ```ini ORACLE_HOME /u01/app/oracle/product/11.2.0/dbhome_1 ORACLE_DSN dbi:Oracle:host=localhost;sid=ORCL;port=1521 ORACLE_USER your_oracle_user ORACLE_PWD your_oracle_password TYPE TABLE,VIEW,SEQUENCE,TRIGGER,FUNCTION,PROCEDURE OUTPUT /var/output/ SCHEMA YOUR_SCHEMA ``` 根据实际需求修改这些参数,比如指定迁移的数据库对象类型、输出目录等。 ### 运行 Ora2Pg 最后,使用 `-d` 参数启用调试模式,并指定配置文件路径来运行 Ora2Pg: ```bash ora2pg -c /etc/ora2pg/ora2pg.conf -d ``` 这样就可以开始迁移过程了。通过这种方式,您可以将 Oracle 数据库迁移到 PostgreSQL 中。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会画画的画师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值