PostgreSQL 服务器日志记录与分析
1. 锁等待与临时文件日志记录
在 PostgreSQL 中,锁等待和临时文件的日志记录对数据库性能监控至关重要。
- 原理 :当 SQL 等待时间超过 deadlock_timeout
(默认 1 秒)时,锁信息会被记录。增大 deadlock_timeout
可降低查询等待时死锁检查的开销,但可能导致锁等待信息记录减少,因为只有等待时间超过该值时才会记录。
- 操作步骤 :
1. 开启锁等待日志记录:
$ psql -c "ALTER SYSTEM SET log_lock_waits to 'ON'"
$ psql -c "select pg_reload_conf()"
2. 设置临时文件日志记录:
# 记录生成超过 100KB 临时文件的 SQL
$ psql -c "ALTER SYSTEM SET log_temp_files to '100KB'"
$ psql -c "select pg_reload_conf()"
# 记录生成超过 100MB 临时文件的 SQL
$ psql -c "ALTER SYSTEM SET log_temp_files to '100MB'"
$ psql -c "select pg_reload_conf()"