温馨提示×

centos怎样配置postgresql主从

小樊
34
2026-10-09 08:03:12
栏目: 云计算

下面以 CentOS 7/8 + PostgreSQL 12/13/14 为例,说明如何配置 PostgreSQL 主从(流复制,Streaming Replication)。


一、环境说明

角色 主机名 IP 说明
主库 master 192.168.1.10 可读写
从库 standby 192.168.1.11 只读

PostgreSQL 安装目录(示例):

  • 数据目录:/var/lib/pgsql/14/data
  • 服务:postgresql-14

二、主库配置(Master)

1. 安装 PostgreSQL

# CentOS 8 示例
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf install -y postgresql14-server postgresql14
/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl enable --now postgresql-14

2. 修改 postgresql.conf

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

关键配置:

listen_addresses = '*'
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB
hot_standby = on

3. 配置 pg_hba.conf

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

添加:

host    replication     repluser        192.168.1.11/32    md5
host    all             all             0.0.0.0/0          md5

4. 创建复制用户

su - postgres
psql
CREATE ROLE repluser WITH REPLICATION PASSWORD 'replpass' LOGIN;

5. 重启主库

systemctl restart postgresql-14

三、从库配置(Standby)

1. 安装 PostgreSQL(不初始化)

dnf install -y postgresql14-server postgresql14

2. 使用 pg_basebackup 拉取主库数据

su - postgres
pg_basebackup -h 192.168.1.10 -U repluser -D /var/lib/pgsql/14/data \
  -Fp -Xs -P -R

参数说明:

  • -R:自动生成 standby.signal 和 primary_conninfo

3. 修改从库 postgresql.conf(可选)

hot_standby = on

4. 启动从库

systemctl enable --now postgresql-14

四、验证主从状态

主库执行

SELECT * FROM pg_stat_replication;

看到 standby 即为成功。

从库执行

SELECT pg_is_in_recovery();

返回 t 表示从库。


五、常见问题

1. 防火墙

firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload

2. SELinux

setsebool -P postgresql_can_network_connect on

3. 同步复制(可选)

主库:

synchronous_standby_names = 'standby1'

六、总结

✅ 主从核心步骤:

  1. 主库开启 WAL + 复制用户
  2. 从库使用 pg_basebackup
  3. 自动生成 standby 配置
  4. 启动并验证

如果你需要 CentOS 7 特定版本、Docker 部署 或 一主多从 + 延迟从库,我可以继续补充。

0 踩