• Centos7下Postgresql9.3主备双机流复制搭建(同步与异步)


    Centos7下postgresql9.3(以下简称pg9.3)主备双机流复制搭建(同步与异步

    异步流复制配置:

    前提先规划好主机,网络,存储,主备机时间同步等。

    1,主备库建立

     前提主备机器都已安装完pg9.3,参考Centos7下postgresql9.3源码安装:https://www.cnblogs.com/jinli1771/p/14289309.html

    2,主机新建replication角色

    postgres=# CREATE USER repl REPLICATION LOGIN  ENCRYPTED PASSWORD 'repl';

     

    3,配置主库postgresql.conf和pg_hba.conf。

    1)配置postgresql.conf

    # - Settings -

    wal_level = hot_standby                       #主备机需配置为hot_standby

    # - Archiving -

    archive_mode = on                       # 为on表示归档模式开启

    archive_command = 'cp %p /usr/local/pg93/data/archive/%f'   # %p代表xlog日志的全路径,%f指文件名

    max_wal_senders=16                         #至少1个流复制节点连接到主机

    wal_keep_segments=32                     #WAL日志保留个数,不能超出目录大小,编译时指定大小,默认10M

    2)配置pg_hba.conf

     

    红框代表允许repl用户从任何IP免密连接到主机。

    4,备节点使用pg_basebackup创建备库基础备份(创建前先删除$PGDATA目录)

     

    -Fp表示输出的格式默认普通非压缩

    -P 指打印出复制进度

    -R 直接生成备机用于复制的配置文件recovery.conf

    -D 表示复制至指定目录

    -h 主机名

    -p 端口号

    -U 复制的用户

    由于主机pg_hba.conf配置的repl免密登录因此可以不用输入密码。

    复制完毕后,检查recovery.conf

     

     primary_conninfo指连接到主机(192.168.138.81)的用户是repl,端口是8493。

    5,启动hot_standby

    pg_ctl start

     

     查看数据库已启动,同时多了流复制接收进程和恢复进程

     

    6,测试验证

    主节点执行

     

    备节点查询已同步

     

     同步流复制

    1 主机只需在异步流复制两个postgresql.conf配置添加两个参数:

    # - Settings -

    synchronous_standby_names = '*'     # 同步流复制的备机列表名称,*代表全部的备节点

    # - Master Server -

    synchronous_commit = on         # 同步流复制提交,支持全局,事务,会话中打开

    2 测试同步流复制:

    1)连接主节点,插入test表,插入成功无等待。

      2)模拟备节点故障停止,主节点再次插入已经变为等待。

    主节点

      

      3)重新启动备节点,发现主节点插入成功。

    主节点

     

      

  • 相关阅读:
    Sereja and Bottles-水题有点坑爹
    what we benefit from big data
    SwipeRefreshLayout与ViewPager滑动事件冲突解决
    java连接数据库核心代码
    spring mvc中实现csrf安全防御简记
    一题多解(八)—— 矩阵上三角(下三角)的访问
    面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
    面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
    Python 辨异 —— __init__ 与 __new__
    Python 辨异 —— __init__ 与 __new__
  • 原文地址:https://www.cnblogs.com/jinli1771/p/14315775.html
Copyright © 2020-2023  润新知