postgresql 热备份平台搭建

环境:pg 9.x, centos 7
主机名 角色 数据目录 ip
服务器 主库 /opt/PostgreSQL/9.6/data/ *.*.*.174
VMware Standby(从) /opt/PostgreSQL/9.6/data/ *.*.*.176

pg 9.x 版本

第一步
  • 对主库进行操作,首先要对 pg_hba.conf 中增加一条配置

####### 允许用户postgres从176的网络上发起到本数据库的流复制(replication)链接。
host replication postgres *.*.*.176 md5

主库重启生效以上变更

  • 其次要对 postgresql.conf 中修改配置
    listen_addresses = “*”
    max_wal_senders = 5
    wal_level = replica (9.6之后的replica = 9.6之前的hot_standby)

  • 第三,需要用pg_basebackup命令在从机上生成基础备份。

/opt/PostgreSQL/9.6/bin/pg_basebackup -R -h 192.168.3.174 -D /opt/PostgreSQL/9.6/data/ -U postgres -W

-R 参数,会自动传教 recover.conf
-h 要备份的主机
-p 指定端口
-D 指定备份文件将要写入的目录
-U 指定链接用户名
-W 强制让pg_basebackup出现密码输入提示
postgresql 流复制平台搭建

  • 接下来要启动Stanby数据库。
    在启动之前需要修改从机的postgresql.conf里的配置。
    hot_standby = on

    • 接着,需要启动从机的 pg,就可以自动进入Hot Standby状态,查看进程。
      postgresql 流复制平台搭建
    • 查看主机进程变化
      postgresql 流复制平台搭建

出现的问题

  1. number of requested standby connections exceeds max_wal_senders (currently 0)
    未对主库的max_wal_senders进行连接数量设置,即:max_wal_senders=1
  2. starting up waiting for xxxxxxxxxxxxxxxxxxxxxxxxx
    此问题是因为在从机启动数据库之前没有进行hot_standby=on设置。遇上此问题需要重新进行pg_basebackup。

pg 为10.x版本

配置流复制,主库只要开启 replication 权限(pg_hba.conf)

然后再从库,
1、先形成一个主库的基本备份
2、配置 recover.conf ,开启流复制
更改从机的文件权限。
chown -R postgres data
3、重新启动

1 和2 可以通过 pg_basebackup -R -h -U -D 一步到位

相关文章:

  • 2019-09-27
  • 2019-10-10
  • 2022-12-23
  • 2021-12-02
  • 2021-12-26
  • 2021-12-26
  • 2021-12-26
猜你喜欢
  • 2021-12-26
  • 2022-12-23
  • 2021-12-26
  • 2021-12-17
  • 2022-12-23
  • 2021-11-10
  • 2021-10-19
相关资源
相似解决方案