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

Oracle数据搬迁到MogDB/openGauss方法导论

原创 美美 2022-09-09
2394

前言

     在实际工作中我们一定会有这样的需求,要把Oracle的数据文件搬迁到openGauss或者MogDB上。基本上用三种方法可以实现搬迁,以下是对方法进行逐一的操作。

     当我们想把Oracle格式的SQL文件导入到MogDB数据库时,我们可以借助navicat工具,先将SQL文件导入到Oracle数据库中,再使用数据传输功能把SQL中的对象和数据直接导入到MogDB。或者使用数据传输功能将这些对象的定义和数据导出成PG格式的SQL语句,再导入到MogDB数据库中。

搬迁方法:

1、    方法一:将oracle数据SQL文件(oracle.sql)导入到oracle的test数据库;

2、    方法二:将导入到test数据库的数据库对象导出为PostgreSQL格式的SQL文件test.sql,再将test.sql文件导入到mogdb的oracle数据库。

3、    方法三:Oracle数据表搬迁到MogDB/openGauss数据库比较容易想到的两个工具是oracle_fdw及Ora2Pg。

方法一:

    将oracle格式SQL文件(oracle.sql)导入到oracle的test数据库:

           oracle.sql 文件内容:CREATE TABLE `oracle` (

           `ID` int(11) NOT NULL COMMENT '用户ID',

           `Name` varchar(50) NOT NULL COMMENT '姓名',

          `Notes` varchar(200) DEFAULT NULL COMMENT '注释',

           PRIMARY KEY (`ID`)

           ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';

使用navicat工具连接oracle:



 右键点击打开连接:

双击test用户,右键选择运行SQL文件:

 

 选择oracle.sql文件位置,并点击开始:

 导入成功后,点击关闭:

查询test数据库下已成功创建表oracle:

从oracle的test数据库导入到MogDB数据库

将导入到test数据库的数据库对象导出到MogDB的数据库。

在navicat中连接MogDB数据库:

填写MogDB数据库连接信息后,点击确认:

右键点击打开连接:

菜单栏选择工具——数据传输:

选择正确的源数据库和目标数据库信息后,点击下一步:


选择要传输的数据库对象,点击下一步:

确认无误后,点击开始:

传输完成后点击关闭:

SQL文件中的对象成功导入到MogDB数据库:

方法二:

       将导入到test数据库的数据库对象导出为PostgreSQL格式的SQL文件test.sql,再将test.sql文件导入到mogdb的oracle数据库。

菜单栏选择工具——数据传输:

选择正确的源数据库和导出文件格式(这里选择PostgreSQL),点击下一步:

选择要导出的对象,点击下一步:

确认无误,点击开始:

导出成功,点击关闭

Test.sql 文件内容:/* Navicat Premium Data Transfer Source Server : oracle Source Server Type : ORACLE Source Server Version : 80019 Source Host : localhost:3306 Source Schema : test Target Server Type : PostgreSQL Target Server Version : 130000 File Encoding : 65001 Date: 15/08/2022 10:21:59*/-- ------------------------------ Table structure for Oracle

-- ----------------------------

DROP TABLE IF EXISTS "test"."Oracle";

CREATE TABLE "test"."Oracle" (

"ID" int4 NOT NULL,

"Name" varchar(50) NOT NULL,

"Notes" varchar(200)

);

COMMENT ON COLUMN "test"." Oracle "."ID" IS '用户ID';

COMMENT ON COLUMN "test"." Oracle "."Name" IS '姓名';

COMMENT ON COLUMN "test"." Oracle "."Notes" IS '注释';

COMMENT ON TABLE "test"." Oracle " IS '测试表';

-- ----------------------------

-- Records of Oracle

-- ----------------------------

BEGIN;

COMMIT;

-- ----------------------------

-- Primary Key structure for table Oracle

-- ---------------------------

ALTER TABLE "test"." Oracle " ADD PRIMARY KEY ("ID");

打开MogDB,右键点击Oracle数据库选择运行SQL文件,将test.sql文件导入:

确认无误,点击开始。

     此时要注意,MogDB中Oracle数据库下要存在与导出数据库同名的schema(也就是test),并且导入用户要是test模式的拥有者。


导入成功,点击关闭:

     在MogDB的Oracle数据库的test模式下导入了表Oracle。

方法三:

             Oracle数据表搬迁到MogDB/openGauss数据库比较容易想到的两个工具是oracle_fdw及Ora2Pg。

             Ora2Pg是一个将Oracle迁移至PostgreSQL的开源工具,通过连接Oracle数据库,自动扫描并提取其中的对象结构及数据,产生SQL脚本,通过手动或自动的方式将其应用到PostgreSQL。

             Ora2Pg主要语言是perl,使用Perl DBI模块,通过DBD:Pg连接PostgreSQL目标数据库,openGauss兼容PostgreSQL的通信协议以及绝大部分语法,因此只需作部分命名上的修改,Ora2Pg同样可应用于openGauss。

     如果是搬迁到MogDB上,可以用MogDB的MTK软件,这也是个不错的选择。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论