log_lock_waits
一个配置参数,用于确定当一个会话等待锁的时间超过 deadlock_timeout 时是否生成日志消息。
log_lock_waits 是一个 配置参数,用于确定当一个会话等待锁的时间超过 deadlock_timeout 时是否生成日志消息。
log_lock_waits 在 PostgreSQL 8.3 中被添加。
默认值
log_lock_waits 的默认值是
- PostgreSQL 18 及更早版本:
off - PostgreSQL 19 及更高版本:
on
按 PostgreSQL 版本详细信息
log_lock_waits (PostgreSQL 19)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 18)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 17)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 16)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 15)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 14)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 13)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 12)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 11)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 10)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.6)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.5)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.4)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.3)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.2)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.1)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 9.0)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 8.4)
| 设置 | off |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | off |
| 重置值 | off |
| 源文件 | |
| 源行 |
文档: log_lock_waits
log_lock_waits (PostgreSQL 8.3)
| 设置 | |
| 单位 | |
| 类别 | 报告和日志记录 / 记录什么 |
| 简短描述 | 记录长时间的锁等待。 |
| 扩展描述 | |
| 上下文 | superuser |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 |
文档: log_lock_waits
变更历史
- PostgreSQL 19
- 默认值已更改为
on(提交 2aac62be)
- 默认值已更改为
- PostgreSQL 9.4
- 在生成的日志消息中将显示锁持有者和等待者的 PID (提交 588fb507)
- PostgreSQL 8.3
- 已添加 (提交 e52c4a6e)
示例
由 TRUNCATE 等待另一个事务引起的日志消息
[2020-10-14 14:10:03 UTC] psql postgres postgres LOG: 00000: process 24105 still waiting for AccessExclusiveLock on relation 16451 of database 16384 after 1000.053 ms [2020-10-14 14:10:03 UTC] psql postgres postgres DETAIL: Process holding the lock: 17256. Wait queue: 24105.
Wait queue 是一个等待获取关系锁的后端 PID 列表,按获取尝试时间排序。
参考资料
- PostgreSQL 文档: log_lock_waits
