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://xiahunao.cn/news/3225382.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

习题练习以

题意:求i&M的popcount的和,i属于0……N 主要思路还是变加为乘。 举个例子N22,即10110 假设M的第3位是1,分析N中: 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…

qt 用数据画一个图,并表示出来

1.概要 想用数据绘制一个画面,看有相机到播放的本质是啥。 要点 // 创建一个QImage对象,指定图像的宽度、高度和格式 QImage image(width, height, QImage::Format_Grayscale8); // 将像素数据复制到QImage对象中 memcpy(image.bits(), pixelD…

项目进度计划、软件部署、调试方案

项目进度计划 项目计划工期:合计3000日历天完成整体项目交付。 软件部署 办公管理系统是一项复杂、长期的系统工程,为保证业务系统能够顺利地进行实施,必须要制定科学、合理、切实可行的实施计划。一方面要从组织上进行落实,成立强有力的项目领导小组和经验丰富的项目实…

实用教程:用 Go 的 net/textproto 包优化文本协议处理

实用教程:用 Go 的 net/textproto 包优化文本协议处理 介绍准备工作环境设置Go 基础回顾 基础使用创建连接发送请求接收响应 高级特性处理 MIME 头多行响应的管理错误处理与调试 实战案例实现一个简单的邮件客户端实现一个基于 net/textproto 的命令行工具 最佳实践…

【微服务】Spring Cloud中如何使用Eureka

文章目录 强烈推荐引言主要功能Eureka 的架构使用示例Eureka Server 配置Eureka Client 配置示例服务服务发现调用示例 Spring Cloud如何实现服务的注册?1. 搭建 Eureka 服务注册中心2. 配置服务注册到 Eureka3. 验证服务注册 总结应用场景1. 动态服务发现2. 负载均衡3. 服务治…

开启新纪元!被AI驱动的游戏世界,提升游戏体验

随着人工智能的高速发展,人工智能逐渐应用到了生活中的方方面面,人工智能在游戏中也有诸多应用,在游戏里领域扮演了相当重要的角色。游戏AI是伴随着电子游戏而出现的,在早期的游戏中就出现了对抗类AI角色,后来逐渐出现…

接口基础知识1:认识接口

课程大纲 一、定义 接口:外部与系统之间、内部各子系统之间的交互点。 比如日常使用的电脑,有电源接口、usb接口、耳机接口、显示器接口等,分别可以实现:与外部的充电、文件数据传输、声音输入输出、图像输入输出等功能。 接口的本…

【HBZ分享】TCP连接完成后又是如何保证数据的可靠性传输

前提 发送发发送数据时,需要给出一个seq编号。第一个数据包的seq编号是一个随机数, 从第二个开始,seq编号就是【第一次的seq数据包大小】, 即接收方响应过来的期待数据包编号 ACK机制 接收方收到数据后,要给发送方回…

阐述 C 语言中的参数传递机制

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 📙C 语言百万年薪修炼课程 通俗易懂,深入浅出,匠心打磨,死磕细节,6年迭代,看过的人都说好。 文章目…

PolSARPro软件安装处理Sentinel1A数据(CSDN_20240707)

PolSARpro是由法国雷恩第一大学(Universit de Rennes 1)电子和电信学院教授Eric Pottier1等人带头开发的专门用于PolSAR(极化合成孔径雷达)、Pol-InSAR(极化干涉合成孔径雷达)、Pol-TomoSAR(极化层析合成孔径雷达&…

如何在 ASP.NET MVC 项目中使用身份验证器应用程序实现多因素身份验证?

介绍 增强安全性对于任何应用程序都至关重要,而多因素身份验证 (MFA) 是实现此目标的有效方法。在本文中,我们将介绍在 ASP.NET MVC 项目中使用身份验证器应用程序集成 MFA 的过程。无论您是从头开始还是将 MFA 添加到现有项目,本指南都将提…

谷粒商城学习笔记-23-分布式组件-SpringCloud Alibaba-Nacos配置中心-简单示例

之前已经学习了使用Nacos作为注册中心,这一节学习Nacos另外一个核心功能:配置中心。 一,Nacos配置中心简介 Nacos是一个易于使用的平台,用于动态服务发现和配置管理。作为配置中心,Nacos提供了以下核心功能和优势&am…

高盛开源的量化金融 Python 库

GS Quant GS Quant是用于量化金融的Python工具包,建立在世界上最强大的风险转移平台之一之上。旨在加速量化交易策略和风险管理解决方案的开发,凭借25年的全球市场经验精心打造。 它由高盛的定量开发人员(定量)创建和维护&#…

TCP Analysis Flags 之 TCP Previous segment not captured

前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…

从零开始学习嵌入式----Linux系统命令集合与shell脚本

Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? shell本身就是一门解释型、弱类型、动态语言,与python相对应,Python属于解…

C++ 帕斯卡三角形(Pascal’s Triangle)

帕斯卡三角形是二项式系数的三角形阵列。编写一个函数,以整数值N作为输入,并打印帕斯卡三角形的前N​​行。 例子: 下图显示了 N6 的帕斯卡三角形 使用二项式系数的帕斯卡三角形: 每行的条目数等于行号。例如&#xff…

600Kg大载重起飞重量多旋翼无人机技术详解

600Kg大载重起飞重量的多旋翼无人机是一种高性能的无人驾驶旋翼飞行器,具有出色的载重能力和稳定的飞行特性。该无人机采用先进的飞行控制系统和高效的动力系统,能够满足各种复杂任务的需求,广泛应用于物资运输、应急救援、森林防火等领域。 …

第一章(下)——计算机的性能指标

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

vue实现预览编辑ppt、word、pdf、excel、等功能的解决方案(内网-前端)

在Vue中实现预览和编辑PPT、Word、PDF、Excel等文件的功能,尤其是在内网环境下且主要侧重于前端,我们需要明确的是,直接在前端编辑这些格式的文件(特别是PPT和Word)是非常复杂且通常不推荐的,因为这些格式涉…

智能汽车网络安全笔记

汽车五大域 动力底盘、车身控制、智能座舱、智能网联和高级辅助驾驶五大域 国外汽车安全法规标准 汽车网络安全管理体系(CSMS) CSMS指的是管理汽车的网络威胁和风险,并保护车辆免受网络攻击的组织过程和管理系统 安全验证和安全测试 8…