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

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

 

一、高可用架构基础

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

 

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

 

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

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

  1. 共享存储:更改存储文件格式,使得多台设备可以对文件系统同时挂起,在多个数据库同时操作存储时,解决并发写的问题,同时,在单个数据库写时发生故障例如断电时,解决脏数据的清理。或者,使用类似SAN存储,一台数据库故障时,通过HA等工具把存储挂载到另一台设备。
  2. WAL同步方案:数据库总是日志先行,保证了WAL的多台数据库一致性,就能侧面保证数据库集群数据一致性,通过这个机制,可以搭建主从数据库,当主数据库失效时,把从数据库提升为主库,继续对外提供服务。
  3. 基于触发器的同步方案:使用触发器记录数据变化,然后同步到另一台数据库上。
  4. 基于语句复制的中间件:应用连接到中间件,不直连数据库,中间件把数据库的变更发送到底层多台数据库上,从而完成数据同步。

 

(二)服务的可靠性设计

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

 

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

 

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

 

半同步方案介于同步和异步之间,能在确保数据不丢的前提下还保证一定的性能。确保重要的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集群的部署介绍就到这里,下一期,我们介绍如何使用工具管理集群。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值