温馨提示×

centos怎样调postgresql参数

小樊
35
2026-09-06 12:25:49
栏目: 云计算

在 CentOS 上调整 PostgreSQL 参数,通常分为修改配置文件、重新加载或重启服务、验证参数几个步骤。下面按常见场景说明。


一、确定 PostgreSQL 版本和数据目录

psql --version
systemctl status postgresql

常见数据目录:

  • CentOS 7 + PostgreSQL 12:/var/lib/pgsql/12/data
  • PostgreSQL 13:/var/lib/pgsql/13/data
  • 通用:/var/lib/pgsql/data

二、修改 PostgreSQL 参数

1️⃣ 主配置文件

PostgreSQL 主要参数在:

postgresql.conf

例如:

vi /var/lib/pgsql/12/data/postgresql.conf

常见参数示例:

max_connections = 200
shared_buffers = 2GB
work_mem = 64MB
effective_cache_size = 6GB

2️⃣ 客户端认证(非参数,但常一起改)

vi /var/lib/pgsql/12/data/pg_hba.conf

示例(允许远程连接):

host    all    all    0.0.0.0/0    md5

三、让配置生效

✅ 方法一:重新加载(推荐,不中断服务)

systemctl reload postgresql

su - postgres
psql -c "SELECT pg_reload_conf();"

⚠️ 有些参数(如 shared_buffers必须重启


✅ 方法二:重启 PostgreSQL

systemctl restart postgresql

四、验证参数是否生效

su - postgres
psql

查看参数:

SHOW max_connections;
SHOW shared_buffers;

或:

SELECT name, setting FROM pg_settings WHERE name='work_mem';

五、常见调优参数(参考)

参数 说明
max_connections 最大连接数
shared_buffers 共享内存(通常 25% 内存)
work_mem 每个操作排序/哈希内存
maintenance_work_mem 维护操作内存
effective_cache_size 查询优化器参考
wal_buffers WAL 缓冲

六、注意事项(CentOS 常见坑)

  1. SELinux

    getenforce
    

    若为 Enforcing,修改目录权限要注意

  2. 防火墙

    firewall-cmd --add-port=5432/tcp --permanent
    firewall-cmd --reload
    
  3. 权限问题 配置文件必须属于 postgres 用户


如果你能告诉我:

  • PostgreSQL 版本
  • CentOS 版本
  • 想调哪个参数 / 解决什么问题

我可以给你更精确的配置示例

0