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工作已经完成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt开发 | Qt绘图技术 | 常见图像绘制 | Qt移动鼠标绘制任意形状 | Qt绘制带三角形箭头的窗口

文章目录 一、基本绘图技术介绍二、常见的18种图形、路径、文字、图片绘制三、Qt移动鼠标绘制任意形状四、Qt绘制带三角形箭头的窗口 一、基本绘图技术介绍 Qt提供了绘图技术,程序员可以在界面上拖动鼠标,或者在代码里指定参数进行绘图。 Qt绘图技术介绍…

Linux开发板(正点原子阿尔法_IMX6U)QT5.12.9交叉编译到ARM开发板(已解决)

问题记录:Qt下ctrlR直接构建项目,然后在build-01_led-Desktop_Qt_5_12_9_GCC_64bit-Debugz中将构建的执行文件,scp到ARM开发板下,发现通过指令./01_led后出现以下报错。 问题原因:因为Qt构建默认使用的是64bit的gcc&am…

钉钉扫码登录第三方

钉钉文档 实现登录第三方网站 - 钉钉开放平台 (dingtalk.com) html页面 将html放在 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录</title>// jquery<script src"http://code.jqu…

【优先级队列PriorityQueue】

目录 1&#xff0c;优先级队列 1.1 概念 2&#xff0c;优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 堆的向下调整&#xff08;大根堆&#xff09; 2.3.2 建堆的时间复杂度​编辑 2.4 堆的插入与删除 2.4.1 堆的插入 2.4.2 堆的删除 3&a…

香橙派5plus上跑云手机方案二 waydroid

前言 上篇文章香橙派5plus上跑云手机方案一 redroid(带硬件加速)说了怎么跑带GPU加速的redroid方案&#xff0c;这篇说下怎么在香橙派下使用Waydroid。 温馨提示 虽然能运行&#xff0c;但是体验下来只能用软件加速&#xff0c;无法使用GPU加速&#xff0c;所有会很卡。而且…

SpringCloudAlibaba Nacos配置中心与服务发现

目录 1.配置 1.1配置的特点 只读 伴随应用的整个生命周期 多种加载方式 配置需要治理 1.2配置中心 2.Nacos简介 2.1特性 服务发现与服务健康检查 动态配置管理 动态DNS服务 服务和元数据管理 3.服务发现 1.配置 应用程序在启动和运行的时候往往需要读取一些配置信…

AI古风插画视频:成都亚恒丰创教育科技有限公司

AI古风插画视频&#xff1a;科技与传统美学的诗意交融 在数字技术的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;以其惊人的学习能力与创造力&#xff0c;正逐步渗透并重塑着艺术的边界。成都亚恒丰创教育科技有限公司其中&#xff0c;AI古风插画视频作为一股清流&a…

Windows 黑暗模式是什么意思?如何开启它?

随着计算机和移动设备的普及&#xff0c;长时间盯着屏幕已经成为现代人生活和工作的常态。为了减轻眼睛疲劳&#xff0c;并在低光环境中提供更舒适的视觉体验&#xff0c;许多操作系统和应用程序都引入了黑暗模式&#xff08;Dark Mode&#xff09;。 Windows 黑暗模式就是其中…

Xubuntu24.04之图形界面挂载硬盘(二百六十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

双端队列,双指针

思路&#xff1a; 其实很容易想到是双指针或者双端队列。 我们设置一个type表示当前区间已经有了多少种厨师&#xff0c;同时还需要记录区间中每个元素出现的次数&#xff0c;然后比较棘手的是移动问题了&#xff0c;什么时候移动呢&#xff1f; 我们可以发现当区间当队头元…

静脉分割YOLOV8-SEG

静脉分割&#xff0c;YOLOV8*SEG资源-CSDN文库 首先使用YOLOV8-SEG训练&#xff0c;得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;从而摆脱PYTORCH依赖&#xff0c;支持C,PYTHON,ANDROID调用

STM32G474使用HRTIM触发多路ADC采样,通过DMA传输,通过串口打印显示,实现PWM中间时刻采样,避免开关噪声

本工程使用CUBEIDE进行配置以及编译调试&#xff0c;使用的硬件为STM32G474官方开发板NUCLEO-G474RE CUBEIDE配置 HRTIM配置 本章工程使用HRTIM定时器进行ADC的触发&#xff0c;打开主定时器&#xff0c;子定时器A,B,C。&#xff08;本工程未使用到A与C定时器&#xff0c;配置…

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

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

【中台建设-Word资料】企业数字化转型之数据中台架构、大数据支撑平台、资源库建设方案

通过中台建设实现企业能力复用&#xff0c;包括能力整合、业务创新、业务和数据闭环、组织模式演进等。 数字能力整合 企业的数字能力一般包括数字化营销、数字化产品、数字化供应链、数字化生产、数字化运营等。企业的数字化能力的充分利用&#xff0c;从而达到可持续发展。数…

2024年上海市安全员C3证证考试题库及上海市安全员C3证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年上海市安全员C3证证考试题库及上海市安全员C3证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试…

一键式创建GTest TDD测试平台

适用于C GTest测试平台搭建。直接上python脚本。 #!/usr/bin/env python3 # -*- coding: utf-8 -*-import argparse import os import platform import subprocess from xml.etree import ElementTree as ETdefault_root_path "d:\\test\\UTtest"class DeveloperTe…

江苏职教高考 计算机 C语言 复习资料

江苏职教高考计算机专业考试内容为 文化课专业课 其中专业课包含&#xff1a; 计算机原理45分 计算机组维45分 计算机网络60分 C语言 6080分 电子电工90分 具体资料可查看链接 链接&#xff1a;https://pan.baidu.com/s/1OXD-zK4V3NsLLDMwfXcTlA?pwd2822 提取码&…

Matlab|基于改进鲸鱼优化算法的微网系统能量优化管理matlab-源码

目录 一、主要内容 二、部分代码 三、运行结果 四、下载链接 一、主要内容 该程序为《基于改进鲸鱼优化算法的微网系统能量优化管理》源码&#xff0c;主要内容如下&#xff1a; 针对包含多种可再生能源的冷热电联供型微网系统的能量优化问题&#xff0c;为了优化其运行过程…

24小时悬停系留照明无人机技术详解

24小时悬停系留照明无人机是一款专门设计用于提供长时间、高效能照明服务的无人机系统。该系统结合了无人机技术与先进的照明设备&#xff0c;通过系留技术实现无人机的稳定悬停&#xff0c;从而提供连续不断的照明服务。该无人机能够在各种环境条件下进行24小时不间断工作&…

请编写函数,判断一字符串是否是回文,若是回文函数返回值为1,否则返回值为0,回文是顺读和倒读都一样的字符串

int gets_arr(char* p) {int i 0;int j strlen(p) - 1;while (i < j && p[i] p[j]){i;j--;}if (i<j){return 0;}else {return 1;}} int main() {printf("请输入一串字符串\n");char arr[100];gets(arr);int ret gets_arr(arr);if (ret 1){printf(…