博客
关于我
postgres--流复制
阅读量:795 次
发布时间:2023-03-03

本文共 1485 字,大约阅读时间需要 4 分钟。

PostgreSQL 主库和从库配置详细指南

主库配置

1.1 主库设置

  • 主库IP地址192.168.2.21
  • 端口5432
  • 数据目录/var/lib/pgsql/10/data/

1.2 用户配置

  • 创建角色psql -c "create role rep with replication;"
  • 设置密码
    create role rep login replication encrypted password '1qaz2wsx';
  • 权限GRANT replication on database replication to rep;

1.3 访问权限配置(pg_hba.conf)

  • 文件路径/var/lib/pgsql/10/data/pg_hba.conf
  • 添加规则
    host    replication rep     192.168.2.22/32     md5

1.4 数据同步准备

  • 创建目录并设置权限
    mkdir /var/lib/pgsql/10/data/chown postgres:postgres /var/lib/pgsql/10/data/chmod 700 /var/lib/pgsql/10/data/

1.5 WAL配置

  • 启动主库
    service postgresql-10 restart

从库配置

2.1 从库准备

  • 安装完成后:不要手动初始化数据库和启动服务。
  • 数据目录/var/lib/pgsql/10/data/

2.2 数据同步

  • 备份主库
    pg_basebackup -D /var/lib/pgsql/10/data/ -F p -X stream -h 192.168.2.21 -p 5432 -U rep

2.3 配置从库

  • 修改配置文件postgresql.conf
    # 根据从机实际情况配置wal_keep_segments = 100
  • 设置recovery.conf
    standby_mode = onprimary_conninfo = 'host=192.168.2.21 port=5432 user=rep password=1qaz2wsx'recovery_target_timeline = 'latest'

2.4 启动从库

  • 重启服务
    service postgresql-10 restart

从库监控

3.1 查看WAL应用状态

  • 检查暂停状态
    pg_is_wal_replay_paused()
  • 查看WAL接收记录
    pg_last_wal_receive_lsn()

3.2 查看WAL接收信息

  • 接收进度
    pg_last_wal_replay_lsn()
  • wal receiver统计
    pg_stat_get_wal_receiver()

3.3 管理WAL应用

  • 暂停
    pg_wal_replay_pause()
  • 恢复
    pg_wal_replay_resume()

注意事项

1. 防止WAL文件丢失

  • 配置slot
    max_replication_slots = 10recovery_slot_name = ''
  • wal_keep_segments:建议设置为100,避免WAL文件丢失。
  • wal归档:配置主库归档,确保备库可以访问已归档文件。

2. 安全配置

  • recovery.conf:保护好文件访问权限,确保只允许特定从机访问。

最后建议

  • 定期检查WAL接收和应用状态
  • 监控从机连接状态
  • 及时处理WAL暂停问题

参考文献

你可能感兴趣的文章