AliSQL 8.0.44-3 — Binlog 实时复制与 DuckDB 更新
AliSQL 8.0.44-3 新增 Binlog 实时复制(BRR),将内嵌 DuckDB 升级至 1.5.2,并修复两者集成中的问题。源码基线仍为 MySQL 8.0.44。
官方 GitHub Release: AliSQL-8.0.44-3
GitHub Release2026 年 10 月 16 日
版本标签AliSQL-8.0.44-3
源码基线MySQL 8.0.44
Binlog 实时复制
BRR 在源端事务提交前传输符合条件的事务缓存事件。启用提前回放后,副本专用工作线程可以在提交前执行支持的 DDL 和大事务。最终完成仍遵循源端事务结果与 GTID 依赖;BRR 不等同于同步复制,也不保证零延迟。
- 源端与副本在默认复制通道上协商匹配的 BRR 协议。
- 大事务传输要求源端设置
binlog_cache_free_flush=ON,使用符合条件的落盘缓存,且不开启 Binlog 事务压缩。源端大小阈值默认为 512 GiB,下限为 10 MiB。 - 提前回放要求 GTID、并行复制、非零的
binlog_realtime_apply_workers、replica_preserve_commit_order=OFF,并满足文档列出的通道限制。 - DDL 提前传输的默认阈值为 1000 ms,覆盖支持的事务性 ALTER/重建路径;不包含 Instant DDL 和副本回放线程执行的 DDL。
- 新增 Information Schema 表
BRR_SOURCE_TRX_INFO、BRR_SENDER_TRX_INFO、BRR_REPLICA_INFO及状态计数器,用于观察正在进行的 BRR 工作。
启停步骤、监控、限制和回退行为参见该版本的 Binlog 实时复制指南。
DuckDB 更新
内嵌源码升级到 DuckDB 1.5.2。
- 可选的 DuckDB 表 AUTO_INCREMENT 支持,覆盖数据字典、DDL 和复制处理。
- 可选的后台自动检查点,以及可配置的完整检查点间隔。
- 支持
JSON_OBJECTAGG,改进时间/字符串 SQL 兼容性,支持跨库RENAME TABLE。 - 修复引号转义、NOT NULL 变更、生成列依赖、分区操作、启动时元数据锁死锁、回滚异常,以及失败的跨引擎原子 DDL 等问题。
默认值与升级注意事项
| 功能 | 默认值 |
|---|---|
| BRR 源端与接收端开关 | OFF |
| BRR 提前回放工作线程 | binlog_realtime_apply_workers=0 |
| DuckDB 引擎模式 | duckdb_mode=NONE |
| DuckDB AUTO_INCREMENT | duckdb_support_auto_increment=OFF |
| 后台检查点 | duckdb_enable_background_checkpoint=OFF |
| 完整检查点间隔 | duckdb_background_checkpoint_full_interval=0 |
三个新增 DuckDB 变量均为全局、动态变量。启用后台模式后,完整检查点间隔为 0 表示每次后台检查点均为完整检查点。
不同复制模式的配置要求不同
DuckDB Multi-Trx Batch 要求 replica_parallel_workers=0,而 BRR 提前回放要求并行工作线程,因此不能直接沿用同一组配置。BRR 使用 Free Flush 缓存文件;DuckDB 模式生效时仍使用专用提交路径。启用前请核对该版本指南。
集成修复还包括:释放跳过的 BRR 元数据事件以避免内存泄漏,处理启动 XA 恢复时的元数据锁,以及在关闭提前写 Binlog 时,为部分成功的多表 OPTIMIZE 保留正常 Binlog 和 GTID 生成。
安装包与镜像
官方 Release 提供以下面向 glibc 2.17 的 Linux 预编译包:
| 平台 | 下载 |
|---|---|
| Linux x86_64 | alisql-8.0.44-3-linux-glibc2.17-x86_64.tar.xz |
| Linux aarch64 | alisql-8.0.44-3-linux-glibc2.17-aarch64.tar.xz |
该 Release 同时列出面向 linux/amd64 和 linux/arm64 的 songhuaxiong/alisql:8.0.44-3。镜像构建在两个预编译包发布后进行,使用前请查看对应构建状态。