前言
本篇博客主要讲一些数据库集群的设计方面,应对于各种不同的环境所作出的措施
一、脑裂
1. 脑裂定义
脑裂 (split-brain) 是一种故障状态,通常出现在分布式系统或集群环境中。在这种状态下,集群中的多个节点失去了彼此之间的通信连接,但它们仍然可以独立地访问和操作共享资源(如数据库或文件系统)。由于缺乏协调,这些节点可能会执行冲突的操作,从而导致数据不一致、数据丢失或其他严重问题。
2. 如何防止
脑裂的情况一般都是因为心跳断开导致,然后各个节点各自对共享的数据进行操作导致,由图 :

根据脑裂的触发条件,可通过以下方式进行防止 :
- 增加冗余的心跳线,尽量减少脑裂发生机会;
- 启动磁盘锁,发生脑裂的时候协调对资源的控制;
- 设置仲裁机制;
3.数据库防止脑裂
3.1 HA 双机热备防脑裂
HA 服务脑裂主要是主备机会同时向共享存储写入数据,造成严重的数据错乱,DM预防手段如下:
- 建议增加冗余的心跳线;
- 加入互斥机制,dm.ini 中记录主备机器 IP,不允许同时启动数据库实例

3.2 主备集群防脑裂
可能存在脑裂场景:
-
<


2446

被折叠的 条评论
为什么被折叠?



