ora2Pg安装记录

概要

记录一下自己安装ora2pg 工具的过程

用到的工具

linux: centos7
ora2pg: 24.1
DBD-oracle: 1.8.3
DBD::Pg
DBI-1.641
oracle-instantclient 12.1.basic, devel,jdbc,sqlplus
postgresql: 13

软件安装

1.1 安装perl 依赖,如果有不需要再次安装

yum install -y gcc

yum install -y perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum install perl-CPAN

1.2 安装DBI

yum install -y perl-DBI
或
perl -MCPAN -e 'install DBI'

或者tar安装 下载地址:https://metacpan.org/release/DBI

tar -zxvf DBI-1.641.tar.gz
cd DBI-1.641
perl Makefile.PL
make
make install

1.3 安装ora2pg 下载地址 :https://sourceforge.net/projects/ora2pg/

tar -zxvf ora2pg-24.1.tar.gz
cd ora2pg-24.1
perl Makefile.PL
make
make install 

1.4 安装DBD::Oracle

  • 1.4.1 安装Oracle 客户端
rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-jdbc-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
  • 1.4.2配置Oracle 客户端环境变量
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
source  /etc/profile
  • 1.4.3 安装DBD::Oracle
  • 下载地址:http://search.cpan.org/~pythian/DBD-Oracle-1.74/lib/DBD/Oracle.pm
    必须定义ORACLE_HOME、LD_LIBRARY_PATH环境变量
tar -zxvf DBD-Oracle-1.74.tar.gz 加载环境变量;
cd DBD-Oracle-1.74
perl Makefile.PL
make
make install

1.5 安装DBD::Pg
注意: 安装pg 前必须安装pgsql 客户端或者服务
下载地址:http://search.cpan.org/~turnstep/DBD-Pg/
或者

perl -MCPAN -e 'install DBD::Pg'
  • 1.5.1 安装postgresql
yum -y install postgresql13
psql -V
配置环境变量
export POSTGRES_HOME=/usr/pgsql-13
export POSTGRES_INCLUDE=$POSTGRES_HOME/include
export POSTGRES_LIB=$POSTGRES_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH:$POSTGRES_HOME/bin:$PATH

1.6 检查安装情况

# vi check.pl
#!/usr/bin/perl
use strict;
use ExtUtils::Installed;
my $inst=ExtUtils::Installed->new();
my @modules = $inst->modules();
foreach(@modules){
       my $ver = $inst->version($_) || "???";
       printf("%-12s -- %s\n",$_,$ver);
}
exit;

# perl check.pl

1.7 ora2pg配置文件信息
linux 一般后缀为.conf window下后缀为 xxx.conf.dist

# 设置Oracle主目录:Oracle的安装目录 // 这个目录可能是需要连接的数据库所在目录
ORACLE_HOME  D:\Oracle\product\11.2.0\dbhome_1
# 设置Oracle数据库连接(数据源、用户、密码)
ORACLE_DSN	dbi:Oracle:host=127.0.0.1;sid=orcl;port=1521
ORACLE_USER	xxx
ORACLE_PWD	xxx
 
# 要使用的 Oracle 模式/所有者
SCHEMA xmgl
 
# EXPORT SECTION(导出类型和过滤器)
# 导出类型。值可以是以下关键字:
# TABLE 导出表、约束、索引...
#PACKAGE 导出包
# INSERT 从表中导出数据作为 INSERT 语句
# COPY 将表中的数据导出为 COPY 语句
# VIEW 导出视图
# GRANT 导出授权
# SEQUENCE 导出序列
# TRIGGER 导出触发器
# FUNCTION 导出函数
# PROCEDURE 导出程序
# TABLESPACE 导出表空间(仅限 PostgreSQL >= 8)
# TYPE 导出用户定义的 Oracle 类型
# PARTITION 导出范围或列表分区 (PostgreSQL >= v8.4)
# FDW 导出表作为外部数据包装表
# MVIEW 将物化视图导出为快照刷新视图
# QUERY 从文件转换 Oracle SQL 查询。
# KETTLE 生成 Kettle 使用的 XML ktr 模板文件。
# DBLINK 生成 oracle 外部数据包装服务器以用作 dblink。
# SYNONYM 将 Oracle 的同义词导出为其他模式对象的视图。
# DIRECTORY 将 Oracle 的目录导出为 external_file 扩展对象。
# LOAD 通过多个 PostgreSQl 连接调度查询列表。
# TEST 执行 Oracle 和 PostgreSQL 数据库之间的差异。
# TEST_COUNT 只在 Oracle 和 PostgreSQL 表之间执行行计数。
# TEST_VIEW 对视图返回的行数两边进行计数
# TEST_DATA 对两边的行进行数据验证检查。
# 需要迁移什么内容,就配置什么内容
TYPE TABLE,VIEW,SEQUENCE,TRIGGER,FUNCTION,PROCEDURE,DATA
#设置从哪个对象导出
#ALLOW zkrwb
#此字段为导入PG时候需要的schema字段,如果上述配置导出的时候导出了oracle的schema,那么这个字段可删除掉不进行配置,如果没有导出Oracle的schema,需要在导入到PG的时候导入新的schema,那么则需要手动提前创建PG的schema,并在此处进行配置
PG_SCHEMA xmgl
#导出的字符格式,一般不需要动
NLS_LANG     AMERICAN_AMERICA.UTF8 
# 导出文件存储位置
OUTPUT ora2pg_output1108.sql
 
# 必须写入所有转储文件的基本目录
# OUTPUT_DIR /var/tmp

ora2pg 导出

#此命令执行的时候会进行当前schema 下的全表扫描并导出所有的表结构
ora2pg -c ora2pg_table.conf  
#此命令执行的时候会进行当前schema下的指定的表名进行扫描,并导出表结构
ora2pg -c ora2pg_table.conf -a 'TABLE[表名,表名,表名]'

pgsql导出语句

# -h pg 的host, -p 端口, -U 用户名,  -d database,  -f  前面导出的数据文件路径和名称
psql -h  xxx -p xxx -U xxx  -d xxx -f /tmp/data.sql 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大卫空中擦了屁飘一声思密达

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

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

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

打赏作者

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

抵扣说明:

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

余额充值