高可用性(HA) 1 - MySQL Cluster
来源:互联网 发布:csgo玄学知乎 编辑:程序博客网 时间:2024/06/06 13:23
使用mysql cluster,能达到99.999的高可靠性,在这一章节,主要介绍一些基本概念:
- Network Partitioning
在一个mysql集群中,如果几个节点之间网络出问题了,mysql cluster能决定哪些节点应该继续提供服务。比方有两个Node Group共四个节点:SN1, SN2,SN2, SN4。
SN1和SN2在Node Group1, SN3和SN4在Node Group2。如果{SN1, SN3}与{SN2, SN4}失去联系,那么他们中的任何两个都拥有完整数据,都能对外提供服务。为了数据完整性,我们必须隔离一半。根据配置,一个或者几个管理节点能够提供仲裁,帮助我们选择哪一对节点继续存活。假如我们配置了两个管理节点(MGM1, MGM2)都能提供仲裁服务,我们要避免以下这样的配置:
路由器1: MGM1, SN1, SN3
路由器2: MGM2, SN2, SN4
如果你有这样配置,路由器1与路由器2之间出了问题,而MGM1, MGM2都能仲裁,那么有可能两边都在对外提供服务。结果你懂的。
- Synchronous Replication: 同步复制。
这比较好理解,在同一个Node Group内部,事务提交为two-phase commit,而且是同步的。每个数据节点内的数据都同步复制到另一个节点上。MySQL Cluster 配置通常至少有 2 个全部数据的副本,存放在不同主机上。为避免整体系统故障,系统会根据可配置的频率在磁盘上定期保存事务日志和检查点文件。如果某个节点发生故障,至少有另一个数据节点存储着相同的信息。
注意:同步复制只是内存的复制,对于mysql cluster来说,他可能还没有写到硬盘(与Checkpoint和Redo, UNDO log相关)。如果同一个Node Group同时下电,那么我们就可能丢数据。Mysql cluster的数据一致性是说我们几乎没有两个节点同时over,所以我们进行部署时最好不要同一个Node Group的data node在同一个机架。
- Failure Detection 错误检测。
通常有两种错误,communication loss 和 heartbeat failure。一是通讯丢失,可以通过tcp,共享内存等方式在各存储节点之间通讯来侦测节点是否正常这种方式是最快的故障检测方式,
二是心跳失败,通讯丢失的检测方法在某些特殊情况下无效,例如磁盘故障等问题.所有的存储节点通过组成一个环路,每个节点向下一个节点发送心跳信号,如果下一个节点没有收到心跳信号,则认为上一个存储节点故障,并依次向下下个节点广播此故障信息
- Logging:
正常情况下,不管什么类型的数据库,都会有日志,它包含所有的insert/update/delete。在系统出现故障的时候我们用它来辅助恢复数据库。
- Local Checkpoints:
Redo log是一个环形日志文件,随着数据库的操作,redo log也在增长,如果不及时清理的话,log空间很快就会用光,我们需要及时地把snapshot image写到disk,然后把redo log的tail指针向前挪。NoOfFragmentLogFiles
用来控制
redo log
的大小,
TimeBetweenLocalCheckpoints
控制
cluster local checkpoint
的频率。这儿的
Time
并不指时间,而是指操作的个数,它是以指数形式增长的,比方
20
是
4M
的写操作,但是
21
就是
8M
。
- Global Checkpoints:
Mysql cluster是一个in-memory数据库,为了性能的关系,事务
都是先同步到内存,然后后面写log。GlobalCheckpoints就是每隔一段时间TimeBetweenGlobalCheckpoints
,我们把一组提交的事务写到
disk
。
Global Checkpoint
就是定时将
Redo log
写到
disk
。
Global Checkpoint
是写
Redo log
,
Local Checkpoint
是截
Redo log
的尾。
Local check
需要时间,为了能够恢复的时候
LCP image
与
LCP
开始时间完全一致,
mysql cluster
引入
Undo log
。
- System Recovery 系统恢复:
当恢复的时候,
LCP image
是
LCP stop
点的数据,我们执行
undo log
使系统回退到
LCP start
点。然后执行
Redo log
到
Global checkpoint
点。
- 跨地域复制 — 跨地域复制使节点能镜像到远程数据中心以便进行灾难恢复
限制
不支持磁盘上的持续提交。提交将被复制,但不保证在提交时会将日志写入磁盘。
不能在线增加或舍弃节点(此时必须重启簇)
参考:
http://wenku.baidu.com/view/ccdb281c59eef8c75fbfb3bd.html
http://www.docin.com/p-73482417.html
redo/undo log介绍:http://7567567.blog.51cto.com/706378/584678
http://blog.chinaunix.net/uid-20485483-id-3180386.html
- 高可用性(HA) 1 - MySQL Cluster
- 高可用性(HA) 2 - mysql
- 集群(cluster)&高可用性(HA)概念
- 集群(cluster)和高可用性(HA)的概念
- 集群(cluster)和高可用性(HA)的概念
- HA-DRBD Heartbeat 建置 MySQL 高可用性
- 高可用性(HA) 3 - Feature Comparison of MySQL HA Solutions
- MySql高可用性HA主从配置(双主双从HA模式)
- HA 高可用性
- 高可用性(HA)
- mysql-master-ha:mysql master高可用性管理工具
- Percona XtraDB Cluster—MySQL高可用性解决方案
- 什么是高可用性(HA)
- HBase 的 HA (高可用性)
- hdfs的高可用性HA
- Hadoop之HA高可用性
- HiveMetaStore高可用性(HA)配置
- Linux HA, MySQL cluster
- conversion to dalvik format failed with error 1
- hdu1142 A Walk Through the Forest 最短路和记忆式搜索dijstra+dfs
- 监视多个rman作业例子
- 快速排序-改进1
- VMware Workstation 8创建共享磁盘(图形界面版)
- 高可用性(HA) 1 - MySQL Cluster
- 数据库连接池的作用
- Hdu 3518 Boring counting (出现2次及以上且不重叠的子串的个数)
- iOS开发ASIHTTPRequest下载数据
- Android学习笔记-两个Activity之间传递数据
- 线程特定数据详解
- linux操作系统用crontab做定时关闭启动tomcat
- 2013.08.09(3)
- UVA 11078 Open Credit System (水题)