下面以 Debian + PostgreSQL(以 14/15 为例) 说明最常用、稳定的 流复制(Streaming Replication)主从配置 方法。
192.168.1.10192.168.1.11/var/lib/postgresql/15/main/etc/postgresql/15/main主从版本必须一致(小版本也要尽量一致)
postgresql.conflisten_addresses = '*'
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB
hot_standby = on
pg_hba.conf允许从库通过复制协议连接:
host replication all 192.168.1.11/32 md5
sudo -u postgres psql
CREATE ROLE repluser WITH REPLICATION PASSWORD 'yourpassword' LOGIN;
sudo systemctl restart postgresql
sudo systemctl stop postgresql
rm -rf /var/lib/postgresql/15/main/*
sudo -u postgres pg_basebackup \
-h 192.168.1.10 \
-U repluser \
-D /var/lib/postgresql/15/main \
-P -R -X stream
参数说明:
-R:自动生成 standby.signal-X stream:实时拉 WALsudo systemctl start postgresql
SELECT * FROM pg_stat_replication;
应能看到从库连接信息。
SELECT pg_is_in_recovery();
返回 t 表示从库(只读)。
❌ 不可以(默认只读)
pg_ctl promote
repmgr / Patroni 做自动故障切换确保端口开放:
sudo ufw allow 5432
如果你告诉我:
我可以给你更精确的配置。