Centos7 被停用!如何利用 Ora2Pg 将 Oracle 迁移至 IvorySQL?

在过去的社区讨论中,想要使用或正在使用IvorySQL的社区用户,经常问到Oracle 如何迁移到 IvorySQL 中,而且近期随着 Centos7 官方已经停止维护,这一变动促使了很多将 Oracle 部署在 Centos7 上的 Oracle 用户,开始准备 Oracle 数据库的迁移工作。本文将通过介绍 Ora2Pg 工具的安装步骤及使用方法,为 Oracle 数据库迁移到IvorySQL提供一套清晰、可行的操作指南。

1 Ora2Pg 简介

Ora2Pg 是一款专门用于将 Oracle 数据库迁移到 PostgreSQL上的开源工具。而IvorySQL基于PostgreSQL开发,也同样适配Ora2Pg。

Ora2Pg由一个Perl 脚本(ora2pg)以及一个Perl 模块组成。https://github.com/darold/ora2pg/blob/master/lib/Ora2Pg.pm[Ora2Pg.pm]

使用Ora2Pg时唯一需要做的事情就是修改它的配置文件 ora2pg.conf,设置连接 Oracle 数据库的 DSN 和一个可选的 SCHEMA 名称

完成之后,只需要设置导出的类型:TABLE(包括约束和索引)、VIEW、MVIEW、TABLESPACE、SEQUENCE、INDEXES、TRIGGER、GRANT、FUNCTION、PROCEDURE、PACKAGE、PARTITION、TYPE、INSERT 或 COPY、FDW、QUERY、KETTLE 以及 SYNONYM。

默认情况下,Ora2Pg 会导出一个 SQL语句的 文件,可以通过 IvorySQL 客户端工具 psql 执行导出SQL文件。当进行数据迁移时,可以在配置文件中设置一个目标数据库的 DSN,直接将数据从Oracle导入到 IvorySQL 数据库中。

2 Ora2Pg 安装

数据库部署环境:

Linux环境

Oracle版本

IvorySQL版本

Centos 7.9

19.0.0.0

\

Ubuntu 24.04(Docker25.0.4)

\

3.2

2.1 yum安装perl、perl相关模块及其他工具

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

2.2 下载编译安装DBI

wget 

https://mirrors.sjtug.sjtu.edu.cn/cpan/modules/by-module/Plack/TIMB/DBI-1.643.tar.gz

tar zxvf DBI-1.643.tar.gz

cd DBI-1.643/

perl Makefile.PL

make && make install

2.3 下载编译安装 DBD-Oracle

wget --no-check-certificate 

https://www.cpan.org/modules/by-module/DBD/DBD-Oracle-1.76.tar.gz

export LD_LIBRARY_PATH=/opt/oracle/product/19c/dbhome_1/lib:$LD_LIBRARY_PATH

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1

tar -zxvf DBD-Oracle-1.76.tar.gz

cd DBD-Oracle-1.76

perl Makefile.PL

make && make install

2.4 下载编译安装 Ora2Pg

进入 

https://sourceforge.net/projects/ora2pg/ 

下载ora2pg-24.0.tar.bz2

tar -xjf ora2pg-24.0.tar.bz2

cd ora2pg-24.0

perl Makefile.PL

make && make install

3 Ora2Pg 工具使用

3.1 修改ora2pg.conf

cat /etc/ora2pg/ora2pg.conf.dist | grep -v ^# |grep -v ^$ >ora2pg.conf

vim ora2pg.conf

根据自己Oracle数据库信息,在ora2pg.conf修改信息,包括host,sid,port,用户名、密码,SCHEMA等,如下图所示。

图片

3.2 确认信息填写正确

信息修改完成后,通过查看oracle数据库版本号,确认ora2pg.conf可以使用

ora2pg -t SHOW_VERSION -c ora2pg.conf

图片

3.3 评估迁移成本

在数据库迁移过程中,评估迁移成本非常重要,而Ora2Pg拥有评估迁移成本的功能。

在评估过程中,Ora2Pg会检查所有数据库对象,所有函数和存储过程,以检测是否仍有一些对象和PL / SQL代码无法由Ora2Pg自动转换,最终,通过内容分析模式,生成有关Oracle数据库包含的内容和无法导出的内容的文本报告。

导出数据评估报告命令如下:

ora2pg -t SHOW_REPORT --estimate_cost -c ora2pg.conf

图片

3.4 查询源端对象类型,修改ora2pg.conf

select distinct OBJECT_TYPE from dba_objects where OWNER = 'BALINOR';

图片

通过Ora2Pg导出类型文档 

https://ora2pg.darold.net/documentation.html#Oracle-schema-to-export

修改ora2pg.conf

图片

3.5 开始数据库导出

使用导出命令,对数据库进行导出操作,命令如下:

ora2pg -c ora2pg.conf

导出成功后,将产生如下文件。

图片

之后,我们还需要对表中数据进行导出

vim ora2pg.conf

按下图标记处内容进行修改即可

图片

执行导出命令

ora2pg -c ora2pg.conf

图片

至此,所有数据均已导出,导出文件为:DATA_output.sql,FUNCTION_output.sql, PROCEDURE_output.sql,TABLE_output.sql,VIEW_output.sql

4

完成数据库迁移

在已经安装IvorySQL数据库的服务器上,对导出文件进行解压。

图片

4.1 迁移前准备

连接IvorySQL数据库,创建一个orcl数据库,并创建一个balinor的用户。

图片

4.2 导入表结构

psql orcl -U ivorysql -h 127.0.0.1 -p 1524

-f ./TABLE_output.sql

图片

4.3 导入数据

psql orcl -U ivorysql -h 127.0.0.1 -p 1524 -f ./DATA_output.sql

图片

4.4 导入存储过程

psql orcl -U ivorysql -h 127.0.0.1 -p 1524 -f ./PROCEDURE_output.sql

图片

4.5 导入函数

psql orcl -U ivorysql -h 127.0.0.1 -p 1524 -f ./FUNCTION_output.sql

图片

4.6 导入视图

psql orcl -U ivorysql -h 127.0.0.1 -p 1524 -f ./VIEW_output.sql

图片

4.7 检查迁移结果

在IvorySQL中,查看迁移的Table,View并测试Procedure,Function,均获得到正确结果。

图片

图片

图片

图片

至此,利用Ora2Pg工具将Oracle迁移到IvorySQL工作已经完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/376739.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iPhone 16 Pro系列将标配潜望镜头:已开始生产,支持5倍变焦

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 7月6日消息,据DigiTimes最新报道,苹果将在iPhone 16 Pro中引入iPhone 15 Pro Max同款5倍光学变焦四棱镜潜望镜头。 报道称,目前苹果已经将模组订单交至大立光电和玉…

【Linux】Linux背景历史

Linux背景历史 Linux背景Linux是什么?计算机的发展unix发展史Linux发展史开源Linux官网以及版本更替Linux企业应用现状 Linux环境的安装 Linux背景 Linux是什么? Linux(Linux Is Not UniX),一般指GNU/Linux,是一种免费使用和自由…

[misc]-流量包-wireshark-icmp

wireshark打开,大部分都是icmp,查看data部分 提取data长度: tshark.exe -r 1.pcapng -T fields -e data.len > length.txt 使用python解析这个文件,剔除异常值,每8个取一个值,得到flag ds [] with open(length.tx…

摩尔投票算法

文章目录 什么是摩尔投票算法算法思想 相关例题摩尔投票法的扩展题目解题思路代码奉上 什么是摩尔投票算法 摩尔投票法(Boyer-Moore Majority Vote Algorithm)是一种时间复杂度 为O(n),空间复杂度为O(1)的方法,它多数被用来寻找众数&#xf…

Android liveData 监听异常,fragment可见时才收到回调记录

背景&#xff1a;在app的fragment不可见的情况下使用&#xff0c;发现注册了&#xff0c;但是没有回调导致数据一直未更新&#xff0c;只有在fragment可见的时候才收到回调 // 观察通用信息mLightNaviTopViewModel.getUpdateCommonInfo().observe(this, new Observer<Common…

什么是im即时通讯?WorkPlus im即时通讯私有化部署安全可控

IM即时通讯是Instant Messaging的缩写&#xff0c;指的是一种实时的、即时的电子信息交流方式&#xff0c;也被称为即时通讯。它通过互联网和移动通信网络&#xff0c;使用户能够及时交换文本消息、语音通话、视频通话、文件共享等信息。而WorkPlus im即时通讯私有化部署则提供…

Flat Ads:金融APP海外广告投放素材的优化指南

在当今全球化的数字营销环境中,金融APP的海外营销推广已成为众多金融机构与开发者最为关注的环节之一。面对不同地域、文化及用户习惯的挑战,如何优化广告素材,以吸引目标受众的注意并促成有效转化,成为了广告主们亟待解决的问题。 作为领先的全球化营销推广平台,Flat Ads凭借…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(二)-支持高分辨率视频直播应用

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

c#调用c++ dll库报错System.BadImageFormatException

System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)” 1. dll需要选择release模式进行编译 2.选择相同位数&#xff0c;比如x64平台&#xff0c;c#也需要x64 3.不要设置c#不支持的函数供调用 比如&#xff1a; c可以输出到控制台…

5G-A通感融合赋能低空经济-RedCap芯片在无人机中的应用

1. 引言 随着低空经济的迅速崛起&#xff0c;无人机在物流、巡检、农业等多个领域的应用日益广泛。低空飞行器的高效、安全通信成为制约低空经济发展的关键技术瓶颈。5G-A通感一体化技术通过整合通信与感知功能&#xff0c;为低空网络提供了强大的技术支持。本文探讨了5G-A通感…

springboot上传图片

前端的name的值必须要和后端的MultipartFile 形参名一致 存储本地

蔚来汽车:拥抱TiDB,实现数据库性能与稳定性的飞跃

作者&#xff1a; Billdi表弟 原文来源&#xff1a; https://tidb.net/blog/449c3f5b 演讲嘉宾&#xff1a;吴记 蔚来汽车Tidb爱好者 整理编辑&#xff1a;黄漫绅&#xff08;表妹&#xff09;、李仲舒、吴记 本文来自 TiDB 社区合肥站走进蔚来汽车——来自吴记老师的演讲…

项目收获总结--本地缓存方案选型及使用缓存的坑

本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…

数学建模·非线性规划

整型规划 适用于一个变量或多个变量的值只能是整型的情况 整形规划的分类 0-1背包问题 对于一个物品来说&#xff0c;只有选和不选两种情况 表现为单下标&#xff0c;单变量问题 例&#xff1a;建设学校问题 对于每个学校来说只有选和不选两种情况&#xff0c;在数学上我们用…

轻松上手MYSQL:掌握MYSQL聚合函数,数据分析不再难

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨欢迎加入探索MYSQL聚合函数之旅✨ &#x1f44b; 大家好&#xff01;文本学习和探…

微服务-注册中心

一. 分布式系统架构与微服务 分布式系统架构和微服务是现代软件开发中常见的两种概念&#xff0c;它们通常结合使用来构建灵活、可扩展和高效的应用程序。 分布式系统架构&#xff1a; 分布式系统架构是指将一个单一的应用程序或服务拆分成多个独立的部分&#xff0c;这些部分…

第一部分:C++入门

目录 前言 1、C关键字(C98) 2、命名空间 2.1、命名空间定义 2.2、命名空间的使用 3、C输入&输出 4、缺省参数 4.1、缺省参数的概念 4.2、缺省参数的分类 5、函数重载 5.1、函数重载的概念 5.2、C支持函数重载的原理 6、引用 6.1、引用的概念 6.2、引用特性 …

ensp实现ICMP重定向实验

1 概述 ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下&#xff0c;当路由器检测到一台机器使用非优化路由的时候&#xff0c;它会向该主机发送一个ICMP重定向报文&#xff0c;请求主机改变路由。路由器也会把初始数据包向它的目的地转发。 2 实验复现 拓扑如下 PC1配…

RedHat Linux8 修改root管理员账户密码命令

RedHat Linux8 修改root管理员账户密码命令&#xff1a; sudo passwd root RedHat重置root管理员密码&#xff1a; 1. 查看Linux系统版本信息 cat /etc/redhat-release2. 重置密码 2.1 进入内核编辑界面 重启Linux系统并出现引导界面&#xff0c;按下键盘上的e键进入内…

ftp服务

文章目录 一、概述1.1 标准模式1.2 被动模式 二、FTP作用与工作原理2.1 FTP的作用和模式以及通信方式2.2 FTP工作原理与流程2.2.1 主动模式的工作原理2.2.2 被动模式的工作原理2.2.3 主动和被动模式的区别 三、搭建和配置FTP服务3.1 安装前准备工作3.1.1 关闭防火墙和增强型安全…