赞
踩
记一次oracle数据库数据迁移到mysql数据库的全过程,供以后参考!
oracle数据库版本:Oracle Database 11g mysql数据库版本:mysql8.0.20
oracle数据库服务器地址:119.1.12.123 mysql数据库服务器地址:119.1.12.123
操作环境:windows10 迁移工具:OracleSync2MySQL
在github上下载工具到本地,下载和操作平台相对应的工具包,我选择下载windows相关
下载后解压压缩包,我解压后的路径:E:\app\OracleSync2MySQL-win-x64-v0.1.3,如下
打开example.yml文件,编辑相应数据库的连接信息
src:
host: 119.1.12.123
port: 1521
database: orcl
username: dashuaige
password: dashuaige666
dest:
host: 119.1.12.123
port: 3306
database: oracle_data
username: root
password: dashuaige666
pageSize: 100000
maxParallel: 100
batchRowSize: 1000
tables:
test:
- select * from test
exclude:
operationlog
params: { charset:utf8, maxAllowedPacket:0 }
yml解释:
src: #是需要被导出的oracle数据库信息
host: 119.1.12.123 #oracle地址
port: 1521 #oracle端口
database: orcl #模式名(库名)
username: dashuaige #用户名
password: dashuaige666 #密码dest: #目标mysql数据库信息
host: 119.1.12.123 #mysql地址
port: 3306 #mysql端口号
database: oracle_data #数据库名称(需要提前建好)
username: root #用户名
password: dashuaige666 #密码
pageSize: 100000 #分页查询每页的记录数
maxParallel: 100 #可以同时运行 goroutine 的最大并发数(golang语言开发的,goroutine 网上的解释是一个执行单元,我的理解就是一个线程)
batchRowSize: 1000 #批量插入目标表中的行数
tables: #自定义迁移表和自定义查询源表,以yml格式缩进
test: #我的理解是可以指定要迁移的表,数据用sql语句指定
- select * from test #仅个人观点,有待验证,欢迎有兴趣的大佬测试指正
exclude: #不迁移到目标数据库的表,缩进为 yml 格式
operationlog #不想迁移的表or需要排除的表(个人观点)
params: { charset:utf8, maxAllowedPacket:0 } #作者大佬没写,感觉像go程序运行的参数
修改完配置信息后保存文件
以管理员身份运行cmd窗口,进入到工具目录,E:\app\OracleSync2MySQL-win-x64-v0.1.3(这是我的工具目录)
然后运行命令启动工具(我是全量数据迁移,所以执行以下命令;工具作者还提供了好几种其他的迁移模式,可以根据自己的需求去作者的github上查看)
OracleSync2MySQL.exe --config example.yml
执行完命令后等待迁移完成,完成迁移后会生成数据迁移日志摘要(respect!)
在迁移完成后,可以比较源表和目标数据库表行,仅显示不正常的表,输入以下命令查看
OracleSync2MySQL.exe --config example.yml compareDb
example.yml #你的配置文件名称,例如我的:example.yml(没改过配置文件名称直接使用如上命令即可)
贴上工具作者大大的一张比较示例图:
表比较的结果,只会显示对比不正常的表。表头解释(个人理解)
Table: #顾名思义,数据表名称
SourceRows: #源数据表数据行数
DestRows: #目标表数据行数
DestIsExist: #目标数据库是否存在该表
isOk: #是否迁移成功
至于没有迁移成功的表可以自行手动迁移或者另寻他法!
ps:此文用以记录此次迁移的全过程,仅供参考(个人已经迁移成功)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。