PostgreSQL数据库开源管理平台CLup详解
开源PG管理平台CLup分享演讲人:唐成目录CONTENTS个人介绍开源好用的CLup为什么需要CLup3分钟快速体验▶个人介绍《PostgreSQL修炼之道:从小工到专家》的作者,PostgreSQL中国社区常委,开源连接池软件ZQPool作者。资深数据库架构师,从业20多年,拥有20年数据库、操作系统、存储领域的工作经验。精通c/c++、golang和python,擅长使用C语言做数据库内核开发以及使用golang编写高性能数据库中间件。目录CONTENTS个人介绍开源好用的CLup为什么需要CLup3分钟快速体验▶关于CLupCLup是由中启乘数科技自主研发和开源的PostgreSQL/PolarDB管理平台,用户可以在CLup中轻松管理、维护PostgreSQL/PolarDB数据库高可用集群、管理VIP资源和ZQPool数据库连接池。核心功能数据库维护高可用集群管理CLup提供完整的数据库高可用集群解决方案,一键创建并管理PostgreSQL/PolarDB高可用集群,并实现故障自动切换、VIP池灵活调度以及ZQPool连接池高效管理,确保数据库服务的持续稳定与高效运作。CLup整合了强大的数据库创建与管理能力,能够操控PostgreSQL/PolarDB数据库如启停,查看会话活动及锁的状态,实现对数据库资源的精细控制与高效运维。设计理念专注造就专业,CLup专注于PostgreSQL及其相关衍生数据库的运维管理,深挖PG生态内核,追求卓越的专业水准。乘数科技坚持深耕PG领域,打造既有深度又易于使用的CLup数据库管理平台,助力用户实现高效的数据库运维与管控。设计理念防止hang的秘技:探测数据库是否正常的过程是通过启动新的子进程,然后要求子进程在指定的超时时间内返回,如果在指定的时间内没有返回,则认为出现问题,然后把子进程给kill掉。在故障时,会让探测脚本hang住,原因有很多,首先是TCP协议不是消息的方式,而是流的方式。接收一个消息时,需要事先知道消息的长度,然后一直接收到指定长度的消息,如果没有接收到指定长度的消息,则会一直等待,这时就可能hang了拥抱开源CLup一经开源,便受到了广泛的关注。开源地址:https://gitee.com/csudata/cluphttps://gitee.com/csudata/clup-agent拥抱开源Star:135Fork: 13恳请大家加星 目录CONTENTS个人介绍开源好用的CLupCLup解决了什么问题3分钟快速体验▶传统CLupCLup解决什么问题?可靠性低配置复杂切换复杂需要自定义脚本无集中管理功能集群可靠性高配置简单切换简单无需自定义脚本有集中管理功能使用CLup可以轻松管理几十套至上几百套PostgreSQL高可用的数据库集群,在界面上点点鼠标即可完成日常的数据库管理工作,操作简单直观不易出错。发生故障时可以自动切换,无需人工干预,同时也支持手动一键切换。通过界面实时掌握数据库情况,出现问题及时处理,保障业务的平稳运行。高可用容灾切换特性CLup作为第三方观察者,不影响数据库状态CLup独立于数据库系统运行,与Patroni不同的是,即使CLup发生故障也不会干扰数据库的正常运作,仅影响高可用性切换功能的执行。跨机房的容灾切换,支持多VIP配置当数据库高可用集群的节点部署在多个机房时,CLup支持为每一个机房设置不同的VIP配置,进行跨机房的容灾切换时,CLup可以为不同的机房设置提前配置好的不同VIP。容灾的优先级切换策略CLup支持为每一个数据库节点设置优先级,进行容灾切换时,会切换到优先级最高的节点,如果优先级相同,则选择日志同步最近的备库进行切换。智能检测和应用最新的WAL日志CLup会按优先级顺序进行容灾切换,但在很多情况下,优先级最高的节点不一定是应用的数据库日志最近的节点,为了尽可能保证数据的完整性,CLup会检查所有备库的WAL日志应用情况,把最新的WAL日志从其他的备库拷贝到新的主库节点并应用。高可用Q&AQ: CLup自身是否具备高可用的功能?A:CLup支持部署3个CLup节点组成一个高可用集群,当某一个CLup节点出现问题时,不影响CLup服务的正常运行。01Q:一主一备模式是否支持同步复制,旧的主库如何failback?A:一主一备支持设置为同步流复制模式,旧的主库以备库角色加回集群时,CLup首先会把它降级为异步流复制,然后对他持续检查,当新的备库日志追上主库后,再恢复成同步流复制模式。02Q:一主多备的同步复制情况下,当所有的备库都不可用时,主库是否会hang住?A:当CLup发现所有的备库都不可用时,为了保证主库可以正常对外提供服务,CLup会对主库进行降级,将同步流复制调整为异步流复制模式,主库不会hang住。03方案对比对比维度RepmgrPatroni+etcd软件性质开源软件开源软件支持情况开源社区支持开源社区支持PostgreSQL版本的适用限制PostgreSQL9.3及以上版本PostgreSQL 9.4以上操作系统不支持windows,需要自己适配国产操作系统,支持CentOS、Rhel、Debian,不支持windows,需要自己适配国产操作系统,支持CentOS、Rhel、Debian,容灾管理无,切换后,需手工调整无,切换后,需手工调整级联流复制的管理功能无弱WEB管理不支持有限支持,二次开发多套集中管理不支持不支持是否有VIP 无,需自己写脚本无,需自己写脚本CLup开源软件开源社区支持PostgreSQL9.5以上不支持windows,支持CentOS、Rhel、Debian以及国产操作系统UOS、银河麒麟有,切换后无需任何手工工作强,任意级联关系,管理简单支持支持是,自动方案对比对比维度RepmgrPatroni+etcd切换方式自动/手动自动/手动切换可靠性中等 , Repmgr整个程序是部署在数据库主机上 , 如果主机出现问题 , Repmgr探测进程可能会不可用中等 , etcd是golang编写的,而patroni是python写的,etcd的python客户端有一些问题,在特殊的网络与etcd的配合不是太好复杂切换逻辑的支持弱,需要自己写脚本无FailBack(原主库重新加回集群)手工,需要写脚本,操作有一定的风险过于自动,有一定的风险配置复杂度中等1 安装Repmgr包2 配置Repmgr参数文件复杂在参数文件中配置集群的名称监控地址、集群切换的时间点、PostgreSQL数据库的信息等十几个配置参数即可启动。参数文件为平面文件,使用与Python相同的缩进格式。备机可用性备机只读备机只读备机提供只读服务弱,高可用切换后需要自行处理只读服务弱,高可用切换后需要自行处理只读服务切换时间1~3分钟30秒故障环境是否可自动恢复机可靠性否是,但有风险。默认可自动进行修复,可实现基于主节点自动恢复,即使备机数据文件全部删除,也可自动恢复,不需要人为干预。ssh通道安全需要打通主备库机器之间的ssh免密登陆,有一定安全风险无需要打通主备库机器之间的ssh免密登陆CLup自动/手动高 , 通过连接主库去更新心跳表是否成功来判断数据库是否可用强一键加回,
PostgreSQL数据库开源管理平台CLup详解,点击即可下载。报告格式为PDF,大小7.41M,页数20页,欢迎下载。