likes
comments
collection
share

【开源】数据库同步工具 DBSyncer 介绍

作者站长头像
站长
· 阅读数 10

前言

介绍一款开源的数据库同步软件,因为日常的线上环境与测试环境经常出现频繁的数据同步问题。有时候需要指定的数据库,指定的数据表甚至指定的表字段进行同步,这时候就需要一款优秀的中间件来帮忙完成这件事情。在查阅几款中间件,例如 Tapdata cloud(收费,免费没有可视化界面)、DataX(仅支持全量)、Canal(还需额外写代码?),最终敲定 DBSyncer,上手非常简单。

一、介绍

DBSyncer 是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServer、Elasticsearch(ES)、SQL(Mysql/Oracle/SqlServer)等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

特点

  • 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
  • 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
  • 开发插件,自定义转化同步逻辑
连接器数据源目标源支持版本(包含以下)
Mysql✔️✔️5.7.19以上
Oracle✔️✔️10g以上
SqlServer✔️✔️2008以上
ES✔️✔️6.X以上
SQL✔️
最近计划kafka(设计中)、Redis

二、入门

2.1 环境安装

按需要准备好 java 环境后。

1、下载软件

dbsyncer-1.2.2-RC_1201.zip

2、解压文件 unzip

3、进入 bin 目录启动安装目录

4、开发 centos 的18686 端口

5、登录 ip:18686 平台,输入 admin/admin

【开源】数据库同步工具 DBSyncer 介绍

2.2 同步 Mysql 数据库

2.2.1 添加连接和驱动

将 10.240.30.85 下的 test_db 库 同步到 10.240.30.93 下的test_db 库。

查看数据库是否开启 binlog日志(原理还是binlog日志)

> show binary logs;
  • 添加连接

【开源】数据库同步工具 DBSyncer 介绍

【开源】数据库同步工具 DBSyncer 介绍

  • 添加驱动

【开源】数据库同步工具 DBSyncer 介绍

  • 增量同步

【开源】数据库同步工具 DBSyncer 介绍

  • 点击启动

【开源】数据库同步工具 DBSyncer 介绍

2.2.2 无法启动问题

发现在进行增量同步、日志同步方式的时候会自动断开,查看日志错误信息如下:

    com.github.shyiko.mysql.binlog.network.AuthenticationException: Client does not support authentication protocol requested by server; consider upgrading MySQL client

重新创建用户:

create user 'dev_xl'@'%' identified by 'Dev@xl2021';
alter user 'dev_xl'@'%' IDENTIFIED with mysql_native_password by 'Dev@xl2021';
​
grant all privileges on *.* to 'dev_xl'@'%';
FLUSH PRIVILEGES;

然后使用这个账户进行配置数据源。

2.2.3 更新表问题

在做同步的时候,如果添加完驱动后,在进行新增表,这时发现数据源表查不出来,可以进入驱动配置页面,重新保存,然后回去看数据源表是否更新即可。

比如我新增一个 test 表后,点击这个数据源发现查不出。

【开源】数据库同步工具 DBSyncer 介绍

进入修改连接后保存即可。

【开源】数据库同步工具 DBSyncer 介绍

2.3 测试使用

在源头表进行新增、删除、修改测试发现都能达到效果。

但对表 DDL 的操作时,发现未能进行结构同步。

但整体上使用是非常简单的,功能也很强大。