Oracle数据库迁移到MySQL数据库

目录

一、下载迁移工具

二、编辑配置文件

三、完整数据库迁移

四、比较源数据库和目标数据库

五、部分表迁移

六、其他迁移模式


源数据库:Oracle 11g

目标数据库:MySQL 5.7.28

操作环境:Windows 7

扫描二维码关注公众号,回复: 17607830 查看本文章

迁移工具:OracleSync2MySQL

一、下载迁移工具

下载和操作平台相对应的OracleSync2MySQL工具,这里选择下载windows相关,下载后解压。

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

二、编辑配置文件

打开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
  username: root
  password: 11111
pageSize: 100000
maxParallel: 100
batchRowSize: 1000
tables:
  test:
    - select * from test
exclude:
  operationlog
params: { charset:utf8, maxAllowedPacket:0 }

 配置项解析:

  • src:源数据库oracle配置
  • dest:目标数据库mysql配置
  • pageSize:分页查询每页记录数
  • maxParallel:可以同时运行goroutine的最大并发数(golang语言开发的)
  • batchRowSize:批量插入目标表的行数
  • tables:自定义迁移表和自定义表数据查询,以yml格式缩进
  • exclude:不迁移到目标数据库的表,以 yml 格式缩进

三、完整数据库迁移

以管理员身份运行cmd窗口,进入到工具解压目录

运行以下命令,执行完整数据库迁移

# 完整数据库迁移
OracleSync2MySQL.exe --example.yml

整个数据库迁移完成后会生成迁移摘要,观察是否有失败的对象,通过查询迁移日志可以分析失败的对象。

+-------------------------+---------------------+-------------+----------+
|        SourceDb         |       DestDb        | MaxParallel | PageSize |
+-------------------------+---------------------+-------------+----------+
| 192.168.149.37-sourcedb | 192.168.149.33-test |     30      |  100000  |
+-------------------------+---------------------+-------------+----------+

+-----------+----------------------------+----------------------------+-------------+--------------+
|Object     |         BeginTime          |          EndTime           |FailedTotal  |ElapsedTime   |
+-----------+----------------------------+----------------------------+-------------+--------------+
|Table      | 2023-07-21 17:12:51.680525 | 2023-07-21 17:12:52.477100 |0            |796.579837ms  |
|TableData  | 2023-07-21 17:12:52.477166 | 2023-07-21 17:12:59.704021 |0            |7.226889553s  |
+-----------+----------------------------+----------------------------+-------------+--------------+

Table Create finish elapsed time  5.0256021s

四、比较源数据库和目标数据库

迁移完成后,可以比较源表和目标数据库表的行,仅显示失败的表。

# 比较源表和目标数据库表的行
OracleSync2MySQL.exe --config example.yml compareDb

显示比较失败的表,没有迁移成功的表可以自行手动迁移 

Table Compare Result (Only Not Ok Displayed)
+-----------------------+------------+----------+-------------+------+
|Table                  |SourceRows  |DestRows  |DestIsExist  |isOk  |
+-----------------------+------------+----------+-------------+------+
|abc_testinfo           |7458        |0         |YES          |NO    |
|log1_qweharddiskweqaz  |0           |0         |NO           |NO    |
|abcdef_jkiu_button     |4           |0         |YES          |NO    |
|abcdrf_yuio            |5           |0         |YES          |NO    |
|zzz_ss_idcard          |56639       |0         |YES          |NO    |
|asdxz_uiop             |290497      |190497    |YES          |NO    |
|abcd_info              |1052258     |700000    |YES          |NO    |
+-----------------------+------------+----------+-------------+------+ 
INFO[0040] Table Compare finish elapsed time 11.307881434s 

五、部分表迁移

只迁移部分表而非整个数据库,需要先配置example.yml中自定义的表名和表数据查询语句。

运行以下命令,执行部分表迁移 

# 部分表迁移
OracleSync2MySQL.exe  --config example.yml -s

六、其他迁移模式

# 完整表结构迁移
OracleSync2MySQL.exe  --config example.yml createTable -t

# 部分表结构迁移
OracleSync2MySQL.exe  --config example.yml createTable -s -t

# 完整表数据迁移
OracleSync2MySQL.exe  --config example.yml onlyData

# 部分表数据迁移
OracleSync2MySQL.exe  --config example.yml onlyData -s

# 不迁移任何数据,仅转储 DDL 语句,输出到日志文件中的 createSql.log
OracleSync2MySQL.exe  --config example.yml -m

猜你喜欢

转载自blog.csdn.net/BigCookies/article/details/145853904
今日推荐