以下是Debian中PostgreSQL故障排查指南:
连接问题
- 检查服务状态:用
sudo systemctl status postgresql查看服务是否运行,未运行则用sudo systemctl start postgresql启动。 - 查看配置文件:检查
/etc/postgresql/{version}/main/postgresql.conf中listen_addresses是否正确,pg_hba.conf中是否有允许访问的配置,修改后重启服务。 - 配置防火墙:若用ufw,用
sudo ufw allow 5432/tcp开放端口;若用iptables,用sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT。 - 测试网络连接:用
telnet localhost 5432或nc -vz localhost 5432测试。
查询性能问题
- 分析查询计划:用
EXPLAIN命令分析查询语句,找出性能瓶颈,必要时创建索引。 - 更新统计信息:用
ANALYZE命令更新,确保查询优化器能做出最佳决策。
磁盘空间问题
- 检查磁盘使用情况:用
df -h查看,清理不必要的文件。 - 处理wal日志堆积:若因wal日志堆积导致磁盘满,可清理过期wal文件,删除废弃复制槽,优化检查点配置。
内存泄漏问题
- 监控内存使用:用
pg_top等工具监控,找出内存泄漏进程。 - 调整配置参数:检查
work_mem等参数,确保其值适中,检查连接池配置。
其他问题
- 查看日志文件:位于
/var/log/postgresql目录,用tail -f查看实时日志。 - 检查权限:确保数据目录、日志目录权限正确,用户有访问所需权限。