暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Kingbase 数据守护集群初体验

数据最前线 2024-10-05
543

数据库高可用是指在系统遇到故障或异常情况时,能够自动快速地恢复并保持服务可用性的能力。常见的高可用架构有主备架构和多活架构,两种架构各有其优缺点和适用场景,这里就不再赘述。总体来说,多活架构的实现难度比主备架构大,Oracle RAC 就是典型的多活架构,也是其称霸关系型数据库领域的拿手武器。除Oracle之外,其他的数据库大部分采用主备架构,这种架构中只有一个实例是主库,其他实例都是备库,主库发送日志给备库,备库通过回放日志和主库保持同步,一旦主库发生故障,可以选择其中一个备库提升为主库,接管业务。

高可用是成熟的数据库需要具备的一项基本能力,也是我们选择数据库时需要考量的一个重要维度,今天我们就体验一下金仓数据库高可用能力。

金仓数据库高可用能力

金仓数据库提供了以下几个层面的高可用能力,具体包括:

  • 金仓数据守护集群软件(简称:Kingbase Data Watch)是由主库、备库和守护进程组成的集群,主库提供数据库读写服务,备库和主库通过流复制同步数据作为备份,守护进程检查各个数据库状态以及环境状态,当主库故障后可以进行故障转移将备库提升为主库继续对外提供服务,确保主备集群持续提供服务。

    守护集群的主要功能包括:流复制数据同步、数据库状态监控、VIP管理、故障自动转移和自动恢复等。

  • 金仓读写分离集群软件(简称:Kingbase RWC)在金仓数据守护集群软件的基础上增加了对应用透明的读写负载均衡能力。相比数据守护集群,该类集群中所有备库均可对外提供查询能力,从而减轻了主库的读负载压力,可实现更高的事务吞吐率;该软件支持在多个备库间进行读负载均衡。

    读写分离集群通过配置JDBC来实现。在数据库异步模式下,备库事务会有一定延迟性,可能会插入一个历史值,数据库不做保证,因此不建议在异步模式中使用一个事务内既有读又有写语句。

  • 金仓RAC共享存储集群 (简称:Kingbase RAC)用于构建采用共享存储架构的对等多写数据库集群,通过缓存交换技术保持各个节点的一致性,具有对应用透明、高可用、可扩展等特点。

本篇文章我们重点讨论数据守护集群软件的相关内容,共享存储集群后续再聊。

金仓数据库集群管理

金仓数据守护集群包括以下的组件:

  • repmgr 是一个开源工具套件,用于管理PostgreSQL服务器集群中的复制和故障转移,它增强了PostgreSQL内置的热备功能,提供设置备用服务器、监控复制和执行管理任务(如故障转移或手动切换操作)的工具。

    repmgr 组件主要包括 repmgr 和 repmgrd 两个工具。其中 repmgr 是一个命令行工具,用于执行如显示集群状态、将备库提升为主库以及主备切换等管理任务;repmgrd 是一个守护进程,提供监视和记录复制性能,通过检测主库故障并提升合适的备库进行故障转移等功能。每个数据库节点有一个 repmgrd 守护进程,主节点 repmgrd 仅监视本地数据库,备节点 repmgrd 会同时监控本地数据库和主数据库。

  • kbha 是金仓数据守护集群的复制管理守护进程,kbha 启动 repmgrd,并且执行 KingbaseES 的自动恢复。

  • sys_securecmdd 和 sys_securecmd 是一组集群中自带的工具,其中 sys_securecmd 是客户端,用于连接服务端;sys_securecmdd 是服务端,用于接收客户端的连接,集群监控和管理集群时通过 sys_securecmdd 工具安全执行命令。

和数据库安装类似,官方提供了图形界面和命令行两种方式安装和配置集群。

图形界面具有创建集群、节点通用配置、集群节点管理(添加删除节点、节点环境检测)、配置db&repmgr等功能。图形界面封装了对 sys_securecmdd 和 repmgr 等命令行工具的配置和使用,即使是新手也可以通过图形界面快速部署出数据守护集群。值得一提的是,节点环境检测能够自动检测数据库节点的OS配置是否满足数据库的安装配置要求,并且能够一键修改系统参数和关闭防火墙,对于新手来说还是非常友好的。

集群安装配置完成后,deploy 工具中能够显示集群运行状态信息。此外工具还提供了集群主备切换、日志查询和集群监控功能,配置了监控管理后,还可以在工具直接看到数据库的运行状态。

上述状态下可以通过 deploy 工具进行集群主备一键切换,非常的方便。

故障场景测试

这里通过杀掉数据库核心进程模拟实例异常,对集群恢复时间进行测试验证。

[kingbase@tidb03 ~]$ ps -ef|grep kingbase
root      2064     1  0 05:24 ?        00:00:00 sys_securecmdd: /home/kingbase/cluster/securecmdd/bin/sys_securecmdd -f /etc/.kes/securecmdd_config [listener] 0 of 128-256 startups
......
kingbase  7631     1  0 05:28 ?        00:00:00 /home/kingbase/cluster/KESV8/v8test/kingbase/bin/../share/postgres_exporter
kingbase 21823     1  0 07:32 ?        00:00:01 /home/kingbase/cluster/KESV8/v8test/kingbase/bin/kingbase -D /home/kingbase/cluster/KESV8/v8test/kingbase/data
kingbase 21824 21823  0 07:32 ?        00:00:00 kingbase: logger
......
kingbase 23083 21823  0 07:42 ?        00:00:00 kingbase: autovacuum launcher
kingbase 23084 21823  0 07:42 ?        00:00:00 kingbase: archiver   last was 000000020000000000000007.partial
......
kingbase 23128 21823  0 07:42 ?        00:00:01 kingbase: esrep esrep 192.168.56.125(48478) idle

[kingbase@tidb03 ~]$
 kill -9 21823

在手工杀掉了主节点的数据库主进程之后,很快集群就软件就探测到状态异常。

大约40秒后集群选出了新的主节点,继续对外提供;对于故障节点,可以在图形界面中选择“恢复至集群”,系统会自动将故障节点以Standby角色加入到集群中,并重新建立起和新主节点的复制关系。

其他场景,如服务器异常和网络异常等,集群恢复过程大体相同。由于故障检测和重试机制有所不同,不同场景下的集群总体恢复时间有些差异。比如主机重启,大概需要100秒左右的时间才能选出新的主节点,对于业务系统的影响时间相对比较长。

写在最后

总体来说,金仓数据守护集群能够满足大多数企业非核心对于数据库高可用能力的需求,在实例异常崩溃、服务器故障以及网络异常等故障发生后,系统能够自动选出新的主节点,继续对外提供服务,将故障对业务系统的影响降低到最小。

提供较为完善的外围管理工具,是国产数据库的一大特色。从开源继承下来的内核做更大的创新,开发相对难度较高,但是开源软件普遍没有好用的白屏管理工具,国产数据库厂商很好的弥补了这一点。不论是系统的安装部署,还是异构环境下的数据迁移,以及数据库集群管理,金仓都提供了完善的图形化管理工具,这些工具能够简化系统部署配置流程,有利于用户快速建立起相关产品的框架和概念,大大减少学习和维护成本,对于推广国产数据库产品是非常有利的。


文章转载自数据最前线,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论