温馨提示×

centos postgresql复制功能介绍

小樊
50
2025-08-29 02:16:13
栏目: 云计算

CentOS上的PostgreSQL复制功能主要有流复制逻辑复制两种,基于WAL(预写日志)机制实现数据同步,以下是具体介绍:

一、流复制(物理复制)

  • 原理:主节点将WAL日志实时传输给从节点,从节点重放日志实现数据同步,属于块级复制,备库默认只读。
  • 配置步骤
    1. 主节点:修改postgresql.conf设置wal_level=replicamax_wal_senders=10等参数,创建复制用户并授权,在pg_hba.conf中允许从节点连接。
    2. 从节点:通过pg_basebackup从主节点备份数据,配置recovery.conf(或postgresql.auto.conf)指定主节点连接信息和恢复参数,启用hot_standby模式。
    3. 验证:主节点通过pg_stat_replication查看复制状态,从节点检查数据是否同步。
  • 特点:高可用、低延迟,适合主从架构和高负载场景,但备库无法直接写入。

二、逻辑复制(表级复制)

  • 原理:基于发布/订阅模型,主节点将指定表的WAL日志解析为SQL语句,订阅节点接收并应用,属于表级复制,备库可读写(需处理冲突)。
  • 配置步骤
    1. 主节点:设置wal_level=logicalmax_replication_slots≥1,创建发布(CREATE PUBLICATION)并指定需同步的表。
    2. 订阅节点:创建订阅(CREATE SUBSCRIPTION),指定主节点连接信息和发布名称,订阅节点需提前创建对应表结构。
    3. 验证:通过查询主从节点数据一致性确认同步效果。
  • 特点:灵活选择表、支持跨版本同步,但同步速度较慢,DDL变更需手动处理。

三、关键参数与注意事项

  • 核心参数
    • wal_level:决定日志详细程度,流复制需设为replicalogical,逻辑复制必须为logical
    • max_wal_senders:主节点允许的最大WAL发送进程数,需大于复制节点数量。
    • archive_mode:启用归档模式(流复制需开启)。
  • 注意事项
    • 确保主从节点网络通畅,防火墙开放5432端口。
    • 定期监控复制状态(如pg_stat_replication),处理延迟或错误。
    • 逻辑复制需额外配置复制槽和订阅,且不支持自动DDL同步。

四、适用场景

  • 流复制:主从高可用、读写分离、灾难恢复,适合对数据一致性要求高的场景。
  • 逻辑复制:数据集成、跨库同步、微服务数据分片,适合需要灵活表级同步的场景。

参考资料:

0