暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Ora2pg工具部署及使用

IT那活儿 2025-04-16
1501

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


  
某通信公司国产化改造中,Oracle迁移至Antdb时,官方迁移工具mtk不支持迁移Oracle侧的存储过程、函数、触发器。
经综合评估后,采用ora2pg工具单独迁移Oracle侧的存储过程、函数、触发器。



ora2pg工具部署

1.1 安装Oracle客户端

1)官网下载Oracle精简客户端的zip包

本次安装客户端版本为19.25。

官网地址:
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

需下载的zip包:

  • instantclient-basic-linux.x64-19.25.0.0.0dbru.zip

  • instantclient-sdk-linux.x64-19.25.0.0.0dbru.zip

  • instantclient-sqlplus-linux.x64-19.25.0.0.0dbru.zip

2)以antdb用户进入Oracle客户端安装目录

cd   /home/antdb/oracle

3)把zip包上传至安装目录并解压后,生成instantclient_19_25目录及为Oracle客户端

unzip   instantclient-basic-linux.x64-19.25.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.25.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.25.0.0.0dbru.zip
[antdb@antdb oracle]$ ls -l
total 55428
drwx------ 3 antdb antdb 4096 Nov 13 14:56 instantclient_19_25

1.2 配置oracle环境变量root用户下

该操作环境为Linux antdb 4.19.90-2107.6.0.0100.oe1.bclinux.x86_64,设置环境变量需在.bashrc设置:

[antdb@antdb ~]$ vim .bashrc
export ORACLE_HOME=/home/antdb/oracle/instantclient_19_25
export LD_LIBRARY_PATH=/home/antdb/oracle/instantclient_19_25

生效环境变量:

[antdb@antdb ~]$ source ~.bashrc

1.3 安装perl环境

注:perl 5.10及更高版本。

[antdb@antdb ~]$ perl -v
This is perl 5version 28, subversion 3 (v5.28.3) built for x86_64-linux-thread-multi
Copyright 1987-2020, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

1.4 安装Perl::DBI模块

注:DBI Perl模块> 1.614。

上传DBI-1.643.tar.gz安装包至安装目录并解压:

[antdb@antdb setup]$ cd   home/antdb/oracle/setup
[antdb@antdb setup]$ unzip  DBI-1.643.tar.gz

编译安装Perl::DBI:

[antdb@antdb setup]$ cd  DBD-Oracle-1.76
[antdb@antdb DBD-Oracle-1.76]$ perl Makefile.PL
[antdb@antdb DBD-Oracle-1.76]$ make && make install

1.5 安装DBD::Oracle

注:需要用该模块连接Oracle。

上传DBD-Oracle-1.76.tar.gz安装包至安装目录并解压:

[antdb@antdb setup]$ cd home/antdb/oracle/setup
[antdb@antdb setup]$ unzip DBI-1.643.tar.gz

编译安装DBD-Oracle:

[antdb@antdb setup]$ cd DBD-Oracle-1.76
[antdb@antdb DBD-Oracle-1.76]$ perl Makefile.PL
[antdb@antdb DBD-Oracle-1.76]$ make && make install

1.6 安装DBD::Pg(可选)

注:需要使用ora2pg导入antdb目标端可选,如果只是导出脚本手动导入则不需要安装。

上传DBD-Pg-3.18.0.tar.gz安装包至安装目录并解压:

[antdb@antdb setup]$ cd home/antdb/oracle/setup
[antdb@antdb setup]$ unzip DBD-Pg-3.18.0.tar.gz

编译安装DBD-Pg-3.18.0:

[antdb@antdb setup]$ cd DBD-Pg-3.18.0
[antdb@antdb DBD-Pg-3.18.0]$ perl Makefile.PL
[antdb@antdb DBD-Pg-3.18.0]$ make && make install

1.7 验证上述模块是否安装成功

[antdb@antdb ~]$ instmodsh

1.8 安装ora2pg

上传安装包ora2pg-24.2.tar.gz至安装目录,并解压:

[antdb@antdb setup]$ cd home/antdb/oracle/setup
[antdb@antdb setup]$ unzip ora2pg-24.2.tar.gz

编译安装ora2pg:

[antdb@antdb ora2pg-24.2]$ perl Makefile.PL
[antdb@antdb ora2pg-24.2]$ make && make install


使用ora2pg

注:使用前应编辑配置文件,配置文件默认路径为/etc/ora2pg/ora2pg.conf.dist。

2.1 测试ora2pg到Oracle源端的连通性

编辑配置文件,配置连接源端Oracle的连接串:

[root@antdb ora2pg]cp ora2pg.conf.dist ora2pg.conf
[root@antdb ora2pg]vim  ora2pg.conf

测试连接,有返回oracle版本信息则连接成功:

[root@antdb ora2pg]ora2pg -c ora2pg.conf -t SHOW_VERSION

2.2 配置ora2pg,导出oracle存储过程到指定目录

编辑配置文件:

[antdb@antdb ~]$ vim /home/antdb/oracle/conf/ora2pg_procedure_conf

创建导出sql文本存放目录:

[antdb@antdb ~]$ mkdir -p /home/antdb/oracle/data/uop_ecop

导出procedure sql文本:
[antdb@antdb ~]$ ora2pg -c ora2pg_procedure_conf  -t  procedure

2.3 把从Oracle侧导出的存储过程迁移至antdb

[root@antdb data]# psql -d dbname -h 10.0.0.1 -p 5432 -U user_name -f /home/antdb/oracle/data/ora2pg_procedure.sql

2.4 函数和触发器迁移至antdb

和上述存储过程流程一样,修改TYPE即可。


END


本文作者:郭 轲(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论