温馨提示×

温馨提示×

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

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

postgresql如何主从复制

发布时间:2026-09-27 15:53:06 来源:亿速云 阅读:93 作者:小樊 栏目:数据库

PostgreSQL 的主从复制(通常叫 流复制 / Streaming Replication)常见做法是基于 WAL(Write-Ahead Log) 的物理复制。下面我按最常用、最标准的“一主一从”物理流复制给你一个完整步骤说明(以 Linux + PostgreSQL 12+ 为例,其他版本类似)。


一、主从复制基本架构

  • 主库(Primary):可读写
  • 从库(Standby / Replica):默认只读(可配置热备)
  • 复制方式:WAL 流复制(同步或异步)

二、环境准备

假设:

  • 主库 IP:192.168.1.10
  • 从库 IP:192.168.1.20
  • PostgreSQL 数据目录:/var/lib/pgsql/12/data
  • 操作系统用户:postgres

三、主库配置(Primary)

1. 修改 postgresql.conf

listen_addresses = '*'
wal_level = replica
max_wal_senders = 10
wal_keep_size = 1GB   # PostgreSQL 13+,老版本是 wal_keep_segments
hot_standby = on

2. 配置复制用户

CREATE ROLE repl REPLICATION LOGIN PASSWORD 'repl_password';

3. 配置 pg_hba.conf

允许从库连接:

host    replication     repl        192.168.1.20/32    md5

4. 重启主库

systemctl restart postgresql-12

四、从库配置(Standby)

1. 停止从库 PostgreSQL

systemctl stop postgresql-12

2. 清空从库数据目录

rm -rf /var/lib/pgsql/12/data/*

3. 使用 pg_basebackup 从主库拉取数据

pg_basebackup \
  -h 192.168.1.10 \
  -U repl \
  -D /var/lib/pgsql/12/data \
  -Fp -Xs -P

参数说明:

  • -Xs:包含 WAL 流
  • -P:显示进度

五、配置从库为 Standby

1. 创建 standby.signal

touch /var/lib/pgsql/12/data/standby.signal

(PostgreSQL 12+ 使用此文件表示 standby)

2. 配置 postgresql.conf

primary_conninfo = 'host=192.168.1.10 port=5432 user=repl password=repl_password'
hot_standby = on

3. 启动从库

systemctl start postgresql-12

六、验证复制状态

主库执行:

SELECT * FROM pg_stat_replication;

看到从库连接即成功。

从库执行:

SELECT pg_is_in_recovery();

返回 t 表示从库处于恢复模式(正确)。


七、同步 vs 异步复制(可选)

异步(默认)

性能高,可能丢少量数据

同步复制

主库配置:

synchronous_standby_names = 'standby1'

从库 primary_conninfo 加上:

application_name=standby1

八、常见扩展方案

  • 一主多从
  • 级联复制(Cascading Replication)
  • 逻辑复制(Logical Replication)(表级)
  • Patroni + etcd(高可用)
  • Pgpool-II(读写分离)

如果你愿意,我可以:

  • 给你 Docker 版主从
  • 给你 CentOS / Ubuntu 具体命令
  • 讲 逻辑复制和物理复制区别
  • 帮你排查 复制失败问题

你现在是打算生产环境还是学习测试?

向AI问一下细节

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

AI
助
手