• Postgres 主从配置(五)


    PostgreSQL 9.4 新增的一个特性, replication slot, 
    1. 可以被流复制的sender节点用于自动识别它xlog中的数据在下面的standby中是否还需要(例如, standby断开连接后, 还未接收到的XLOG), 如果还需要的话, 那么这些XLOG将不会被删除.
    2. 对于tuples, 如果standby 配置了hot_standby_feedback=on, 那么发生冲突的tuples将不会在sender端被vacuum回收. 用于规避冲突.
    配置比较简单, 需要在sender端使用函数创建slot, 在receiver端配置对应的slot name即可.
     
    主节点:
    postgres=# SELECT * FROM pg_create_physical_replication_slot('node_a_slot');
      slotname   | xlog_position
    -------------+---------------
     node_a_slot |
    
    postgres=# SELECT * FROM pg_replication_slots;
      slot_name  | slot_type | datoid | database | active | xmin | restart_lsn
    -------------+-----------+--------+----------+--------+------+-------------
     node_a_slot | physical  |      0 |          | f      |    
     
    从节点
    standby_mode = 'on'
    primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass'
    primary_slot_name = 'node_a_slot'
    流复制协议也做了相应的改进 : 
     
    使用slot的好处 : 
    1. 在没有replication slot这个特性以前, 有两种方法来保持standby需要的xlog, wal keep或者归档, 因为主节点不知道standby到底需要哪些XLOG信息, 配置一般需要较大的余量. slot可以解决这个浪费sender端存储wal空间的问题, 因为sender可以做到保留更精准的wal信息.
    2. 配合standby节点的feedback使用, 可以避免vacuum带来的冲突.
  • 相关阅读:
    关于有序查找的随笔
    Spring框架(一) 创建bean
    Linux常用命令
    Spring框架(二) bean的歧义性
    java实现图片文字识别的两种方法
    分享基于分布式Http长连接框架代码模型
    分享基于分布式Http长连接框架设计模型
    无限树Jquery插件zTree的使用方法
    分享基于分布式Http长连接框架
    使用vs编译事件来动态发布配置文件
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/7831104.html
Copyright © 2020-2023  润新知