美文网首页工作生活
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