我了解的一些postgresql集群知识

    最近有些同事在咨询我Postgresql数据库集群高可用容灾的情况,PG库因为是开源数据库,其实现功能的周边产品和插件有很多,这里列几个典型的方案介绍给大家

  1. postgresql流复制

PostgreSQL支持物理复制(通常又称之为流复制)及逻辑复制两种。通过流复制技术,可以从实例级复制出一个与主库一模一样的实例级的从库,并且支持只读。

(*类似与oracle的ADG功能,但是如果要更多功能可以借助第三方插件如pgpool实现读写分离和负载均衡。)

  1. pgpool-II

一个位于 PostgSQL  服务器和 client 之间的中间件,它可以实现容灾复制,负载均衡和平行查询等高可用的功能,pgpool-II可以使用现有的数据库应用程序做到几乎不修改的使用和部署。(*类似在oracleADG上层再构建一层应用实现查询分流访问等功能)

官方网址:pgpool Wiki

https://img2018.cnblogs.com/blog/155982/201810/155982-20181011172125633-1968954508.png

  1. Postgres-XC/XL/X2

Postgres-XC/XL/X2 是一种提供写可靠性,多主节点数据同步,数据传输基于PostgreSQLSHARED NOTHING的分布式关系型数据库集群。我们拿Postgres-XL来说,一个实例实际上是由多个独立的 PostgreSQL 实例组成,它们分布在不同的物理(或虚拟)主机上协同工作,呈现给用户的是一个数据库实例的效果。

官网更新响应不太及时,最近的更新都是2018

官方网址:http://www.postgres-xl.org/overview/

  1. citus

citus有点类似与前者,不过它是PostgreSQL数据库中的一种轻量级的分库分表解决方案,构建的同样也是分布式集群。citus不是一个单独的程序,它是PostgreSQL数据库中的一个插件,可以使用create extension安装此插件。它允许数据库服务器(称为节点)在“无共享”架构中相互协调。这些节点形成一个集群,允许 PostgreSQL 保存更多数据并使用比单台计算机更多的 CPU 内核。这种架构还允许通过简单地向集群添加更多节点来扩展数据库。

官方网址:https://www.citusdata.com/

  1. bucardo

bucardo有点类似与oracleogg, 是专门针对PG数据库利用复制技术实现主从复制,双向复制,一对多复制,异步容灾等功能的工具。其是基于PG数据库触发器存储有关需同步相关的表中哪些被更改的信息,然后通过Perl守护进程,侦听通知请求并对其进行操作,连接到远程数据库并来回复制数据,是一类逻辑同步软件

另外类似的逻辑复制工具还有:Slony-IRubyrep当然OGG也可以算实现相同功能

官方网址:Bucardo

以上是常见的几种开源集群模式,当然除了上面的还有类似SkyTools TungstenStado等等很多其他实现集群的工具,结合我们PG新产品的特点,如果用户只是需要容灾,用PG的流复制功能就可以实现,如果要实现高用容灾需求建议使用pgpool-II搭建读写分离的负载均衡容灾集群。

  另外几个方案如Postgres-XC/XL/X2citus主要是针对分布式集群部署,对我们不太实用,bucardo基于触发器的同步复制,数据结构的变更对其可靠性和维护量的影响会有大,一般也不建议。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值