clup-community/README.md
csudata 91a510c5ff
update README.md.
Signed-off-by: csudata <open@csudata.com>
2023-08-30 10:54:20 +00:00

67 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1.1为什么要使用CLup
乘数Cluster for PostgreSQL软件是为PostgreSQL数据库实现了私有云RDS的软件简称为CLup。
企业在开始使用PostgreSQL数据库时总是遇到这些问题
* 怎么实现PostgreSQL数据库的高可用方案当数据库出现问题时能自动切换不需要DBA半夜爬起来处理。
* 如何对PostgreSQL数据库进行监控告警。
* 如何对PostgreSQL进行备份保证数据的安全性。
* 如何快速搭建一套数据库系统起来。
* 如何快速搭建现有数据库的备库。
* 如何快速修改主备库直接级连关系。
* 如何实现容灾,当整个机房的网络断了,如何快速恢复业务。
CLup就是为解决这些问题而产生的产品。
CLup最大的特色功能是高可用。目前已存在几个开源的高可可用软件如haproxy、pacemaker+corosync、repmgr、patroni、Heartbeat、keepalived、pgpool-II等等。其中haproxy通常是用于http等web应用较少使用于数据库领域pacemaker+corosync、Heartbeat这两个软件是通用型高可用软件并不是专为PostgreSQL设计安装时需要安装很多依赖包有很多的一些配置比较复杂如果不是非常精通的人员搭建出来的高可用集群经常容易出现误切换等问题keepalived是一个较简单的高可用软件其最早是于用LVS负载均衡软件现在也常常用于ngnix的高可用也可以用于数据库领域但需要自己定制切换脚本才能完成数据库的高可用功能另keepalived基于VRRP协议实现的其本质存在的脑裂的问题pgpool-II是PostgreSQL数据库领域比较常见的高可用软件其最早是做为连接池来使用的pgpool-II除了高可用功能外设计了一些更复杂的使用模式对于初学者来说如果没有深入的学习pgpool-II根本搞不清楚复制模式、主备模式、并行查询模式的区别。实际上pgpool-II这么多的模式真正在企业中可以使用的模式基本只有“流复制+Standby的主/备模式”其它模式都有各种各样的缺点实用性不强。但由于这些绝大多数使用不上的功能导致pgpool-II的配置很复杂稍有不慎就容易发生因为配置不合理而导致的重大事故。
repmgr是一个套针对于PostgreSQL数据库的高可用方案相对其他的高可用方案来说相对比较简单。不足之处在于没有对VIP的管理如果要实现VIP的管理需要自己写脚本来实现。
patroni是另一个套针对于PostgreSQL数据库的高可用方案相对repmgr来说复杂一些。不足之处与repmgr类似没有实现对VIP的管理如果要实现VIP的管理需要自己写脚本来实现。
乘数科技的PostgreSQL数据库专家们在使用了各种高可用软件和方案之后发现目前市面上的高可用软件发现多少要使用到生产系统中基本都实要自己定制一些脚本才能实现完整的高可用功能同时这些软件在配置上都有很多的复杂性如果没有深入的学习容易出现错误的配置从而导致故障。 所以中启乘数科技为PostgreSQL数据库量身定制一套最符合PostgreSQL用户的高可用及监控管理的软件让企业可以快速搭建一套高可靠、高可用、高性能的数据库同时满足易管理维护、集中管理的一套数据库解决方案。
CLup中除了有高可用的功能还有监控告警、一键加备库、Top SQL、数据库备份、容灾管理等功能CLup是目前PostgreSQL数据库领域中功能完善的数据库管理管理平台。
## 1.2 CLup发展历程
CLup软件从2017年就开始研发第一个正式版本发布于2017年11月20日。版本发展的历程如下
* CLup1.0:实现了高可用、读写分离的功能,命令行管理模式。
* CLup2.0: 增加了WEB统一管理界面大大提升了易用性。
* CLup3.0: 增加了共享存储类型的高可用模式;增加了一键搭建备库的功能,增加了数据库容灾管理的功能;
* CLup4.0: 增加了数据库备份的功能全面支持了国产鲲鹏平台和各种国产OS如UOS、银河麒麟。支持了多种的基于PostgreSQL的国产数据库。
## 1.3 CLup的亮点功能
亮点功能如下:
* 基于流复制的高可用集群中,当主库出现故障时,备库被激活后,原先的主库需要转换成目前新主库的备库,这个过程很复杂,我们的程序可以把各种情况下做成自动化,整个恢复过程都可以是一键完成。
* 可以支持容灾的高可用方案,如一主两个本地备库+一个远程容灾库,本地主库出现问题时优先切换本地备库,本地出现严重问题后,可以一键切换容灾库。
* 对于主库可以update做心跳检测对备库可以配置一个只读查询做心跳检测保证检测的准确性。
* 为防止主库负载过大造成update返回超时设计上采用多次探测每次。超时时间递增
* 探测方有自身检测:探测前应通过第三方网关确认自身网络状态正常。
* 对于共享存储的集群,通过特别的处理机制解决了脑裂问题。
* 一键搭建备库的功能
* 可以管理各种复杂的级联关系的流复制集群如主库A后面有一个备库B而B后面又有两个备库等等任意复杂的流复制集群。这个功能对于容灾特别管用。同时通过鼠标点一点就可以改变级连关系如主库是AA后面挂了一个B备库B备库再挂一个C备库即为A->B->C的级连关系可以一键改成A->C->B。
* 可以对现有管理的PostgreSQL数据库做统一备份和管理可以一键恢复数据库并可以通过WAL日志恢复到任意时间点。
* 可以手工一键切换如有时想对某台机器做停机维护为了不影响业务可以进行手工高可用切换。手工切换类似Oracle数据库中的switchover可以任意可逆切换。一键切换的界面如下
* 在同一套CLup中可以同时对很多套PostgreSQL高可用集群进行统一集成中管理
在监控的功能中,监控了一些最有价值的指标,而不是像有些监控工具中,监控了很多指标,但大多数都是没有啥用处的功能。 特色功能是我们有TopSQL的监控。
另外CLup是一套非常容易部署对环境要求很低的高可用集群管理软件如可以在2GB内存的机器上部署和使用对机器的CPU没有要求。之所以可以做到这种程度原因是此软件完全是由我们自己研发的并不是基于一些开源软件上做的二次封装。有一些友商的管理平台是在第三方开源高可用软件上封装的如ZooKeeper、etcd、repmgr或patroni上做的封装导致对环境要求高系统资源占用大等问题。
## 1.4 社区版规划文档
[src/社区版本规划.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E7%A4%BE%E5%8C%BA%E7%89%88%E6%9C%AC%E8%A7%84%E5%88%92.md)
## 1.5 快速部署文档
[src/快速部署.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2.md)
## 1.6 使用教程
[src/使用教程.md · 中启开源/clup社区](https://gitee.com/csudata/clup-community/blob/master/src/%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.md)