前语

介绍一款开源的数据库同步软件,因为日常的线上环境与测验环境经常出现频频的数据同步问题。有时分需求指定的数据库,指定的数据表乃至指定的表字段进行同步,这时分就需求一款优异的中间件来帮忙完成这件工作。在查阅几款中间件,例如 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
  • 开源地址:gitee.com/ghi/dbsynce…
  • 作者博客:my.oschina.net/dbsyncer

二、入门

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 的操作时,发现未能进行结构同步。

但全体上运用是十分简略的,功用也很强大。