0
点赞
收藏
分享

微信扫一扫

国产化数据迁移:从Oracle到MySQL平台的数据无缝迁移工具

一、前言

因为国产化的需要,将Oracle数据迁移至MySQL数据库(OceanBase等)中。所以,找到一款迁移数据的工具:OracleSync2MySQL(不能迁移存储过程 自增主键,需要自己改造)。


原文地址: 国产化数据迁移:从Oracle到MySQL平台的数据无缝迁移工具


二、工具特性

OracleSync2MySQL 是一款在线迁移工具,支持将Oracle数据库迁移到多种MySQL内核目标数据库,包括 MySQL、PolarDB、Percona Server MySQL、MariaDB、OceanBase、TiDB、GaussDB for MySQL。


开源地址:OracleSync2MySQL

主要功能:


迁移全库表结构和表行数据到目标数据库。

目标数据库的表结构只需为源库的超集即可迁移行数据。

支持多线程批量迁移表行数据。

提供源库和目标库数据比对功能。

下载地址: OracleSync2MySQL下载



三、使用方法

以下以Windows平台为例,其它操作系统的命令行参数相同。


注意: 在Windows系统中,请在CMD中运行本工具;在MacOS或Linux系统中,请在有读写权限的目录下运行。


如果在Linux环境下运行,请先设置环境变量LD_LIBRARY_PATH,指向当前工具目录下的instantclient,如下:


export LD_LIBRARY_PATH=./instantclient

1

3.1 编辑配置文件

首先,编辑example.yml配置文件,填写源库和目标数据库的信息:


src:

 host: 192.168.1.200

 port: 1521

 database: orcl

 username: admin

 password: oracle

dest:

 host: 192.168.1.37

 port: 3306

 database: test_polar

 username: root

 password: 11111

pageSize: 100000

maxParallel: 100

batchRowSize: 1000

tables:

 test:

   - select * from test

exclude:

 operationlog

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

配置说明:


database: src为Oracle服务名,dest为MySQL数据库名称。

pageSize: 分页查询的每页记录数。

maxParallel: 最大并发数。

tables: 自定义迁移的表及其查询语句。

exclude: 排除不需要迁移的表。

batchRowSize: 批量插入行数。

3.2 全库迁移

使用以下命令迁移全库的表结构、行数据、索引、约束和自增列等对象:


OracleSync2MySQL.exe --config example.yml

1

如果是Linux或macOS系统,请使用以下命令:


export LD_LIBRARY_PATH=./instantclient

./OracleSync2MySQL --config example.yml

1

2

3.3 查看迁移摘要

全库迁移完成后,将生成迁移摘要,可查看是否有失败的对象。通过查询迁移日志可以分析失败的原因。


3.4 比对数据库

迁移完成后,可以使用以下命令比对源库和目标库,检查是否有迁移数据失败的表:


OracleSync2MySQL.exe --config example.yml compareDb

1

在Linux和MacOS系统中,使用以下命令:


./OracleSync2MySQL --config example.yml compareDb

1

四、其他迁移模式

4.1 全库迁移

迁移全库表结构、行数据、视图、索引约束、自增列等对象:


OracleSync2MySQL.exe --config example.yml

1

4.2 自定义SQL查询迁移

仅迁移配置文件中自定义查询语句的表结构和表行数据:


OracleSync2MySQL.exe --config example.yml -s

1

4.3 迁移全库表结构

仅迁移表结构,不包括行数据:


OracleSync2MySQL.exe --config example.yml createTable -t

1

4.4 迁移自定义表的表结构

仅迁移配置文件中自定义的表结构:


OracleSync2MySQL.exe --config example.yml createTable -s -t

1

4.5 迁移全库行数据

仅迁移行数据,不包括表结构:


OracleSync2MySQL.exe --config example.yml onlyData

1

4.6 迁移自定义表的行数据

仅迁移配置文件中自定义查询的行数据:


OracleSync2MySQL.exe --config example.yml onlyData -s

1

4.7 输出建库脚本

不迁移数据,仅输出DDL语句到日志文件createSql.log:


OracleSync2MySQL.exe --config example.yml -m


举报

相关推荐

0 条评论