选择 打开 改范围 完整检索页

pg_dbms_errlog v2.4 已发布

发布于 2026-07-05,HexaCluster
相关开源软件

原文:https://www.postgresql.org/about/news/pg_dbms_errlog-v24-released-3331/

发布日期:2026-07-05
作者:HexaCluster
地点:泰国曼谷 - 2026 年 6 月 23 日

PostgreSQL 的 DBMS_ERRLOG 兼容扩展

pg_dbms_errlog 扩展提供了创建错误日志表所需的基础设施,使 DML 操作在遇到错误后可以继续执行,而不是中止并回滚。它需要配合 pg_statement_rollback 扩展使用,或在 DML 脚本中完整管理 SAVEPOINT

对应错误表的写入通过动态共享内存进行错误排队,并由后台 worker 将队列中的错误写入相应错误日志表。请注意,max_worker_processes 必须足够高,因为该扩展最多会启动 pg_dbms_errlog.max_workers 个动态后台 worker,外加一个固定后台 worker。

pg_dbms_errlog v2.3v2.4 已发布。这两个维护版本新增 PostgreSQL 18 与 PostgreSQL 19 兼容性,并修复了两个主要问题。

完整变更列表与致谢见:v2.3 - v2.4 ChangeLog

错误日志可以在查询级别同步登记,也可以在事务结束时通过 pg_dbms_errlog.synchronous 控制登记。默认是在事务级别记录,这也是推荐模式,因为它可以保证只记录已提交事务中的错误。当关闭同步日志时,错误会在后台 worker 唤醒、调用 dbms_errlog.publish_queue(),或同步级别发生变化时写入。

链接与致谢

pg_dbms_errlog 是 PostgreSQL 许可证下的开源项目,由 HexaCluster 维护,并由 Gilles Darold 在改进 Ora2Pg 的过程中创建。欢迎通过 GitHub 提交想法、功能请求或补丁。