zoukankan      html  css  js  c++  java
  • PostgreSQL 流复制解惑

    一、流复制的机制

    PostgreSQL流复制是基于wal日志。主库产生wal日志并发送给备库;备库接收wal日志记录;并重放这些wal日志。从而达到主备库数据同步。备库只读。

    二、冲突检测机制

    PostgreSQL流复制中备库是只读的;备库在读某些记录时;跟主库执行的ddl操作/或者一些维护操作。例如vacuum死tuple时。备库正是需要在查询的tuple。

    解决这些冲突:

    备库取消查询

    主库延迟清理死tuple

    参数max_standby_archive_defer、max_standby_steaming_defer 设置大一点。

    备库开启feed back。 告知主库在清理tuple是否是备库所需要的。

    vacuum_defer_cleanup_age设置大一点;减少冲突。

    三、如果备库开启FEED BACK对主库有什么伤害

    如果备库开启feed back。可能会操作主库的对象膨胀。

    备库开启feed back;其目的是告知主库“备库最小活跃的事物ID”。而活跃中tuple不用被清理,而这些tuple正好是update/delete造成的死 tuple。主库不会对这些vacuum。影响等同于主库的长事物未终止

    四、同步复制机制的堵塞机制

    同步复制机制:主库的事务需要wal日志传送给备库或者备库需要应用wal日志才能返回。若网络不好,或者wal日志比较大。从而造成主库事务一直在等待。

    五、如何降低延迟

    开启同步模式;

    参数max_standby_archive_defer、max_standby_steaming_defer设置小一点。

    主备库直接使用内网连接

    六、如何避免主备断开后需要重搭

    将wal_keep_segment设置大一些。

    使用命令pg_rewind进行备库恢复。

    七、如何做到数据传输安全

    主备库是用内网连接;

    采用ssl加密连接

    八、如何降低跨域数据传输延迟

    使用内网连接

  • 相关阅读:
    Linux基础(一)
    计算机基础之网络基础
    计算机基础之操作系统
    计算机基础之计算机硬件基础
    .NET Reflector 8.2支持VS2013高亮显示和代码地图视图
    jQuery图表开源软件
    8个实用的页面布局和用户界面jQuery插件
    关于mvc3.0RadioButtonFor的使用
    链式调用-python
    给实数用千分位方法输出结果
  • 原文地址:https://www.cnblogs.com/lottu/p/13993178.html
Copyright © 2011-2022 走看看