暂无图片
(HA)哪些架构实现PG的高可用?
我来答
分享
小鲁菜
暂无图片
2024-06-13
(HA)哪些架构实现PG的高可用?
暂无图片 10M

(HA)下列的哪些架构实现PG的高可用?

A.patroni+zookeeper(etcd)+postgresql+vip

B.repmgr+postgresql+vip

C.pacemaker+corosync+postgresql+vip

D.stolon+etcd+postgresql+vip

解释下解答

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
龙镇君

以下是对提供的选项A、B、C、D是否实现PostgreSQL(PG)高可用的解释:

A. patroni+zookeeper(etcd)+postgresql+vip

  • patroni:Patroni是Cybertec公司开发的,用于使用流复制来创建、管理、维护和监视高可用性PostgreSQL集群设置的工具。它允许数据库管理员配置和管理PostgreSQL集群,并确保在发生故障时集群能够继续提供服务。
  • zookeeper/etcd:这两个都是分布式协调服务,用于管理集群的元数据和提供分布式锁等功能。Patroni可以与之结合使用,以实现集群的自动故障转移和配置管理。
  • postgresql:这是核心数据库服务。
  • vip:虚拟IP地址,用于在多个PostgreSQL实例之间提供统一的访问点。

结论:A选项通过Patroni结合zookeeper或etcd和虚拟IP,确实可以实现PostgreSQL的高可用性。

B. repmgr+postgresql+vip

  • repmgr:repmgr是一个用于PostgreSQL的扩展和工具集,它提供了故障转移、复制管理、节点添加/删除等高级功能。
  • postgresql:核心数据库服务。
  • vip:虚拟IP地址,提供统一的访问点。

结论:B选项使用repmgr结合PostgreSQL和虚拟IP,同样可以实现PostgreSQL的高可用性。

C. pacemaker+corosync+postgresql+vip

  • pacemaker:是一个开源集群资源管理器,它使用集群基础架构(如Corosync)提供的消息和集群成员管理功能,实现节点和资源级别的故障检测和资源恢复。
  • corosync:提供集群成员管理、消息传递和配置服务。
  • postgresql:核心数据库服务。
  • vip:虚拟IP地址。

结论:C选项通过Pacemaker和Corosync结合PostgreSQL和虚拟IP,也可以实现PostgreSQL的高可用性。

D. stolon+etcd+postgresql+vip

  • stolon:是一个PostgreSQL的高可用性解决方案,它提供了主从复制、故障转移、自动恢复等功能。
  • etcd:分布式协调服务,用于管理集群的元数据和提供分布式锁等功能。
  • postgresql:核心数据库服务。
  • vip:虚拟IP地址。

结论:D选项使用stolon结合etcd、PostgreSQL和虚拟IP,也可以实现PostgreSQL的高可用性。

归纳

  • A、B、C、D选项均提供了不同的PostgreSQL高可用架构实现。
  • 这些架构通过不同的工具和技术组合,实现了数据库服务的故障转移、数据同步和持续可用性。
  • 在选择适合的高可用架构时,需要考虑到具体的业务需求、系统环境、资源限制等因素。
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
伟鹏

在实现PostgreSQL的高可用性方案中,Patroni、Pgpool-II和REPMGR+Pgpool-II等是几种常见和广泛使用的方法。这些方法通过不同的技术和配置来实现数据库的高可用性、负载均衡和故障转移。下面将解构每种技术的核心特点和实现方式,以提供全面的参考信息。

  1. Patroni

    • 基本介绍:Patroni是一个独立的Python应用程序,用于管理PostgreSQL集群。它提供了基于etcd的leader选举、故障检测、自动故障转移和集群管理功能。
    • 高可用性和故障转移:Patroni通过监控PostgreSQL集群的状态并在主数据库失败时自动提升一个备用数据库成为新的主数据库来保证服务的连续性。
    • 优点:易于设置和使用,无需修改现有的PostgreSQL设置;提供了丰富的特性,如动态配置加载和备份接口。
    • 适用场景:适合那些寻求轻量级且易于管理,同时需要强大灵活性和可扩展性的HA解决方案的用户。
  2. Pgpool-II

    • 基本介绍:Pgpool-II是一个并行连接池,提供PostgreSQL的流复制兼容性。它支持负载均衡和故障转移。
    • 负载均衡和复制:Pgpool-II可以平衡读取请求到多个PostgreSQL服务器,并提供异步复制功能,确保数据冗余和高可用性。
    • 优点:支持自动故障转移和自动恢复,以及在服务器间分配读查询的能力,优化查询性能。
    • 适用场景:适合于需要提高读取操作的吞吐量和可靠性的场景,特别是在具有大量读操作的应用中效果显著。
  3. REPMGR+Pgpool-II

    • 基本介绍:REPMGR是一个易于使用的PostgreSQL的复制和故障转移工具,结合Pgpool-II可以实现更复杂的集群管理功能。
    • 高可用性与读写分离:REPMGR负责数据的复制和故障转移,而Pgpool-II则负责读写分离和负载均衡,两者结合可以构建强大的数据库集群。
    • 优点:提供了一种相对简单的方式来实现PostgreSQL集群的高可用性、故障转移及读取优化。
    • 适用场景:适合需要高级别数据复制、自动故障转移和高效读取操作优化的业务场景。

这些技术各有所长,选择哪种取决于具体的业务需求、现有基础设施以及维护能力。无论选择哪种技术,都需要深入了解其工作机制和配置选项,以确保能够有效利用其优势并满足业务连续性的需求。

暂无图片 评论
暂无图片 有用 0
打赏 0
小鲁菜
暂无图片
升级问题到: 潜在风险
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
PostgresSQL数据库服务端不支持哪两个汉字字符集? A EUC_CN B UTF8 C GB18030 D GBK
回答 1
CD支持简体中文有四种编码:EUCCN(ExtendedUNIXCodeCN)、GB18030、GBK和UTF8。但GB18030和GBK只能作为客户端编码,不能设置为服务端编码;由于Windows上
PostgreSQL starts_with() 函数如何使用?
回答 3
已采纳
PostgreSQLstartswith()函数PostgreSQL startswith() 函数检查一个字符串是否以一个指定的前缀开头。startswith() 语法
请问有什么办法 能及时记录pg表结构的变动
回答 3
如果使用的是PostgreSQL9.3之前的版本的话,可以尝试使用logstatement配置选项来记录所有的DDL语句。该选项可以记录所有的DDL语句,包括创建、修改和删除表、索引、视图、函数等对象
PostgreSQL cume_dist() 函数如何使用?
回答 6
已采纳
PostgreSQLcumedist()函数PostgreSQL cumedist() 函数返回当前行的累积分布,即从第一行到与当前行值相同的最后一行的行数在分区内的总行数中的占比
PostgreSQL first_value() 函数用法?
回答 2
已采纳
PostgreSQL firstvalue() 函数从当前行关联的窗口框架的第一行中返回评估的值。firstvalue() 语法这里是PostgreSQL fi
pg备份视图
回答 8
好像没有,可以备份时候输出日志,备份有没有成功,从备份日志去看啊。
pg_ctl
回答 1
ABCD
pg中如何查看语句中的绑定变量的值
回答 1
已采纳
打开数据库参数logstatements,然后从数据库日志可以看到。
pg_hba.conf为数据库参数配置文件,里面主要记录数据库参数信息是否正确
回答 2
已采纳
错误
pg和mysql之中该如何选择?
回答 7
已采纳
https://blog.csdn.net/youzhouliu/article/details/124994728这里面有详细介绍