我很高兴宣布 Debezium 1.9 系列的第二个版本,1.9.0.Alpha2 正式发布。此版本包含了对 Oracle 21c 的支持、围绕 Redis for Debezium Server 的改进、配置 kafka.query.timeout.ms 参数以及围绕 DDL 解析器、构建基础架构等的许多 Bug 修复。整体来说,在此版本修复了 51 个问题。让我们一起看看其中的一些亮点。
1. 支持 Oracle 21c
Debezium Oracle Connector 在 Oracle 21c 最新版本 21.3.0.0 上完成测试,并且实现兼容。如果你使用 LogMiner 或 Xstreams 适配器,现在无需任何更改就可以使用 Oracle 的最新旗舰版本和流变更事件。如果你在 Oracle 12 或 Oracle 19 上执行数据库升级,你不需要修改 Connector 配置(已经兼容)。
2. 配置 kafka.query.timeout.ms 参数
当使用 Kafka Admin Client 并调用 API 时,默认超时时间为 3 秒。新的 kafka.query.timeout.ms 参数可以为 Kafka Admin Client 提供自定义超时时间,以避免在使用 TLS 和 SSL 加密以及网络延迟引起的非预期超时环境中可能出现超时问题。
感谢社区成员 Snigdhajyoti Ghosh 所做的出色工作。
3. Redis for Debezium Servers 的改进
我们在支持 Redis 的 Debezium Servers 中新增了三个参数:
- redis.retry.initial.delay.ms
- redis.retry.max.delay.ms
- batch.size
Redis 允许使用 maxmemory 配置参数指定最大内存上限;但是,如果未配置此参数,那么 Redis 会继续分配内存。如果所有内存都用完了,就会发生 OutOfMemory 异常。现在 Redis Sink 使用 redis.retry.initial.delay.ms 和 redis.retry.max.delay.ms 来配置初始和最大重试延迟时间,以更好地应对这个问题以及与连接相关的问题。如果你曾经或者现在正遇到此类异常,我们强烈建议你尝试这些新配置参数,以提高 Sink 的弹性和体验。
基于管道的事务可以大大增加 Redis 查询。为了利用基于管道的事务,可以指定 batch.size 配置参数,这可以允许 Redis 批量写入变更记录,而不是一个一个地写入。
4. 其他修复
如下是一些值得注意的 Bug 修复和升级:
- Oracle Logminer:在进行中事务切换’快照→流’会丢失数据库变更 DBZ-4367
- DDL 解析问题:ALTER TABLE … MODIFY PARTITION … DBZ-4649
- OracleSchemaMigrationIT 使用 Xstream 适配器出现失败 DBZ-4703
- 将 UI 从 webpack-dev-server v3 版本迁移到 v4 DBZ-4642
- 将 postgres 驱动程序升级到 42.3.2 版本 DBZ-4658
- Quarkus 升级到 2.7.0.Final DBZ-4677
- 指示 XStream 不支持 ROWID DBZ-4702
- 增量快照不支持列区分大小写 DBZ-4584
- 构建触发器问题 DBZ-4672
- 无法使用嵌套的对象数组扩展 JSON payload DBZ-4704
原文:Debezium 1.9.0.Alpha2 Released