2025年9月25日: PostgreSQL 18 发布!

[公告] SynchDB 1.0 发布 - 用于实时数据库同步的 PostgreSQL 扩展

发布于 2024-12-27,作者:Hornetlabs Technology Inc
相关开源项目

SynchDB 1.0 发行说明

发布日期:2024年12月24日

我们很高兴地宣布 SynchDB 1.0 发布!这款 PostgreSQL 扩展支持将多个异构数据库(MySQL、MS SQL Server)的数据无缝同步到 PostgreSQL。SynchDB 完全原生处理所有数据同步,无需中间件,为实时数据复制和集成提供了高效的解决方案。

本次发布解决了 1.0 beta1 版本中发现的性能和资源问题,并引入了几个新工具,用于精细调整 SynchDB 的行为和性能。

新功能

性能改进

  • 在 DML 解析阶段实现数据缓存,以减少 PostgreSQL 目录访问
  • 在 Debezium runner 中增加了节流控制,以防止 JVM 内存堆积
  • 通过在单个 PostgreSQL 事务中处理批次,显著提高了处理速度

新函数和视图

  • synchdb_start_engine_bgw(name, mode):增加了自定义快照模式参数
  • synchdb_log_jvm_meminfo(name):用于 JVM 堆内存使用情况监控的调试函数
  • synchdb_stats_view:用于连接器统计信息的新视图
  • synchdb_reset_stats(name):用于清除连接器统计信息的函数

配置增强

  • 增加了用于 Debezium Runner 性能调优的新 GUC 参数
  • 使 JVM 最大堆内存分配可配置
  • 在规则文件中启用了特定连接器的 SSL 参数配置
  • 使连接器后台工作进程的最大数量可配置

更新内容

  • 增强了 synchdb_state_view()
  • 增加了显示连接器状态的新“stage”字段
  • 仅限于显示有效连接器
  • 移除了部分批次完成通知
  • 将 SQLServer 的默认 char 类型大小映射从 0 更新为 -1

Bug 修复

  • 解决了 SynchDB 和 Debezium runner 组件中的内存泄漏问题
  • 改进了 SynchDB 中的内存上下文处理
  • 修正了更改事件处理期间的堆内存释放
  • 修正了 DML 处理期间的 SPI 内存使用

已知问题

  1. 自动连接器启动器限制
  2. 仅启动在默认 postgres 数据库下创建的连接器工作进程
  3. 问题跟踪:github.com/Hornetlabs/synchdb/issues/71

  4. ALTER TABLE ALTER COLUMN 限制

  5. 无法处理复杂数据类型更改(例如,TEXT 到 INT)
  6. 不支持列索引更改
  7. 无法处理重命名的列
  8. 问题跟踪:github.com/Hornetlabs/synchdb/issues/77

  9. 连接器状态持久化

  10. 重新启动暂停的连接器会恢复操作,而不是保持暂停状态
  11. 问题跟踪:github.com/Hornetlabs/synchdb/issues/80

资源

关于 SynchDB

SynchDB 是由 Hornetlabs Technology 开发的开源 PostgreSQL 扩展。它支持将异构数据库(MySQL、MS SQLServer、Oracle 等)的数据以高性能和高可靠性直接复制到 PostgreSQL。该扩展无需中间件或第三方软件即可满足所有同步需求。