postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用

news/2024/7/9 20:55:20 标签: 数据库, postgresql, mysql, oracle, 经验分享

前言:

有的时候有需求需要迁移Oracle数据库的数据到postgresql,那么,其实可供选择的工具是比较多的,但从迁移效率,准确度这些角度来选择的话,无疑还是GitHub上的开源免费工具ora2pg比较合适的。

ora2pg的优点是免费,迁移速度快,迁移数据准确,部署简单,快速

下面将介绍如何在A服务器 centos7下面部署安装ora2pg,在另一台服务器B上通过docker安装部署一个Oracle,并简单的写一些数据

环境简介:

A服务器的IP是192.168.123.11,操作系统是centos,安装有postgresql数据库

B服务器的IP是192.168.123.12,操作系统是centos,安装有docker启动的Oracle数据库

一,

postgresql的概况

pg数据库所在服务器的IP地址是 192.168.123.11

计划在此服务器上安装ora2pg

二,

ora2pg的安装部署

相关文件在百度网盘上,地址如下:

链接:https://pan.baidu.com/s/1ixb6Vi7aCvNXfzWOqM13rw?pwd=ora2 
提取码:ora2 
--来自百度网盘超级会员V5的分享

版本说明:

ora2pg的版本选用的比较高,考虑到pg数据库版本是12,Oracle数据库的版本是11g,还算比较新,并且ora2pg版本高一点,功能会稍微多一点。

架构说明:

ora2pg的工作原理是利用Oracle的客户端,通过dbd插件和dbi插件连接Oracle数据库,读取预设的自定义规则(自定义规则定义在ora2pg的配置文件内),按照设定规则扫描Oracle数据库内的目标表,逆向生成可供postgresql数据库直接使用的SQL存储语句

1,

dbi的安装

yum install -y perl-DBI

该插件基本不需要考虑太多版本问题,直接本地仓库yum安装即可。

2,

dbd的安装

cd DBD-Oracle-1.83/
perl Makefile.PL -l
make
make install

基本没什么好说的,基础的编译环境具备就可以了

3,

oracle的客户端安装

unzip instantclient-basic-linux.x64-19.20.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.20.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.20.0.0.0dbru.zip
mkdir -p  /opt/user/lib 
mv instantclient_19_20 /opt/user/lib
cd /opt/user/lib
chmod 755 /opt/user/lib/instantclient_19_20/
chmod 755 -Rf /opt/user/lib/instantclient_19_20/
echo "export PATH=/opt/user/lib/instantclient_19_20/:$PATH">>/etc/profile
echo "export LD_LIBRARY_PATH=/opt/user/lib/instantclient_19_20/:$LD_LIBRARY_PATH">>/etc/profile
source /etc/profile



4,

ora2pg的安装

该安装类似DBD的安装,没什么好说的

 cd ora2pg-23.1/
 perl Makefile.PL -l
 echo $?
 make
 echo $?
 make install
 echo $?

三,

Oracle数据库的部署

Oracle数据库部署非常简单,因为是测试性质,因此,使用docker结合docker-compose拉起Oracle数据库即可

[root@oula2 ~]# cat oracle.yaml 
version: '3'
services:
  oracle:
    restart: always
    image: hub.c.163.com/springwen/oracle12c
    container_name: oracle
    volumes:
      - /usr/local/oracle/data:/u01/app/oracle
      - /usr/local/oracle/source:/docker-entrypoint-initdb.d
    environment:
      - "TZ=Asia/Shanghai"
      - "DBCA_TOTAL_MEMORY=16192"
      - "IMPORT_FROM_VOLUME=true"
    ports:
      - 53432:1521
      - 36888:8080
    logging:
      driver: "json-file"
      options:
        max-size: "1g"

 

 使用sqldeveloper连接该数据库

sys用户的密码是oracle

创建emp测试表:

CREATE TABLE emp (  
  emp_id   NUMBER(10) PRIMARY KEY,  
  emp_name VARCHAR2(50),  
  emp_age  NUMBER(3),  
  emp_sal  NUMBER(10, 2)  
);

创建测试用户:

CREATE USER gzmpc
IDENTIFIED BY PASSWORD
DEFAULT TABLESPACE gzmoc_wk
TEMPORARY TABLESPACE gzmoc_wk_tablespace_temp;
grant create session to gzmpc;
grant create table to gzmpc;
grant unlimited tablespace to gzmpc;
ALTER USER gzmpc IDENTIFIED BY gzmpc;

未完待续!!!!


http://www.niftyadmin.cn/n/5010369.html

相关文章

系统架构设计师-嵌入式系统

目录 一、嵌入式系统概述 1、基本概念 2、嵌入式系统软件组成架构 二、嵌入式软件开发 三、嵌入式硬件 1、嵌入式微处理器 2、人工智能芯片 3、嵌入式微处理器体系结构 4、总线 四、嵌入式操作系统 1、嵌入式实时操作系统 2、操作系统内核架构 3、鸿蒙操作系统 五、嵌入式…

xxl-job-admin 核心类解析 XxlJobAdminConfig

com.xxl.job.admin.core.conf.XxlJobAdminConfig xxl-job-admin应用启动时springboot初始化的核心配置类 主要封装了一些属性: xxl.job.i18n > i18n: 目前仅支持: zh_CN zh_TC en 三种类型 xxl.job.accessToken > accessToken: 用于接口验证使用 spring.mai…

将AI融入到SEO中—基于Python的实现思路

在当今数字化时代,搜索引擎优化(SEO)对于网站和在线业务的成功至关重要。然而,随着人工智能(AI)技术的迅猛发展,我们可以利用它来提升SEO策略并取得更好的效果。本文将介绍如何通过使用Python编…

接口请求一次成功,一次失败,50%成功率

前提 User Center 是已经通过测试并部署的微服务,有用户注册,登录,验证码,用户信息管理等功能,但还未开放给用户使用。 对于UC,所有的接口自动化已经做好,覆盖率90%以上。 今天,UC的…

算法训练营day44|动态规划 part06:完全背包 (完全背包、 LeetCode518. 零钱兑换 II、377. 组合总和 Ⅳ )

文章目录 完全背包518. 零钱兑换 II思路分析代码实现思考总结 377. 组合总和 Ⅳ思路分析代码实现思考总结 完全背包 完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。 依然举这个例子: 背包最大重量为4。 物品为: 重量价值物品…

24张架构图讲透数据治理核心内容

加ghz“大数据食铁兽”,了解更多大数据资讯! 一、数据治理的框架和核心内容 不同的利益相关者群体对数据治理的关注点不一样,因此各自的视图也不一样。其中管理者视图可以概括为“五域模型”,分别是“管控域”、“过程域”、“治…

【算法题】2651. 计算列车到站时间

题目: 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 示例 1…

医用冷链行业案例|多场景定制化的海格里斯HEGERLS料箱式四向穿梭车立体库解决方案

近年来随着市场的需求量增大,仓储物流行业步入自动化系统集成时代,核心设备也由传统货架转变为智能仓储设备立体货架的存储方式,形成更加自动化、智能化的系统集成物流体系。其中,料箱式四向穿梭车立体库仓储解决方案凭借其速度快…