温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql如何主从同步

发布时间:2026-09-07 01:26:35 来源:亿速云 阅读:99 作者:小樊 栏目:数据库

PostgreSQL 的主从同步(通常叫 流复制,Streaming Replication)常见做法如下,以 一主一从(Primary + Standby) 为例,基于 PostgreSQL 12+(差异不大)。


一、主库配置(Primary)

1. 修改 postgresql.conf

# 监听地址(从库要能连)
listen_addresses = '*'

# 开启 WAL
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB   # PostgreSQL 13+(12 是 wal_keep_segments)

# 可选:同步复制(强一致)
# synchronous_commit = on
# synchronous_standby_names = 'standby1'

2. 修改 pg_hba.conf

允许从库通过 replication 连接:

# host    db      user      slave_ip/32     method
host    replication     repl_user     192.168.1.2/32     md5

3. 创建复制用户

CREATE ROLE repl_user WITH REPLICATION LOGIN PASSWORD 'password';

4. 重启主库

pg_ctl restart

二、从库配置(Standby)

1. 停止从库(如果是新初始化)

pg_ctl stop

2. 使用 pg_basebackup 克隆主库

pg_basebackup \
  -h 192.168.1.1 \
  -U repl_user \
  -D /var/lib/postgresql/data \
  -Fp -Xs -P

3. 创建 standby.signal

touch /var/lib/postgresql/data/standby.signal

4. 配置 postgresql.conf(从库)

primary_conninfo = 'host=192.168.1.1 port=5432 user=repl_user password=password'

(可选)

hot_standby = on

5. 启动从库

pg_ctl start

三、验证同步状态

主库查看

SELECT * FROM pg_stat_replication;

从库查看

SELECT pg_is_in_recovery();  -- 返回 t 表示从库

四、同步 vs 异步

类型 配置 特点
异步 默认 性能高,可能丢数据
同步 synchronous_commit=on 不丢数据,性能略低

五、常见扩展方案

  • 逻辑复制(Logical Replication):表级同步
  • Patroni + etcd:高可用自动切换
  • pgpool / repmgr:管理和故障转移

如果你告诉我:

  • PostgreSQL 版本
  • 操作系统(CentOS / Ubuntu)
  • 是否要 同步复制 / 自动故障转移

我可以给你一份 可直接用的配置示例

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI