使用数据库同步中间件DBSyncer实现不同数据库的数据同步

点击上方蓝字关注我

有去O(ORACLE数据库)、信创、国产化数据库等项目实践的同学应该都遇到过不同数据库之前进行数据迁移的问题,虽然有各种工具可以实现,但是有些工具的部署、使用比较复杂,也有些工具迁移数据效率很低。本文将介绍一款开源且部署、使用简单、迁移相对高效的数据库中间件DBSyncer来进行数据迁移。该工具支持Oracle、MySQL、PostgreSQL、 SQL SERVER、ES、Kafka等数据库之间的迁移。

1. 部署

推荐机器配置:内存8GB,4core,磁盘60GB(建议上好点的SSD)

本次在Linux服务器上进行部署

1.1部署JDK

根据官方文档指引,需要安装JDK8,具体可以自行在官方下载安装


我使用的8.0.191也可以

1.2 下载安装包并进行部署启动

DBSyncer分社区版记专业版,如果想试用专业版功能可以自行测试,本文将使用社区版进行测试。

下载:

社区版下载地址:https://gitee.com/ghi/dbsyncer/releases

为了体验新特性及优化后的功能,可以下载最新版本,当前最新版本为2.0.4,选择并进行下载

ruby 复制代码
wget https://gitee.com/ghi/dbsyncer/releases/download/v2.0.4/dbsyncer-2.0.4-bin.zip

解压、启动:

python 复制代码
unzip dbsyncer-2.0.4-bin.zip

bin目录下有启停脚本、执行运行即可

bash 复制代码
# 启动sh startup.sh

看到"Start successfully!"即启动成功

启动后的管理页面可以通过 http:// ip:18686进行登录查看,默认管理账号密码为 admin/admin

2. 数据迁移

2.1 准备工作

本次测试的是从Oracle迁移数据至MySQL,因此先在Oracle数据库中创建一张表及测试数据,在MySQL数据库中也创建一张表

Oracle库:

sql 复制代码
CREATE  TABLE  test1(id int ,c1 varchar(20))INSERT INTO  test1 values(1,'a');INSERT INTO  test1 values(2,'b');commit;

MySQL库:

sql 复制代码
CREATE TABLE  test1(id INT PRIMARY KEY ,c1 VARCHAR(20));

2.2 配置数据源

配置一个名为oracle1的数据源,对应填写连接信息、账号密码等,完成后保存即可

如果保存时不报错,则说明连接添加成功,如果保存过程中有错误,则按照错误信息进行解决。

再配置一个MySQL数据源作为目标库,MySQL的连接URL里要注意库名的配置

保存后即可在界面上看到对应的数据源

2.3 配置迁移任务

这个版本点击"添加驱动"进行数据迁移任务的配置(建议修改名称,以免有误解)

先选择源目数据源,并配置一个任务名称

保存后进行相关表影射等配置,例如选择表名及目标表,对应的主键名等

在高级配置中还可以进行其他的转换配置等

任务配置完成后,可以在页面上看到同步列表

2.4 启动任务

点击右上角的启动按钮即可启动本任务

启动后会显示"运行中""的状态

完成后会显示进度、耗时及成功数量

去目标库中查看结果,可以发现数据已同步进MySQL,至此本次数据迁移完成。

3. 小结

根据DBSyncer官方介绍,社区版的效率确实相对于专业版迁移效率差别很大,大家可以下载测试一下。另外,也可以配置大字段、大表,不同数据库的兼容配置、增量同步等进行更个方面的测试。

除了DBSyncer,其他的数据迁移工具也可以多尝试及对比

往期精彩回顾

  1. MySQL高可用之MHA集群部署

2. mysql8.0新增用户及加密规则修改的那些事

3. 比hive快10倍的大数据查询利器-- presto

4. 监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

  1. PostgreSQL主从复制--物理复制

  2. MySQL传统点位复制在线转为GTID模式复制

7. MySQL敏感数据加密及解密

8. MySQL数据备份及还原(一)

9. MySQL数据备份及还原(二)

扫码关注

相关推荐
道亦无名5 小时前
aiPbMgrSendAck
java·网络·数据库
面向对象World8 小时前
正点原子Mini Linux 4.3寸800x480触摸屏gt115x驱动
linux·服务器·数据库
dinga198510269 小时前
mysql之联合索引
数据库·mysql
微风中的麦穗9 小时前
【SQL Server 2019】企业级数据库系统—数据库SQL Server 2019保姆级详细图文下载安装完全指南
大数据·数据库·sqlserver·云计算·个人开发·运维必备·sqlserver2019
zjttsh10 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
顾北1210 小时前
SpringCloud 系列 04:Gateway 断言 / 过滤器 / 限流 一站式落地指南
java·开发语言·数据库
禹凕10 小时前
MYSQL——基础知识(NULL 值处理)
数据库·mysql
码云数智-大飞10 小时前
SQL Server 无法启动?常见原因及详细解决方法指南
数据库
84869811910 小时前
MySQL 只读库踩坑实录:为什么 INSERT/UPDATE 不报错,DELETE 却直接炸了?
数据库·mysql·hibernate
没事偷着乐琅10 小时前
二、Pandas 是啥 是数据库吗?
数据库·pandas