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

【技术前沿】linux下的数据库高可用性解决方案与应用实践

信息化技术高速发展,信息化安全保障越来越重要,尤其是数据安全问题成了重中之重,因为数据对于很多的企业是非常重要的,在系统实践过程中,数据库为了更好保证数据的安全性、稳定性、数据完整性的运行,我们提供了一种高可用的数据库设计方案,数据库会采取双主机热备方式保证在一个数据库出问题的时候,自动连接上另外一个数据库。实现无缝切换数据库。同时对数据库进行的每天两次定时的备份。最大限度的保证的企业数据的安全。

01

背景

以前系统在设计时候,数据库一般就一台,这种设计本身是没有问题,一台服务能够更好的保证数据的一致性,但是随着数据量和业务的不断的增加,数据库的压力越来越大,很难保证数据库不出问题,只要这个数据库出了故障(数据库宕机、数据库服务器脱机等),整个系统就无法运行,为了更好的解决这个问题,我们将数据库设计成两台,采用双主热备的方式,当其中的一台数据库故障,另外一台机器自动接管,保证系统前台正常的使用。

近期邯钢自动化部信息技术中心承接了邯钢集团恒生资源仓储系统的项目建设,由于业务是24小时不间断运行,因此必须保证系统和数据的稳定性,为了保证系统数据的安全、稳定,我们特意准备了两台数据库服务器,进行主备数据实时的备份,并且对数据库每天进行两个的定时备份,数据库文件保留10天的备份记录。

02

技术选型

目前数据库的高可用设计市面上存在多种方案有双机高可用方案、主从结构方案、一主多从+读写分离等。

高可用方案

特点:

一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。

使用场景:

读和写都不高的场景(单表数据低于500万),双机高可用。

主从结构方案

特点:

一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。

使用场景:

读和写都不是非常高的场景(单表数据低于1000万),高可用。比方案一并发要高很多。

一主多从+读写分离

特点:

一个主写库A多个从库,当主库A故障时,提升从库B为主写库,同时修改C、D库为B的从库。A故障修复后,作为B的从库。

使用场景:

该架构适合写并发不大、但是读并发大的很的场景。

同时每个方案有的不同的使用场景,不同的数据库有着不同设计方案,我们使用的是mysql数据库,我们根据实际的业务场景,最终选用双机高可用方案作为最终的技术选型。

03

基于协议方式,实现数据库高可用

Keepalived是一种高性能的服务器高可用或热备解决方案, Keepalived可以用来防止服务器单点故障的发生,通过两台或者多台实现高可用性。

Keepalived以VRRP协议为实现基础,用VRRP协议来实现高可用性(HA)。VRRP(Virtual RouterRedundancy Protocol)协议是用于实现路由器冗余的协议, VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生, MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等;其他设备不拥有该虚拟IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP运行时只有MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常以及虚拟路由器IP(组),BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。

04

设计网络拓扑图

数据库是放在两个物理机上并且都安装了高可用的集群keepalived软件,两个数据库之间数据是实时同步,然后虚拟出来一个IP,系统连接数据库是虚拟IP,虚拟IP默认连接其中的一个数据库的物理机作为主机,当主机出现问题时候,自动切换备数据库。

05

结语

随着信息化的逐步深入,各个企业都在建立自己的信息化系统,其中的数据安全对于企业来讲是非常重要的,数据的丢失会对企业造成很大的损失,然而数据库是存储数据的载体,建设高可用性数据库,是为了更好的解决企业数据安全,保证企业的信息系统能够平稳运行的一个非常重要技术手段。

- END -

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券