308 Star 2.2K Fork 812

AE86 / DBSyncer

2024-04-10 00:08
376718 ghi 1660456020 AE86

1、修复复合主键查询SQL,过滤条件不正确 【fix bug】 #I759Q4:mysql同步时多主键生成的查询语句条件有问题,不能查到所有数据
2、修复pg架构名小写导致无法解析增量同步
3、修复oracle delete语句转换类型
4、修复oralce执行成功返回值为Long类型
5、修复全量同步,源表总行数为0,导致无法添加表映射关系
6、修复获取驱动表时,偶现异常 ConcurrentModificationException:null
7、修复ORA-17056: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK 参考Oracle官方文档

Non supported character set (add orai18n.jar in your classpath): ZHS16GBK

8、修复复制dql连接器错误 【fix bug】#I8XBVB:复制链接出错
9、修复同步DDL,源表和目标表字段名不一致时,未能正确解析AFTER语句【fix bug】#I98WBX:同源 DDL 同步问题,源表和目标表字段名不一致时,未能正确处理 AFTER 语句
10、支持ES配置多个索引 【new features】#I6Z6NA:优化ES,Kafka,File支持多个表同步
输入图片说明
输入图片说明

注意:ES需要新添加连接器,旧版本配置已废弃!

输入图片说明

11、支持同步sqlserver DateTimeOffset类型
12、支持同步short转换Integer类型
13、支持Varchar转Integer类型
14、支持Long转Varchar类型
15、支持short转Long类型
16、支持全量同步sqlserver同步pg uuid类型
17、支持PGobject
18、支持动态配置是否覆盖写入目标库数据开关(默认false-执行覆盖写入;true-不生效)// 覆盖写入指:目标表行数据存在,执行update,不存在则执行insert
19、优化查询表总数SQL条件,去除GROUP BY 主键

最后提交信息为: !229merge
2024-01-14 23:41
376718 ghi 1660456020 AE86

1、修复Oracle增量同步解析空值,数字类型,时间戳带时区等
2、修复dqlsqlserver配置校验,导致无法添加和修改连接器 #I8TY1L:保存DqlSqlserver连接报错ConfigValidator can not be null
3、修复postgresql填写schema大写时,导致无法启动增量任务
4、修复cdn开关开启时,bootstrap资源失效,导致页面非正常显示
5、支持Oracle 19c版本数据库,升级Oracle驱动默认版本21.6.0.0
6、新增ddl开关,默认启用ddl同步功能
输入图片说明
7、优化删除驱动时,显示页面无法获取Meta

最后提交信息为: !216merge
2023-12-26 01:07
376718 ghi 1660456020 AE86

1、修复同步ddl, 增加字段顺序不一致
2、修复兼容ES6.x客户端API, 允许使用type=_doc类型
3、修复连接连接数过大问题
4、修复刷新点位到存储和数量显示
5、支持MySQL双向同步
6、支持Oracle基于logminer解析redo实现增量同步, 废弃dcn方案
7、支持sqlite
8、支持bit类型写file
9、支持刷新驱动数据表
10、支持mysql5.7 tinyint类型同步到postgresql11 int2类型
11、支持BigDecimal转varchar
12、新增同步数据开关到系统配置页面
13、新增sdk开发包(新版本插件SPI接口请替换为PluginService),参考 SPI接口说明
14、运行中的驱动,如果包含失败记录则发送通知
15、优化消费阻塞模型,改用无锁
16、优化连接&驱动间距

最后提交信息为: !207merge
2023-11-01 22:25
376718 ghi 1660456020 AE86

1、修复连接超时问题 #I8C9MU:插件消费数据超时问题 #I6EX7M:dbsyncer部署在linux环境下,选择mysql作为存储介质而不是存在磁盘(基于lucene),在运行一天后,对dbsyncer进行操作,报错
2、修复oracle时间戳同步mysql
3、修复清空日志,刷新页面显示异常
4、修复查询同步数据,因解析binlog数据类型异常导致无法显示
5、修复启动脚本startup.bat参数,错误提示:找不到或无法加载主类
6、支持PG同步ES嵌套字段类型 #I87FT8:PG-》ES(7.14.1) 导入嵌套json 异常
7、支持PGobject转字符串
8、支持pgobject类型序列化
9、支持CDN访问静态资源
输入图片说明
10、支持sqlserver语法包含系统关键字
11、禁用脚本startup.bat默认开启debug端口

最后提交信息为: !191merge
2023-10-07 22:25
376718 ghi 1660456020 AE86

1、修复varchar同步小数值number
2、修复MySQL存储配置,查询表使用了双引号,替换为单引号
3、修复查看数据功能,应展示目标表数据
4、支持MySQL连接器同步ddl
5、支持过滤条件设置系统参数,推荐通过表达式符号$传入,如:

$getdate()$

6、支持升序展示表 #I81E0P:sqlserver选表支持排序
7、优化执行器buffer容量配置,默认通用降低60000,表执行器降低10000
8、统一命名MySQL连接器
9、升级maven-assembly-plugin版本

最后提交信息为: !176merge
2023-09-04 01:18
376718 ghi 1660456020 AE86

1、修复监听mysql忽略库名大小写
2、修复系统变量Date引用包
3、修复重复上传驱动,未释放旧实例 #I7RGO9:加载插件,重复类
4、修复兼容es6.x-7.x版本,无法获取字段问题,并兼容语法
5、修复PG空时间戳 #I79PPS:postgresql9.6 同步空的timestamp类型报错 使用的是test_decoding pgoutput好像不支持9.6
6、修复数据堆积,重构消费模型 #I7UB5M:重构增量同步消费模型
7、修复中止阻塞任务
8、修复重复生成系统配置文件
9、修复sqlserver包含过滤条件统计总数,当加条件时,sql未加别名 SELECT 1 AS _ROW
10、支持转换sqlserver关键字 #I7R9Y3:求大佬更新关键字表导致的问题!!!
11、支持数字转字符串
12、支持复制驱动 #I7R9Y4:希望驱动也可以复制!表多了很头疼!!!
13、支持删除过期同步数据和日志 #I7S852:希望增加定期清理缓存功能
14、升级mysql-binlog-connector-java版本
15、支持多表并行同步,新增执行器路由
16、支持字符转bigint
17、支持定时采集dql连接器
18、优化sdoapi依赖包,已废弃
19、简化配置, 新增配置(持久化,通用执行器,表执行器) dbsyncer.storage.* | dbsyncer.parser.general.* | dbsyncer.parser.table.group.*
20、优化图表监控,新增表执行器
21、废弃存储binlog

最后提交信息为: update README.md.
2023-08-06 21:59
376718 ghi 1660456020 AE86

1、修复sqlserver同步多个库
2、修复sqlserver 拉取增量乱序,废弃按事件排序 参考:https://learn.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/bb510627(v=sql.100)?redirectedfrom=MSDN
3、修复mysql增量同步运行长时间后断连,增加心跳检测#I69US8:Mysql 日志增量同步,连接器出现Communications link failure,自动重连后,运行中的驱动不会继续同步
4、修复mysql存储配置,未实现模糊查询日志
5、修复Oracle执行失败默认返回-2,统一返回0
6、修复Oracle监听,只接收注册的ID的事件
7、修复生成分页SQL,未解析引号
8、修复游标查询默认参数
9、修复DB执行更新,未排除主键参数,导致写异常
10、修复binlog序列化共享值问题
11、修复binlog数据未按升序消费
12、修复PG同步OffsetDateTime转换Timestamp
13、修复PG解析不带时区的时间戳类型
14、修复插件名称未去重,已替换为驱动+版本号
15、修复DQL连接器,SQL值未回显
16、支持double转换同步float
17、支持oracle游标
18、支持自定义输入多个主键
19、持获取打包版本信息
20、支持Dql连接器一对多表监听
21、支持ES深度分页 #I7BILF:ES作为数据源时,全量同步只能同步10000条数据
22、支持模糊匹配表字段,默认取第一个字段作为主键,并添加映射关系
23、支持刷新表字段 #I6VB8M:已配置完表映射关系,这个时候表新增一个字段,此时新增的字段无法在列表中显示,无法配置映射关系.
24、支持pg boolean类型同步 #I6DHOJ:postgresql同步遇到bool类型字段会出错
25、支持pg point类型
26、支持sqlserver包含系统关键字sql #I7CMY3:从mssql获取数据时,如果有字段名为关键字如:convert,则会报错,能否在生成的语句中字段名加上括号[]
27、支持sqlserver real同步oracle number
28、支持sqlserver float 同步mysql float
29、支持sqlserver过滤条件输入系统函数(convert/varchar/getdate)
30、支持mysql bit同步oracle raw
31、支持过滤条件新增系统变量-昨日时间戳($timestamp_yes_begin$/$timestamp_yes_end$)
32、优化主键提示,新建表关系不严格检查
33、优化批量数,线程数默认值
34、优化多对一映射关系,默认合并值
35、优化回收全量同步线程池
36、优化配置文件注释
37、优化BitValueMapper转换, 使用ByteBuffer替换实现
38、优化binlog同步性能
39、优化Oracle过滤条件输入系统函数(to_char/to_date/to_timestamp/to_number),使用正则表达式检查
40、移除RPC接口

最后提交信息为: !139merge
2023-03-15 00:01
376718 ghi 1660456020 AE86

1、修复获取ES连接器缓存key异常
2、修复ES不支持https协议 #I5VPFN:无法连接https协议的es
3、修复自定义主键未回显
4、修复旧版本配置无法导入问题
5、修复低版本日期类型(java.util.Date转时间戳Timestamp)
6、修复OracleConnection连接未回收
7、修复磁盘close异常
8、支持复合主键 #I4VRFP:建议支持多主键
9、支持连接器配置多条SQL(MySQL,Oracle,SqlServer,PostgreSQL)
10、支持重试同步失败数据(可手动更改同步数据)#I5IY1B:增量同步重试机制
11、支持增量失败,发送邮件消息通知 #I66LUK:增量失败,发送邮件消息通知
12、支持根据过滤时间条件筛选
13、支持序列化存储增量Binlog消息
14、支持切换mysql存储缓存任务
15、支持通过插件上下文获取数据源连接实例
16、支持PG geometry和UUID字段类型
17、支持boolean转int
18、支持BigDecimal同步Tinyint
19、升级fastjson2版本
20、升级springboot版本(spring,spring-security)
21、废弃mysql连接器驱动配置
22、更新插件demo
23、详细输出字段转换异常日志
24、优化显示同步数据弹出框大小,调整异常信息对话框样式

最后提交信息为: !121支持复合主键
2022-11-20 22:45
376718 ghi 1660456020 AE86

1、修复DCN断线重连,连接超时问题
2、修复判断Oracle执行成功code -2
3、修复DCN查询监听表权限问题,替换DBA_OBJECTS为ALL_OBJECTS系统表
4、修复延迟同步未更新总数
5、支持配置多用户
6、支持过滤条件like查询(遵循sql语法规范)。示例:abc% %abc %abc%
7、支持扩展插件API,AbstractConvertContext类提供支持获取同步上下文,控制是否写入目标库任务,目标连接实例等
8、支持扩展插件后置处理方法,扩展postProcessAfter方法可监听同步完成事件
9、支持扩展插件消息通知接口NotifyService,在插件内实现该接口并注册服务即可
10、支持Oracle系统函数作为过滤条件, 系统函数:to_char/to_date/to_timestamp/to_number。 示例:to_date('2022-11-20','yyyy-mm-dd')
11、支持Oracle数据库自定义Schema
12、支持复制连接器,如需使用相似的连接器
13、支持增加同步失败发送邮件通知

#true启用邮件通知
dbsyncer.plugin.notify.mail.enabled=true
#配置你的发送邮箱
dbsyncer.plugin.notify.mail.username=123456@qq.com
#配置授权码(注意不是登录密码!!)
dbsyncer.plugin.notify.mail.password=rjphxxxxxxesbcdg

14、支持记录同步表信息,方便第三方用户做统计分析
15、支持BigInteger、LocalDateTime持久化
16、支持下载connector开发包,更新插件demo
17、优化并发性能,缓存队列数和持久化队列数保持一致, 去掉80%容量限制
18、优化批量读取磁盘binlog任务

最后提交信息为: !102merge
2022-10-01 00:19
376718 ghi 1660456020 AE86

1、修复表字段映射关系为空,空指针异常
2、修复PostgreSQL兼容低版本查询schema
3、修复SqlServer缺少依赖,导致无法获取空间类型
4、修复全量同步统计空表总数
5、修复全量同步统计总数存在误差,默认读取系统表总数,或在任务执行的过程中源库总数可能发生变化
6、修复查询视图VIEW总数
7、修复判断Oracle执行SQL成功标记(-2)
8、修复bit转int
9、修复binlog反序列化,优先记录增量数据
10、修复BinaryValueMapper二进制转换
11、修复BitValueMapper并发异常
12、支持DB跨schema转换,统一字段转换标准(基于JDBC标准数据类型进行扩展)
13、支持SqlServer同步oracle,转换空间Geometry类型
14、支持MySQL增量同步,解析json类型
15、支持字符转byte[]
16、支持字符串转Tinyint类型
17、支持字符转timestamp
18、支持date转换字符类型
19、支持short,boolean转类型
20、支持BigDecimal转Double类型
21、支持PostgreSQL游标查询,提升全量同步效率
22、支持控制写入增量数据开关

application.properties新增配置开关

#记录增量同步成功数据
dbsyncer.parser.flush.increment.data.write-success=true
#记录增量同步失败数据
dbsyncer.parser.flush.increment.data.write-fail=true

23、优化全量同步为覆盖写入
24、优化SqlServer增量同步性能,复用拉取LSN线程
25、优化值转换异常或为空时,设置二进制类型默认值
26、优化控制台打印和日志输出信息,数据脱敏
27、优化定时刷新驱动管理页面
28、优化上传文件大小限制
29、优化记录异常信息长度限制

最后提交信息为: !85merge
2022-08-19 00:54
376718 ghi 1660456020 AE86

1、修复死锁 #I5JFAZ:由线程池引发的全量同步死锁问题
2、修复并发写乱序 #I5KK5C:增量更新批量写入优化导致数据更新顺序被打乱
3、修复无法删除驱动 #I5M1QC:未添加映射启动,驱动无法删除。
4、修复监控卡顿 #I5MJUV:监控页面卡顿问题
5、修复驱动目标连接器执行参数
6、修复全量同步,断点续传
7、修复DqlOracle,无法获取ROWID值
8、支持过滤监听事件 #I5CSXJ:关于在驱动中忽略增量事件的建议
9、支持手动排序表映射关系顺序 #I5JMR9:建议增加 表 手动排序功能
10、支持分组显示(连接器,驱动)
11、支持物化视图
12、支持LocalDateTime、LocalDate、Date转字符串数据类型
13、支持Number转String
14、支持String转Timestamp
15、支持过滤条件系统参数$date_yes_begin$(系统昨天日期(开始00:00:00)),$date_yes_end$(系统昨天日期(结束23:59:59))
16、支持MySQL数据类型varchar同步MySQL时间datetime
17、支持监控线程池核心数
18、优化LOGO
19、优化MySQL全量同步,定时同步性能。使用游标查询,提升10倍速度
20、优化驱动名称显示,全量同步耗时按分秒计算
21、优化修改SQL排除主键
22、优化监控清空数据长时间等待问题
23、优化sqlserver,oracle查询表总数性能,改为查系统表
24、优化全量同步任务,执行过程中出现新数据,完成后重置表总数
25、优化插件文档

最后提交信息为: !78upgrade version
2022-07-17 00:22
376718 ghi 1660456020 AE86

1、修复SqlServer增量同步无法拉取最新事件
2、修复并发同步时,可能丢失字段,移除API parallelStream
3、修复增量同步时,定时任务线程阻塞,导致无法消费
4、修复上传插件异常,上传地址有误
5、修复监控页面,根据驱动下拉选项清空数据
6、修复SqlServer无法获取表主键,并支持schema配置
7、修复SqlServer忽略SQL大写
8、修复DqlPostgreSQL连接器配置无法更改删除Slot、插件
9、修复PostgreSQL监听器,pgoutput插件未解析schema, #I5ESZ5:大佬,pg驱动非默认public架构名,添加表提示出错
10、修复清空数据操作,控制台输出异常日志,#I5DLLO:点击监控页面的“清空数据”产生的脏缓存bug
11、修复MySQL表名中出现符号“-”时,无法添加表映射关系 #I5EUZZ:关于数据库表名 必须加``的表错误
12、支持PG多实例增量监听
13、支持DQL连接器增量同步,通过监听主表变化,再执行关联SQL, 得到变更数据
14、支持safe/speed模式,通过配置dbsyncer.parser.flush.buffer.actuator.speed.enabled开关切换。默认true为speed模式(不会实时记录增量消息,反之会记录所有的同步消息)
15、支持全量覆盖写入
16、支持插件获取Spring上下文,ProxyApplicationContext
17、支持连接器自定义主键配置,表中可能没有主键
18、支持配置管理,上传/下载连接器驱动等配置
19、支持MySQL同步MySQL,tinyint同步字段类型bit
20、支持SqlServer smallint同步字段类型smallint
21、支持字符串转Timestamp
22、优化speed模式,消息达到队列上限值时,自动切换safe模式
23、优化时间降序修改的表映射关系
24、优化全量同步模式,统计表总数比较耗时
25、优化持久化任务队列为缓存执行器队列的1/4
26、优化同步修改事件,排除修改主键值
27、优化编写插件,加入demo项目链接
28、优化监控页面,堆积数据图表值为5w, 支持监控[持久化]指标
29、优化输出监听的行数据到控制台和日志中,改为debug
30、优化统计驱动同步总数
31、删除DQL别名配置
32、删除转换配置项,Date转yyyy-MM-dd HH:mm:ss,替换为Timestamp转yyyy-MM-dd HH:mm:ss
33、删除默认勾选表映射关系操作

最后提交信息为: !67merge
2022-05-14 23:39
376718 ghi 1660456020 AE86

1、修复log4j2漏洞,升级版本
2、修复缓冲执行器OOM, 生产大于消费问题,限制生产速度
3、修复定时监听器,同步运行状态; 修复过滤条件(结束时间在开始时间前,无法查询有效范围结果集)
4、修复DQL连接器解析SQL出现多张表,去除制表符特殊符号
5、修复数据类型java.util.Date为java.sql.Date
6、修复数据类型MySQL同步MySQL: tinyint
7、修复DateSetter,支持timestamp为date
8、支持文件File连接器,通过监听文件变化采集增量信息,issues:#I55EP5:支持数据源文件类型
9、支持SqlServer bit同步MySQL tinyint类型
10、支持PostgreSQL增量监听,支持插件pgoutput(推荐)、test_decoding,增加重连
11、优化DQL连接器SQL和驱动输入长度
12、优化驱动定时任务配置周期替换为Cron表达式
13、优化写入同步数据到磁盘周期300ms、定时同步监听器snapshot周期由10s调整为3s
14、优化写入同步数据失败错误长度,线程池配置
15、优化连接器数据源连接个数上限500

最后提交信息为: !63merge
2022-04-13 20:19
376718 ghi 1660456020 AE86

1、支持PostgreSQL、DqlPostgreSQL连接器
2、支持MySQL/SqlServer等同时启动多个驱动,如MySQL同步到多个库。(Oracle待开发)
3、支持SqlServer int转MySQL BigInteger类型
4、修复重启应用后配置未生效问题
5、修复SqlServer监听器长时间断连问题
6、修复完整记录批量错误日志
7、优化全量、增量同步,新增BufferActuator缓冲执行器,提高并发写入效率
8、优化同步增量数据、日志为批量写,移除单次写操作
9、优化全量单次写入1000,线程任务缓冲队列2000
10、优化监控页面任务调整堆积图比例
11、优化表映射下拉选项配置页面,展示表或视图类型
12、修改文件配置参数名#dbsyncer.parser.flush.full.enabled=true(是否记录全量同步数据)

最后提交信息为: !58merge
2022-03-24 23:10
376718 ghi 1660456020 AE86

1、支持轻量级连接池,提高同步写入并发量
2、支持修改增量同步开始位置(MySQL)
3、支持MySQL类型bigint同步到Oracle类型number
4、支持Oracle clob写ES
5、支持启动脚本ipv4配置项
6、修复写入增量数据the index writer is closed
7、修复Oracle增量同步,过滤相同表名
8、简化驱动配置页面
9、弃用SqlServer增量同步停止默认会禁用表CDC功能

最后提交信息为: !54merge
2021-12-20 00:13
376718 ghi 1660456020 AE86

1、新增Kafka连接器,支持目标源连接器
2、新增可配置记录全量数据日志开关,默认禁用,#dbsyncer.parser.flush.enabled=true
3、新增VarBinarySetter、LongVarBinarySetter,支持SqlServer image 数据类型
4、修复VarcharSetter,支持字段类型byte[]
5、修复存储配置信息到MySQL,连接小于MySQL8版本,无法获取库名
6、修复Oracle增量监听,支持RAC连接方式
7、修复MySQL增量同步监听, 排除非当前库表数据

最后提交信息为: !51V_1.1.5
2021-11-03 19:11
376718 ghi 1660456020 AE86

1、新增oracle视图
2、新增oracle跨用户表同步

最后提交信息为: !46merge
2021-09-25 23:23
376718 ghi 1660456020 AE86

1、新增bit字段类型
2、修复mysql datetime类型时区差
3、修复es捕获写入异常和主键校验

最后提交信息为: !44V_1.1.3
2021-09-07 01:04
376718 ghi 1660456020 AE86

1、新增连接器Elasticsearch(ES)
2、新增连接器心跳检测
3、升级版本lucene-7.7.0 & springboot-2.2.0 & lang3
4、优化驱动表关系下拉组件,支持模糊多选
5、替换服务容器为Tomcat
6、修复启停脚本上下文问题
7、修复mysql重连参数问题
8、修复删除连接器未检查是否引用驱动
9、修复高版本jdk环境下base64解析问题

最后提交信息为: !43v1.1.2-Alpha
2021-08-18 23:12
376718 ghi 1660456020 AE86

1、新增支持sqlserver字段类型Tinyint
2、修复无法重复上传相同插件
3、修复启动脚本,jdk环境变量路径包含空格无法正常运行
4、修复未及时获取到sqlserver连接,导致读取数据异常
5、优化定时器配置,替换cron表达式为周期数秒
6、优化展示添加驱动页面下拉连接器信息
7、优化编辑驱动,切换全量同步和增量同步模式时自动保存配置

最后提交信息为: !40V_1.1.1
Java
1
https://gitee.com/ghi/dbsyncer.git
git@gitee.com:ghi/dbsyncer.git
ghi
dbsyncer
DBSyncer

搜索帮助