【数据库架构】PostgreSQL的最佳群集高可用性方案

这篇具有很好参考价值的文章主要介绍了【数据库架构】PostgreSQL的最佳群集高可用性方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果您的系统依赖PostgreSQL数据库并且您正在寻找HA的集群解决方案,我们希望提前告知您这是一项复杂的任务,但并非不可能实现。

我们将讨论一些解决方案,您可以从中选择对您的容错要求。

PostgreSQL本身不支持任何多主群集解决方案,例如MySQL或Oracle。尽管如此,仍有许多商业和社区产品提供此实现,以及其他产品,例如PostgreSQL的复制或负载平衡。

首先,让我们回顾一些基本概念:

什么是高可用性?

它是服务可用的时间量,通常由企业定义。

冗余是高可用性的基础;万一发生事故,我们可以继续毫无问题地运转。

持续恢复

如果发生事件,则必须还原备份,然后应用wal日志;恢复时间将非常长,我们不会谈论高可用性。

但是,如果我们将备份和日志存档在应急服务器中,则可以在日志到达时应用它们。

如果日志每隔1分钟发送和应用一次,则应急基础将处于连续恢复状态,并且到生产的时间最多为1分钟。

备用数据库

备用数据库的想法是保留生产数据库的副本,该副本始终具有相同的数据,并且可以在发生事件时使用。

有几种方法可以对备用数据库进行分类:

根据复制的性质:

  • 物理备用数据库:复制磁盘块。

  • 逻辑备用数据库:流式传输数据更改。

通过事务的同步性:

  • 异步:可能会丢失数据。

  • 同步:不会丢失数据;主服务器中的提交等待备用服务器的响应。

通过用法:

  • 热备用:它们不支持连接。

  • 热备用:支持只读连接。

【数据库架构】PostgreSQL的最佳群集高可用性方案

集群

群集是一组一起工作的主机,被视为一个主机。

这提供了一种实现水平可伸缩性的方法,并提供了通过添加服务器来处理更多工作的能力。

它可以抵抗节点的故障并继续透明地工作。

根据共享的内容,有两种模型:

【数据库架构】PostgreSQL的最佳群集高可用性方案

  • 共享存储:所有节点都使用相同的信息访问相同的存储。

  • 不共享:每个节点都有自己的存储,取决于我们系统的结构,该存储可能与其他节点具有相同的信息。

现在让我们回顾一下PostgreSQL中的一些集群选项。

分布式复制块设备 (Distributed Replicated Block Device)

DRBD是一个Linux内核模块,可使用网络实现同步块复制。它实际上不实现群集,也不处理故障转移或监视。为此,您需要补充软件,例如Corosync + Pacemaker + DRBD。

【数据库架构】PostgreSQL的最佳群集高可用性方案

例:

  • Corosync:处理主机之间的消息。

  • Pacemaker:启动和停止服务,确保它们仅在一台主机上运行。

  • DRBD:在块设备级别同步数据。

【数据库架构】PostgreSQL的最佳群集高可用性方案

集群控制(ClusterControl)

ClusterControl是用于数据库集群的无代理管理和自动化软件。它可直接从其用户界面帮助部署,监视,管理和扩展数据库服务器/集群。

ClusterControl能够处理维护数据库服务器或群集所需的大多数管理任务。

【数据库架构】PostgreSQL的最佳群集高可用性方案

使用ClusterControl,您可以:

  • 在您选择的技术堆栈上部署独立的,复制的或群集的数据库。

  • 跨多语言数据库和动态基础架构统一自动化故障转移,恢复和日常任务。

  • 您可以创建完整或增量备份并计划它们。

  • 对整个数据库和服务器基础结构进行统一和全面的实时监控。

  • 只需一个操作即可轻松添加或删除节点。

在PostgreSQL上,如果发生事件,可以自动将您的从属提升为主状态。

它是一个非常完整的工具,带有免费的社区版本(还包括免费的企业试用版)。

【数据库架构】PostgreSQL的最佳群集高可用性方案

【数据库架构】PostgreSQL的最佳群集高可用性方案

红宝石 (Rubyrep)

异步,多主机,多平台复制(在Ruby或JRuby中实现)和多DBMS(MySQL或PostgreSQL)的解决方案。

基于触发器,它不支持DDL,用户或授权。

使用和管理的简单性是其主要目标。

一些功能:

  • 配置简单

  • 安装简单

  • 平台独立,表格设计独立。

Pgpool II

它是一种在PostgreSQL服务器和PostgreSQL数据库客户端之间工作的中间件。

一些功能:

  • 连接池

  • 复写

  • 负载均衡

  • 自动故障转移

  • 并行查询

【数据库架构】PostgreSQL的最佳群集高可用性方案

Bucardo

基于行的异步级联主从复制,使用触发器在数据库中排队;基于行的异步主-主复制,基于行,使用触发器和自定义冲突解决方案。

Bucardo需要专用的数据库并作为Perl守护程序运行,该守护程序与此数据库以及复制中涉及的所有其他数据库进行通信。它可以作为多主机或多从机运行。

主从复制涉及到一个或多个目标的一个或多个源。源必须是PostgreSQL,但是目标可以是PostgreSQL,MySQL,Redis,Oracle,MariaDB,SQLite或MongoDB。

一些功能:

  1. 负载均衡

  2. 从站不受限制,可以写

  3. 部分复制

  4. 按需复制(更改可以自动或在需要时推送)

  5. 从站可以“预热”以快速设置

缺点:

  • 无法处理DDL

  • 无法处理大物件

  • 没有唯一键无法增量复制表

  • 不适用于Postgres 8之前的版本

Postgres-XC

Postgres-XC是一个开源项目,旨在提供可写扩展,同步,对称和透明的PostgreSQL集群解决方案。它是紧密耦合的数据库组件的集合,可以将其安装在多个硬件或虚拟机中。

写可伸缩性意味着Postgres-XC可以配置任意数量的数据库服务器,并且与单个数据库服务器相比,可以处理更多的写操作(更新SQL语句)。

您可以有多个客户端连接到的数据库服务器,该服务器提供数据库的单个一致的群集范围视图。

来自任何数据库服务器的任何数据库更新对于在不同主服务器上运行的任何其他事务都是立即可见的。

透明意味着您不必担心内部如何将数据存储在多个数据库服务器中。

您可以配置Postgres-XC在多个服务器上运行。您为每个表选择的数据以分布式方式存储,即分区或复制。发出查询时,Postgres-XC会确定目标数据的存储位置,并向包含目标数据的服务器发出相应的查询。

【数据库架构】PostgreSQL的最佳群集高可用性方案

Citus

Citus用内置的高可用性功能(例如自动分片和复制)替代了PostgreSQL。Citus分片将您的数据库分片,并在整个商品节点集群中复制每个分片的多个副本。如果群集中的任何节点不可用,Citus会将所有写入或查询透明地重定向到其他一个包含受影响的分片副本的节点。

一些功能:

  • 自动逻辑分片

  • 内置复制

  • 用于灾难恢复的数据中心感知复制

  • 具有高级负载平衡功能的中查询容错

您可以增加由PostgreSQL支持的实时应用程序的正常运行时间,并最大程度地减少硬件故障对性能的影响。您可以使用内置的高可用性工具来实现此目标,从而最大程度地减少成本高昂且易于出错的手动干预。

PostgresXL

它是一种无共享的多主群集解决方案,可以透明地在一组节点上分配表,并并行执行这些节点的查询。它具有一个称为全局事务管理器(GTM)的附加组件,用于提供群集的全局一致视图。该项目基于PostgreSQL 9.5版本。一些公司,例如2ndQuadrant,为该产品提供商业支持。

PostgresXL是可水平扩展的开源SQL数据库集群,具有足够的灵活性来处理各种数据库工作负载:

  • OLTP写密集型工作负载

  • 需要MPP并行性的商业智能

  • 运营数据存储

  • 键值存储

  • GIS地理空间

  • 混合工作负载环境

  • 多租户提供商托管环境

组件:

  • 全局事务监视器(GTM):全局事务监视器确保群集范围内的事务一致性。

  • 协调器:协调器管理用户会话并与GTM和数据节点进行交互。

  • 数据节点:数据节点是存储实际数据的位置。

结论

还有许多其他产品可以为PostgreSQL创建我们的高可用性环境,但是您必须注意以下几点:

  • 新产品,未经充分测试

  • 停产项目

  • 局限性

  • 许可费用

  • 非常复杂的实现

  • 不安全的解决方案

您还必须考虑您的基础架构。如果只有一台应用程序服务器,那么无论您配置了多少数据库的高可用性,如果应用程序服务器发生故障,则将无法访问。您必须很好地分析基础架构中的单点故障,并尝试解决它们。

考虑到这些要点,您可以找到一种适合您的需求和要求的解决方案,而不会产生麻烦,并且能够实施您的高可用性群集解决方案。来吧,祝你好运!

本文 :https://architect.pub/top-pg-clustering-high-availability-ha-solutions-postgresql
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

QQ群

【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。
视频号 【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。
知识星球 【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

【数据库架构】PostgreSQL的最佳群集高可用性方案

喜马拉雅 【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】
知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】
领英 Harry https://www.linkedin.com/in/architect-harry/
领英群组 领英架构群组
https://www.linkedin.com/groups/14209750/
微博‍‍ 【超级架构师】 智能时刻‍
哔哩哔哩 【超级架构师】

【数据库架构】PostgreSQL的最佳群集高可用性方案

抖音 【cea_cio】超级架构师

【数据库架构】PostgreSQL的最佳群集高可用性方案

快手 【cea_cio_cto】超级架构师

【数据库架构】PostgreSQL的最佳群集高可用性方案

小红书 【cea_csa_cto】超级架构师

【数据库架构】PostgreSQL的最佳群集高可用性方案

网站 CIO(首席信息官) https://cio.ceo
网站 CIO,CTO和CDO https://cioctocdo.com
网站 架构师实战分享 https://architect.pub   
网站 程序员云开发分享 https://pgmr.cloud
网站 首席架构师社区 https://jiagoushi.pro
网站 应用开发和开发平台 https://apaas.dev
网站 开发信息网 https://xinxi.dev
网站 超级架构师 https://jiagou.dev
网站 企业技术培训 https://peixun.dev
网站 程序员宝典 https://pgmr.pub    
网站 开发者闲谈 https://blog.developer.chat
网站 CPO宝典 https://cpo.work
网站 首席安全官 https://cso.pub    ‍
网站 CIO酷 https://cio.cool
网站 CDO信息 https://cdo.fyi
网站 CXO信息 https://cxo.pub

谢谢大家关注,转发,点赞和点在看。文章来源地址https://www.toymoban.com/news/detail-429929.html

到了这里,关于【数据库架构】PostgreSQL的最佳群集高可用性方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 个人主页 :我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. postgresql 数据库服务运行时,数据在磁盘上是如何存储的呢?这就涉及到了存储架构。 在文件系统中,我们可以看到以目录和文

    2024年02月14日
    浏览(39)
  • 【PostgreSQL 数据库技术峰会(成都站)】云原生虚拟数仓 PieCloudDB Database 的架构和关键模块实现...

    2023年6月17日,中国开源软件推进联盟 PostgreSQL 分会在成都举办了数据库技术峰会。此次峰会以“新机遇、新态势、新发展”为主题,结合当下信创热潮、人工智能等产业变革背景,探讨 PostgreSQL 数据库在这些新机遇下的发展前景。峰会邀请众多行业大咖、学术精英、技术专家

    2024年02月11日
    浏览(49)
  • 在 Amazon 上以高可用性模式实现 Microsoft SQL 数据库服务现代化的注意事项

    许多企业都有需要 Microsoft SQL Server 来运行关系数据库工作负载的应用程序:一些应用程序可能是专有软件,供应商可使用它强制 Microsoft SQL Server 运行数据库服务;其他应用程序可能是长期存在的、自主开发的应用程序,它们在最初开发时便已包含 Microsoft SQL Server。当企业将

    2024年02月16日
    浏览(39)
  • 云计算:从基础架构原理到最佳实践之:云计算容错与高可用性

    作者:禅与计算机程序设计艺术 “云”这个词汇已经成为互联网行业的热门话题了。虽然“云”目前并不等同于真正意义上的云计算技术,但确实给人们带来了更多方便、快捷、便利的服务。云计算通过利用大量分布式计算资源实现各种业务的快速部署和自动化,极大的提升

    2024年02月05日
    浏览(53)
  • 基于无域故障转移群集 配置高可用SQLServer数据库Windows Server

    基础环境级上次实验结束后环境:上次实验 基础环境的准备: 故障转移群集IP:10.0.34.172 去除负载均衡群集 1、在DC上面再新加两块虚拟磁盘 具体步骤参考上篇文章:点击转到 使达成的效果如下图 2、安装ISCSI服务 从后面以后如果有些步骤我没有显示图片的,那就是默认下一

    2024年02月04日
    浏览(52)
  • postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用

    MySQL数据库和postgresql数据库之间的差异并不多,这里的差异指的是对SQL语言的支持两者并不大,但底层的东西差异是非常多的,例如,MySQL的innodb引擎概念,数据库用户管理,这些和postgresql相比是完全不同的(MySQL用户就是用户,没有角色,postgresql有用户,有角色,但差异不

    2024年02月14日
    浏览(85)
  • postgresql数据库定时备份到远程数据库

    1.老规矩,服务器目录结构: conf目录无内容 profile: 其中: 最后一行 export PGPASSWORD=‘root’ 是需要备份的数据库的密码,因为直接用 pg_dump 命令备份需要输入密码交互,而我们需要达到自动备份,所以借助这种方式不需要输入密码 docker-compose.yml: 启动容器: 然后再data目录下面

    2024年02月09日
    浏览(48)
  • 【数据库】什么是 PostgreSQL?开源数据库系统

    PostgreSQL 是一个开源的对象关系数据库系统,本文,我们将讨论 PostgreSQL、它的用途和好处。 PostgreSQL 是由 PostgreSQL Global Development Group 开发的高级 开源关系数据库管理系统(RDBMS) 。它作为 POSTGRES 项目的一部分于 1986 年在加州大学伯克利分校启动,它最初于 1996 年 7 月 8 日发布

    2023年04月08日
    浏览(48)
  • PostgreSQL Linux操作PostgreSQL数据库

    PostgreSQL教程 菜鸟教程:https://www.runoob.com/postgresql/postgresql-tutorial.html 登录PG数据库:psql -U 用户名(U需要大写) 登录PG数据库(指定主机、端口,并进入指定数据库): psql -U 用户名 -h 127.0.0.1 -p 5432 -d 数据库名 -U 登录的用户名 -h 连接的主机(默认127.0.0.1,可替换成远程主机

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包