温馨提示×

centos怎么搭建postgresql主从

小樊
45
2026-10-26 21:45:11
栏目: 云计算

下面给你一个**在 CentOS 7/8 上搭建 PostgreSQL 主从(流复制,Streaming Replication)**的实用步骤示例。假设:

  • 主库 IP:192.168.1.10
  • 从库 IP:192.168.1.11
  • PostgreSQL 版本:14(其他版本类似)
  • 使用 物理流复制(推荐)

一、主库配置(Master)

1. 安装 PostgreSQL

# CentOS 7/8
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %centos)/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y postgresql14-server
sudo /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

4. 创建复制用户

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

重启主库:

systemctl restart postgresql-14

二、从库配置(Standby)

1. 安装 PostgreSQL(不初始化)

sudo dnf install -y postgresql14-server

2. 使用 pg_basebackup 拉取主库数据

systemctl stop postgresql-14
rm -rf /var/lib/pgsql/14/data/*

su - postgres
pg_basebackup -h 192.168.1.10 -U repluser -D /var/lib/pgsql/14/data -P -X stream -R

-R 会自动生成 standby.signal 和 replication 配置。


3. 启动从库

systemctl start postgresql-14

三、验证主从状态

主库执行:

SELECT * FROM pg_stat_replication;

能看到从库信息即成功。

从库执行:

SELECT pg_is_in_recovery();

返回 t 表示处于从库模式。


四、常见问题

1. 防火墙

firewall-cmd --add-service=postgresql --permanent
firewall-cmd --reload

2. 时间同步

chronyc sources

3. 版本一致

主从 PostgreSQL 大版本必须一致


五、可选增强

  • 同步复制(synchronous_commit = on)
  • 延迟从库
  • 自动故障转移(Patroni / repmgr)

如果你需要 CentOS 具体版本 或 Docker / 一主多从 / 同步复制 方案,我可以继续补。

0 踩