2016/01/04,PostgreSQL专业咨询和服务公司2ndQuarrant向社区提交并发布了新一代的的逻辑复制扩展功能pglogical,该功能可作为PostgreSQL一项扩展功能使用,可完全集成于PostgreSQL,它兼顾有基于触发器复制技术的灵活性,同时又有基于日志复制技术的高效性,它使用发布/订阅模型对选择性的数据复制相对物理复制来说是非常高效的方法,新方案的独创性在许多应用场景下都能给大家带来了不一样的体验:
- 升级:使用本功能,对类似从9.4向9.5这样的大版本升级,都不必停机。
- 扩展:使用本功能,可以复制所有或是选定的一部分数据表至集群中的其他节点。
- 聚合:可从分区数据库节点中收集各种数据至一个集中的数据仓库中。
- 集成:可将数据库的变化实时转移至其他系统。
- 安全:可以替换早期的一些技术,提供更有效的备份或高可用性。
性能
已使用PostgreSQL的用户会发现pglogical特别在性能这一块带来惊喜,根据初步的内部测试,在使用pgBench进行事务型负载(OLTP)测试时,它相对其他复制方案如slony和londiste3时,最高可达5倍的性能,如下图:
安装和使用
pglogical目前可以通过2ndQuadrant提供的apt和yum的安装文件在Linux的Debian和Red Hat系列平台(如RHEL企业版、CentOS和Fedora) 上的PostgreSQL9.4或是将要发布9.5版本使用。用户可以使用标准的apt和yum安装包管理器把pglogical安装在你的PostgreSQL服务器上。
详细的安装步骤见文档:这里。
pglogical是完全开源的,使用PostgreSQL开发组现在使用的PostgreSQL版本发布。代码将提交给PostgreSQL核心组,作为整合至9.6版本标准功能的备选。
pglogical可以提供哪些好处?
- 没有触发器意谓着在发布端(主数据库端)可减少写的负载。
- 没有SQL的二次执行意谓着在订阅端(从数据库端)可减少负载和延迟。
- 在订阅端(从数据库端)不使用热备恢复模式,这样用户可以使用临时表、非日志表或是其他正常表。
- 在复制重新开始时,不必取消对外的查询功能。
- 在订阅端(从数据库端)可以有不同的用户和安全设置,不同的索引,不同的系统参数设置。
- 可以仅复制一个数据库,或是一个表的一部分。
- 复制可以跨PostgreSQL不同版本或是集群架构,允许很少时间或是零时间停机升级。
- 多个服务器的变更可以集中至一台服务器进行汇总。
pglogical如何工作?
pglogical使用由2ndQuadrant公司开发的逻辑解码特性(自PostgreSQL 9.4版本添加)。pglogical相对PostgreSQL 9.5版本来说,在复制的发布端和订阅端运行的开销都很小,运行很快。
pglogical也借鉴了BDR开发中的很多特性,包括:
- 逻辑解码
- 复制槽位技术
- 静态后台进程
- 复制源replication origins
- 事务提交时间戳
pglogical重用了BDR项目中很多内容,因此,这项开发并不算是从零开始的。
pglogical支持双向复制吗(类似BDR)?
不。pglogical不提供多主复制,它也不会像BDR那样复制序列值或是DDL操作。pglogical从BDR中借鉴了并参考了一些功能,然后开发出了更新
简单和易用的单向复制方案。它将会被很多人在很多场景下使用。BDR设计时首先要满足的是多向多主的网格化复制,它并不适宜在单向的单主服务器的复制。
BDR将继续开发支持双向多主复制的功能,它也会利用pglogical中的很多代码。
pglogical下一步向什么方向发展?
pglogical只是一个模块,将会向以下使用场景进行扩展:
- 作为多主双向复制的一个基础。
- 级联逻辑复制,支持复杂的复制拓扑方案。
- 根据需要,通过触发器进行数据的收集和转换。
- 可深入重要的schema和cstore等特殊功能等。
- 行级选择性复制,如类似申请“仅发送这个客户的相关数据至指定的服务器”。
- 通过一些输出插件,输出json或XML等数据流。
- 通过一些输出插件,便于其他基于触发器技术的数据库收集项目作为替代方案。
- 开发可扩展、包装好的协议,以供多个其他不同的客户端使用。
https://aihuishou.tiancebbs.cn/ypsh/
http://js.sytcxxw.cn/ysjz/
http://nalei.zjtcbmw.cn/tjnh/
https://nankou.tiancebbs.cn/
http://cf.lstcxxw.cn/jiuquan/
https://ruijin.tiancebbs.cn/
http://yz.cqtcxxw.cn/dgsz/
http://fuyang.tjtcbmw.cn/tbs/
http://fuyang.tjtcbmw.cn/cqyb/
http://js.sytcxxw.cn/ghua/
http://fuyang.tjtcbmw.cn/bjxc/
http://cf.lstcxxw.cn/cxyqz/
http://gx.lztcxxw.cn/xjcj/
https://ning.tiancebbs.cn/
https://chengdezhoubian.tiancebbs.cn/
https://wjqqita.tiancebbs.cn/
http://shengshun.njtcbmw.cn/kezilesu/
https://aihuishou.tiancebbs.cn/sh/3018.html
https://aihuishou.tiancebbs.cn/sh/1788.html
https://zulin.tiancebbs.cn/sh/273.html
https://www.tiancebbs.cn/ershoufang/469277.html
https://sh.tiancebbs.cn/hjzl/468447.html
https://taicang.tiancebbs.cn/hjzl/459762.html
https://sh.tiancebbs.cn/hjzl/459950.html
https://dapuxian.tiancebbs.cn/qths/466534.html
https://aihuishou.tiancebbs.cn/sh/2011.html
https://xt.tiancebbs.cn/b2bjzjc/56948.html
https://zulin.tiancebbs.cn/sh/268.html
https://aihuishou.tiancebbs.cn/sh/3379.html
https://su.tiancebbs.cn/hjzl/458002.html
https://nb.tiancebbs.cn/qths/452025.html
https://zulin.tiancebbs.cn/sh/4185.html
https://su.tiancebbs.cn/hjzl/460868.html
https://www.tiancebbs.cn/ershouwang/471690.html
https://mmchengxi.tiancebbs.cn/
http://ouyu.hftcbmw.cn/smxc/
https://aihuishou.tiancebbs.cn/hpsh/
http://nalei.zjtcbmw.cn/shan-xi/
https://wangchang.tiancebbs.cn/
http://ouyu.hftcbmw.cn/tczh/
https://keping.tiancebbs.cn/
http://gx.lztcxxw.cn/
http://yz.cqtcxxw.cn/liaoning/
http://taiying.njtcbmw.cn/huhehaote/
https://aihuishou.tiancebbs.cn/fjxcq/
https://wanbailin.tiancebbs.cn/
http://shengshun.njtcbmw.cn/nanning/
http://cf.lstcxxw.cn/jiangxi/
https://chaganzhen.tiancebbs.cn/
http://taiying.njtcbmw.cn/huaibei/
http://jinqiang.ahtcbmw.cn/xianning/