连接问题
sudo iptables -L -n,未放行则用sudo ufw allow 5432开放。sudo systemctl status postgresql,未启动则用sudo systemctl start postgresql启动。sudo tail -f /var/log/postgresql/postgresql-{版本号}-main.log。查询性能问题
EXPLAIN分析慢查询:EXPLAIN SELECT * FROM table WHERE condition,优化索引或查询语句。pg_stat_statements扩展统计SQL性能:在postgresql.conf中设置shared_preload_libraries = 'pg_stat_statements'并重启服务。磁盘空间问题
sudo pg_archivecleanup /pgdata/pgwal 旧日志文件名。max_wal_size、checkpoint_timeout等,避免日志堆积。内存泄漏或OOM问题
pg_top监控内存使用,调整work_mem参数,检查连接池是否泄漏。死锁问题
pg_locks视图查看锁状态,用pg_cancel_backend或pg_terminate_backend终止死锁事务。配置与权限问题
postgresql.conf和pg_hba.conf配置是否正确,如listen_addresses、用户权限等。0700,日志目录可写。日志分析与监控
sudo tail -f /var/log/postgresql/postgresql-{版本号}-main.log。pgBadger等工具分析日志,生成性能报告。说明:部分路径中的{版本号}需替换为实际安装的PostgreSQL版本(如15),操作前建议备份数据,复杂问题可参考官方文档或社区支持。