|
3 роки тому | |
---|---|---|
dbsyncer-biz | 3 роки тому | |
dbsyncer-cache | 3 роки тому | |
dbsyncer-cluster | 3 роки тому | |
dbsyncer-common | 3 роки тому | |
dbsyncer-connector | 3 роки тому | |
dbsyncer-listener | 3 роки тому | |
dbsyncer-manager | 3 роки тому | |
dbsyncer-monitor | 3 роки тому | |
dbsyncer-parser | 3 роки тому | |
dbsyncer-plugin | 3 роки тому | |
dbsyncer-storage | 3 роки тому | |
dbsyncer-web | 3 роки тому | |
.gitignore | 4 роки тому | |
LICENSE | 5 роки тому | |
README.md | 3 роки тому | |
build.cmd | 4 роки тому | |
build.sh | 4 роки тому | |
pom.xml | 3 роки тому | |
version.cmd | 3 роки тому |
DBSyncer是一款开源的数据同步软件,提供Mysql、Oracle、SqlServer、SQL结果集等场景,支持自定义同步转换业务。
特点
Every point is a DataBase | 目标源 | |||||||
全量 | 增量 | |||||||
Mysql | Oracle | SQLServer | Mysql | Oracle | SQLServer | |||
数据源 | Mysql | √ | √ | √ | √ | √ | √ | |
Oracle | √ | √ | √ | √ | √ | √ | ||
SQLServer | √ | √ | √ | √ | √ | √ | ||
DQLMysql | √ | √ | √ | √ | √ | √ | ||
DQLOracle | √ | √ | √ | √ | √ | √ | ||
DQLSQLServer | √ | √ | √ | √ | √ | √ | ||
版本支持 | Mysql | 5.7.19以上 | ||||||
Oracle | 10g以上(Oracle-9i未测试) | |||||||
SQLServer | 2008以上 | |||||||
最近计划 | kafka、es、postgrep |
准备
步骤
类型 | 配置 | 原理 |
Mysql 开启Binlog功能,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 |
Dump Binlog二进制日志。Master同步Slave, 创建IO线程读取数据,写入relaylog,基于消息订阅捕获增量数据。 |
Oracle 授予账号监听权限: |
grant change notification to AE86 要求目标源表必须定义一个长度为18的varchar字段,用于接收rowid值,来实现增删改操作 |
CDN注册订阅。监听增删改事件,得到rowid,根据rowid执行SQL查询,得到变化数据 |
SQLServer 开启CDC: |
要求2008版本以上, 启动代理服务(Agent服务), 连接账号具有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。对于所有其他用户,具有源表SELECT 权限;如果已定义捕获实例的访问控制角色,则还要求具有该数据库角色的成员身份。 |
SQL Server 2008提供了内建的方法变更数据捕获(Change Data Capture 即CDC)以实现异步跟踪用户表的数据修改 |
Mysql增量示例
Oracle增量示例
定时示例
驱动管理
监控
其他