首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据不丢失?有它就够了——金仓KingbaseES高可用集群部署

编者按

可用性是数据库的重要指标之一,高可用集群是保障数据不丢失、服务可用的主要措施之一。下面将从部署维度阐晰金仓数据库KingbaseES如何打造高可用集群。

高可用架构基础

实践中,通常让多个数据库服务器协同工作来实现数据库的高可用。例如,当一个服务器节点失效时,另一个服务器去替代工作,以此来达到不中断对望服务或只中断很短的时间;或者是多个数据库同时提供服务(多活),用户可以访问任意一台数据库,当有数据库故障时,访问其他数据库即可。

但与无状态的应用服务HA不一样的是,数据库记录了数据,想要在多台数据库之间切换,需要进行数据同步,所有数据同步是数据库高可用方案的基础。

(一)各种高可用架构简介

从解决数据同步的角度来看,金仓数据库高可用方案目前包含以下几种:

共享存储:更改存储文件格式,使得多台设备可以对文件系统同时挂起,在多个数据库同时操作存储时,解决并发写的问题,同时,在单个数据库写时发生故障例如断电时,解决脏数据的清理。或者,使用类似SAN存储,一台数据库故障时,通过HA等工具把存储挂载到另一台设备。

WAL同步方案:数据库总是日志先行,保证了WAL的多台数据库一致性,就能侧面保证数据库集群数据一致性,通过这个机制,可以搭建主从数据库,当主数据库失效时,把从数据库提升为主库,继续对外提供服务。

基于触发器的同步方案:使用触发器记录数据变化,然后同步到另一台数据库上。

基于语句复制的中间件:应用连接到中间件,不直连数据库,中间件把数据库的变更发送到底层多台数据库上,从而完成数据同步。

(二)服务的可靠性设计

KingbaseES产品主备方式的高可用方案是通过主备之间的WAL同步实现的,数据同步有异步、同步、半同步三种方式。

同步方式的优点在故障切换过程中,数据完全不丢失,但缺点也很明显——影响性能:一个事物的数据必须写到备库中才能返回。当主备数据库的网络中断,或者备机发生故障时:主库会hung住,或者选择主库降级为异步方式;还有一个办法就是主库带两个以上的备库,只要有一个备库是正常的,主备关系就正常不受影响,当然此方式缺点就增加了成本。

如果系统可以容忍故障切换时丢失少量数据,可以使用数据异步同步的方式。该方案在主库故障、备机需要切换时,会丢一定的数据,部署时应综合考虑环境避免主备库数据差异越增越多。

半同步方案介于同步和异步之间,能在确保数据不丢的前提下还保证一定的性能。确保重要的WAL在备库落盘主库的提交就能返回,缺点是没有等待备库的WAL实时回放,在备库可读的情况下备库可能会读不到主库刚刚插入的数据。

在一般环境中,我们推荐半同步方案,WAL罗盘和WAL回放的时间差几乎可以忽略不计,并在备机只作为备份模式下可以确保数据不丢。但在高并发场景或者金融领域的备机可读模式下,部署时就需要斟酌。在此使用场景中,同步模式则更为合适。

要保证服务中断的时间尽量的少,还需要灵敏的故障检测。但故障检测太灵敏时,误操作的概率也会增加,例如网络抖动,所以需要选择一个合适的故障检测时间。故障检测时间通常在秒级别以上,越大型的系统就越需谨慎,否则造成频繁的切换带来意想不到的风险。

(三)数据的可靠性设计

数据库系统中最重要的资源就是数据,如何保证数据不丢失,是数据库系统中需要重点考虑的事情。导致数据丢失的原因有很多,如硬件损坏、软件BUG、人为失误等,所以数据库通常以集群的方式呈现,数据实时备份在其他物理设备的备数据库上。同时,也要定时的做冷备,防止运行的集群或单机数据库整体奔溃。

下面将详细讲述如何部署KingbaseES高可用集群。

部署KingbaseES集群

(一)部署工具

金仓数据库提供可视化的图形界面集群部署工具,通过此工具,用户可以方便、快捷的搭建KingbaseES集群,更直观感受金仓KingbaseES数据库产品的实际应用功能。

在工具中,我们可以对集群进行管理:添加节点、启动/关闭集群、暂停高可用功能、主备切换等,也可以直观的对目前集群状态进行查看。打开数据库部署工具,初始界面如图所示:

1、创建项目

右键集群项目名称,点击创建项目,部署工具以项目为一个概括集群的总单位,推荐有意义的名称,比如湖南医疗机构,就以首字母简写HNYL,这里简单示意我们起名为project1。

2、创建集群

(1)节点通用配置

在建好项目后,我们可以在项目名称处右键,新建集群,弹出节点通用配置,如图所示:

集群名称推荐输入有意义的命名,比如这里为HNYL的5栋2楼机房,则起名为5D2L,这样便于区分同一个项目下的不同集群。这里示例集群名称为cluster1,输入ssh端口,root密码等,点击下一步。

通用机的含义为普通操作系统环境,可以使用ssh标准协议。

(2)DB&HA配置

接下来进入 DB&HAmgr配置,如图所示:

选择好数据库自带的zip包文件,trust_server推荐配置为当前网段的网关,用来辅助判断当前节点是否网络失效。其余基本配置使用默认即可。

选择高级设置,如图所示:

recovery这一栏改为automatic表示故障的节点在设备恢复后可以自动重新加入集群。vip(virtual_ip)可以根据需要添加,这里我们填空。

点击确定,通用配置创建完成。

(3)创建节点

在节点管理处,右键,点击新增节点。

这里就是选择那一台设备用来做我们数据库集群的节点了,并且任何一个集群的第一个节点,一定为主节点。

输入集群第一个节点的名称,ip,license文件后,点击下一步。

a.环境监测

这里会对物理设备的操作系统环境进行一轮筛查,监测是否能稳定正确的运行集群。

点击检查按钮,出现如图所示:

注意,出现标红检查项(ERROR)是无法继续部署集群的,必须由用户或系统管理员将其对应参数改为对应值才可继续部署。这里就为集群的运行将系统错误隐患在前期就排除一遍。

改好后,如图所示:

当检查项只有黑色字体和黄色(警告)字体,我们可以进行点击下一步的操作。

b.预览信息

对部署项的预览图示,无误后点击确定。

c.部署界面

接下来会弹出带有部署安装信息的界面,如图所示:

点击部署,成功后如图所示:

点击关闭后。在节点管理双击,会出现刚才部署好的node1节点,如图所示:

同理,我们可以添加第二、第三、第n个节点

等待备节点部署完成即可

成功后,在节点管理界面就可以看到我们的2个节点node1,node2

最简单的一主一备集群就搭建完了,可以根据创建节点章节,继续部署一主多备的集群。

结语

至此,KingbaseES集群的部署介绍就到这里,下一期,我们介绍如何使用工具管理集群。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200820A0KP8700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券