下面以 PostgreSQL 主从(流复制,Streaming Replication) 为例,说明最常见的 一主一从 配置方式(Linux 环境,PostgreSQL 12+ 通用)。
192.168.1.10192.168.1.11/var/lib/postgresql/14/mainpostgrespostgresql.conflisten_addresses = '*'
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB
hot_standby = on
PostgreSQL 13 之前用
wal_keep_segments
pg_hba.conf允许从库连接复制:
host replication repluser 192.168.1.11/32 md5
CREATE ROLE repluser WITH REPLICATION PASSWORD '密码' LOGIN;
pg_ctl restart -D /var/lib/postgresql/14/main
pg_ctl stop -D /var/lib/postgresql/14/main
rm -rf /var/lib/postgresql/14/main/*
pg_basebackup \
-h 192.168.1.10 \
-U repluser \
-D /var/lib/postgresql/14/main \
-Fp -Xs -P
standby.signaltouch /var/lib/postgresql/14/main/standby.signal
postgresql.conf(从库)primary_conninfo = 'host=192.168.1.10 port=5432 user=repluser password=密码'
pg_ctl start -D /var/lib/postgresql/14/main
SELECT * FROM pg_stat_replication;
能看到从库连接信息即成功。
SELECT pg_is_in_recovery();
返回 t 表示处于备库状态。
synchronous_standby_names = 'standby1'
pg_hba.conf 未配置 replicationpostgres如果你用的是 Docker / Kubernetes / Windows / 特定 PG 版本,可以告诉我,我可以给你对应方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。