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

pg_dbms_lock v2.0 已发布

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

原文:https://www.postgresql.org/about/news/pg_dbms_lock-v20-has-been-released-3332/

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

PostgreSQL 的 DBMS_LOCK 兼容扩展

pg_dbms_lock 是一个 PostgreSQL 扩展,用 PostgreSQL advisory lock 模拟 Oracle DBMS_LOCK 包的行为,支持排他/共享锁模式、超时以及提交时释放等设置。

pg_dbms_lock v2.0 已发布。这是一个维护版本,新增 PostgreSQL 19 兼容性,并适配 pg_background v2+ API。请注意,该版本不再兼容 2.0 之前的 pg_background

完整变更列表见:ChangeLog

该扩展提供了对 Oracle DBMS_LOCK 包的兼容支持,但不包括 DBMS_LOCK.CONVERT() 函数以及部分不支持的锁模式。当前实现的存储过程包括:

  • ALLOCATE_UNIQUE():为命名锁分配唯一锁 ID。
  • REQUEST():按指定模式请求锁。
  • RELEASE():释放锁。
  • SLEEP():让过程休眠指定时长。

用户锁可用于为外部设备或服务提供排他访问、协调并行应用、按特定时间启停程序,或检测会话是否已通过 COMMIT/ROLLBACK 结束事务。

链接与致谢

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