ubuntu

如何在Ubuntu上排查PostgreSQL故障

小樊
41
2025-11-04 23:11:23
栏目: 云计算

1. 检查PostgreSQL服务状态
首先确认PostgreSQL服务是否正在运行,使用以下命令查看服务状态:

sudo systemctl status postgresql

如果服务未运行,启动服务:

sudo systemctl start postgresql

若需开机自启,可执行:

sudo systemctl enable postgresql

2. 验证配置文件设置
PostgreSQL的主配置文件postgresql.conf和客户端认证文件pg_hba.conf是故障排查的关键:

3. 检查防火墙与端口连通性
Ubuntu的防火墙(UFW)可能阻止PostgreSQL的默认端口(5432),需放行该端口:

sudo ufw allow 5432/tcp
sudo ufw enable  # 若未启用防火墙

使用telnetnc命令测试端口连通性(从客户端机器执行):

telnet <服务器IP> 5432
# 或
nc -zv <服务器IP> 5432

4. 查看PostgreSQL日志文件
日志是定位故障的核心依据,默认路径为/var/log/postgresql/<版本>/main/(如/var/log/postgresql/15/main/)。使用以下命令查看实时日志:

sudo tail -f /var/log/postgresql/15/main/postgresql.log

重点关注错误信息(如连接拒绝、权限不足、磁盘空间满等),日志中的时间戳可帮助定位故障发生时间。

5. 测试数据库连接
使用psql命令行工具测试本地连接(默认用户postgres):

sudo -u postgres psql

若本地连接正常,再测试远程连接(从客户端机器执行):

psql -h <服务器IP> -p 5432 -U <用户名> -d <数据库名>

输入密码后若仍无法连接,需返回检查配置文件和防火墙设置。

6. 分析数据库性能与活动

7. 检查表空间与磁盘空间

8. 排查用户权限问题
若出现“permission denied”错误,需检查用户权限:

0
看了该问题的人还看了