五分钟技术趣谈 | MMD数据库高可用方案

2023年 8月 1日 100.2k 0

Part 01

概述 

Mysql作为市场上最受欢迎的数据库之一,可以给业务提供稳定的数据读写能力。随着业务场景多样化,单一的数据库管理已经不满足市场需求,逐渐的衍生出了多种类型的高可用方案,其中MHA最受欢迎,但MHA依赖分布式mha4服务,容错性差,且造成浪费资源。所以我们需要通过双高可用方式来提高数据库的稳定性。

Part 02

组成 

图片图片

Mysql高可用包含3个模块,具体模块详情如下:

➤keeplived服务:主要提供可用VIP;

➤Mysql_cluster服务:实现用户数据的读写和故障迁移;

➤同步检测服务:通过拨测检查服务同步状态,进行异常处理。

Part 03

方案介绍 

1️⃣通过域名对外提供服务;

2️⃣两台Mysql都可读写,互为主备,masterA负责数据的写入,masterB备用;

3️⃣masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;

4️⃣两台主库之间做高可用,可以采用keepalived方案(使用VIP对外提供服务);

5️⃣masterA或masterB均不因异常恢复后而抢占VIP(nopreempt);

6️⃣masterA和masterB均有同步数据探测,同步异常及时处理。

图片

Part 04

 方案优势 

数据库高可用方案具有以下优势:

➤ 多集群管理:降低了多种异常发生造成的影响,提高了环境的稳定性。

➤ 数据准确性:Mysql单节点写入,不容易造成数据覆盖、主键重复等问题,解决了同步异常无法确定以哪个库为准的问题。

➤ 降本增效:与传统数据库高可用相比,服务器资源占用降低了30%以上、节省运维成本40%以上。

➤ 检测机制:频率性监测机制,确保及时发现问题,自身治愈。

Part 05

方案效果 

图片

masterA和masterB可以采用单/双递增主键:

图片

1.解决Mysql节点都可以写入,极其容易造成主键重复,进而导致主从同步失败的问题。

2.标识数据通过哪个数据库写入。

Part 06

结束语 

在整体方案上,如果要保证数据的准确性,就依赖于单写,技术架构上就存在单点压力过载的风险,目前数据库单写是瓶颈。读写分离、多写将是未来的主要发展趋势,技术架构难解决的问题,我们可以通过业务侧来解决,根据业务分类选择高可用架构中不同的数据库存储,可以保证单业务侧的数据完整性,就能解决单写和单点压力过载的问题。为不同业务应用场景提供相匹配的解决方案,实现多种应用场景才是我们的初衷。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论