前语
介绍一款开源的数据库同步软件,因为日常的线上环境与测验环境经常出现频频的数据同步问题。有时分需求指定的数据库,指定的数据表乃至指定的表字段进行同步,这时分就需求一款优异的中间件来帮忙完成这件工作。在查阅几款中间件,例如 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
2.2 同步 Mysql 数据库
2.2.1 增加连接和驱动
将 10.240.30.85 下的 test_db 库 同步到 10.240.30.93 下的test_db 库。
检查数据库是否开启 binlog日志(原理仍是binlog日志)
> show binary logs;
- 增加连接
- 增加驱动
- 增量同步
- 点击发动
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 表后,点击这个数据源发现查不出。
进入修正连接后保存即可。
2.3 测验运用
在源头表进行新增、删去、修正测验发现都能达到效果。
但对表 DDL 的操作时,发现未能进行结构同步。
但全体上运用是十分简略的,功用也很强大。