美文网首页工作生活
ubuntu 16.04 下 postgresql 9.5 的

ubuntu 16.04 下 postgresql 9.5 的

作者: 张广旭 | 来源:发表于2019-06-30 18:52 被阅读0次

primary

添加replication用户

  • sudo -u postgres psql
  • CREATE USER rep REPLICATION CONNECTION LIMIT 30 ENCRYPTED PASSWORD 'rep-user-password'; 用户名可自定义

编辑 pg_hba.conf

  • 追加 host replication rep standby-private-ip/32 md5

编辑 postgresql.conf

listen_addresses = 'localhost,primary-private-ip'
max_connections = 610  # 客户端连接数+max_wal_senders
wal_level = hot_standby
max_wal_senders = 50
wal_keep_segments=200
hot_standby = on

重启 postgresql 服务

  • 如果用 apt 安装并用 systemd 部署,则执行 sudo systemctl restart postgresql@9.5-main.service

standby (hot_standby)

停止 postgresql 服务

  • 如果用 apt 安装并用 systemd 部署,则执行 sudo systemctl stop postgresql@9.5-main.service

生成初始数据

  • sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.old
  • sudo -u postgres pg_basebackup -h primary-private-ip -D /postgres/data -U rep -v -P --xlog-method=stream
  • Password: (使用rep user的密码)

编辑 postgresql.conf

listen_addresses = 'localhost,standby-private-ip'
max_connections = 610 # 和primary保持一致
wal_level = hot_standby # 和primary保持一致
max_wal_senders = 50 # 和primary保持一致
wal_keep_segments=200 # 和primary保持一致
hot_standby = on # 和primary保持一致

recovery.conf

  • sudo cp /usr/share/postgresql/9.5/recovery.conf.sample /postgres/data/recovery.conf
  • sudo chown postgres:postgres /postgres/data/recovery.conf
  • 编辑 recovery.conf
    • sudo vi /postgres/data/recovery.conf
    • 修改相应的配置项
      standby_mode = on
      primary_conninfo = 'host=primary-private-ip port=5432 user=rep password=rep-user-password'
      

启动 postgresql 服务

  • sudo chmod 700 /postgres/data
  • 如果用 apt 安装并用 systemd 部署,则执行 sudo systemctl start postgresql@9.5-main.service

trouble shooting

wal_keep_segments

  • wal_keep_segments 要足够大,否则会造成standby server中断同步数据

max_connections

  • max_connections 要根据 max_wal_senders 做调整

standby如何提升为primary

当 primary 宕机后,提升 standby 继续提供服务

  • 命令格式 pg_ctl promote [-D datadir]
  • 参考形式 sudo su postgres -c "/usr/lib/postgresql/9.5/bin/pg_ctl promote -D /var/lib/postgresql/9.5/main" -- 注意数据路径可能不同

其他注意事项

  • 要配置日志,便于排查问题。

  • primary and standby 的 postgresql.conf 除部分配置项不能相同外,其他尽量保持一致。便于后期维护,特别是当需要提升standby为primary时。

  • primary and standby 部署的机器和操作系统尽量保持一致。

相关文章

网友评论

    本文标题:ubuntu 16.04 下 postgresql 9.5 的

    本文链接:https://www.haomeiwen.com/subject/gcnbcctx.html