DBSyncer

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

特点

  • 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
  • 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
  • 开发插件,自定义转化同步逻辑

应用场景

连接器

数据源

目标源

支持版本(包含以下)

MySQL

5.7.19以上

Oracle

10gR2 -11g

SqlServer

2008以上

PostgreSQL

9.5.25以上

ES

6.0以上

Kafka

开发中

2.10-0.9.0.0以上

File

*.txt, *.unl

SQL

支持以上关系型数据库

后期计划

Redis

📦安装配置

步骤

  1. 安装JDK 1.8(省略详细)
  2. 下载安装包DBSyncer-1.0.0-Beta.zip(也可手动编译)
  3. 解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.sh
  4. 打开浏览器访问:http://127.0.0.1:18686
  5. 账号和密码:admin/admin

增量同步配置(源库)

MySQL

  • Dump Binlog二进制日志。Master同步Slave, 创建IO线程读取数据,写入relaylog,基于消息订阅捕获增量数据。

修改my.ini文件,重启服务

#服务唯一ID

server_id=1

log-bin=mysql_bin

binlog-format=ROW

max_binlog_cache_size = 256M

max_binlog_size = 512M

expire_logs_days = 7

#监听同步的库, 多个库使用英文逗号“,”拼接

replicate-do-db=test

Oracle

  • CDN注册订阅。监听增删改事件,得到rowid,根据rowid执行SQL查询,得到变化数据。

1、授予账号监听权限, 同时要求目标源表必须定义一个长度为18varchar字段,通过接收rowid值实现增删改操作。

grant change notification to 你的账号

2、账号必须是监听表的OWNER

SELECT OBJECT_ID, OBJECT_NAME, OWNER FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER='你的账号';

SqlServer

  • SQL Server 2008提供了内建的方法变更数据捕获(Change Data Capture 即CDC)以实现异步跟踪用户表的数据修改。

要求2008版本以上, 启动代理服务(Agent服务), 连接账号具有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。对于所有其他用户,具有源表SELECT 权限;如果已定义捕获实例的访问控制角色,则还要求具有该数据库角色的成员身份。

PostgreSQL

  • 通过复制流技术监听增量事件,基于内置插件pgoutput、test_decoding实现解析wal日志

修改postgresql.conf文件,重启服务

wal_level=logical

File

  • 监听文件修改时间得到变化文件,通过文件偏移量读取最新数据

监听文件实现方案

ES

  • 定时获取增量数据。

账号具有访问权限。

日志

建议MySQLSqlServerPostgreSQL都使用日志

定时

假设源表数据格式

 

预览

驱动管理

驱动详情

驱动表字段关系配置

监控

上传插件

🎨设计

架构图

🔗开发依赖

⚙️手动编译

先确保环境已安装JDKMaven

$ git clone https://gitee.com/ghi/dbsyncer.git

$ cd dbsyncer

$ chmod u+x build.sh

$ ./build.sh

🐞常见问题

🏆性能测试

类型

耗时

数据量

机器配置

MySQL全量同步

202s

1000w

MacBook Pro 2.4 GHz 四核Intel Core i5 16 GB 2133 MHz LPDDR3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值