完全屬於我自己的Blog,運行在我的路由器H218N上.記錄著我想記錄的文字.

2013年5月

05月 10

基于复制的MySQL高可用技术

双Master

双Master是非常常用的高可用拓扑结构。两个Master互相复制数据以保持同步,因为是对称的,所以设置起来非常简单。而双主架构又可细分为Active-Passive模式和Active- Active模式。它们都常常搭配共享存储使用,或者低成本的DRBD技术,可以理解为“网络的RAID”实现。

双主Active-Passive架构

Active-Passive模式的拓扑架构示意图如下:

Active- Passive模式

两台Master彼此互为镜像,并且binlog二进制文件存储在共享磁盘之上。这意味着主Master到备Master的切换速度很快,而且Slave也不需要将binlog的文件和位置进行调整,唯一需要做的便这是CHANGE MASTER了。
在Active-Passive模式的双主架构中,最需要注意的便是脑裂(split-brain syndrome)问题了。造成脑裂很有可能是主Master发生故障进入修复期,此时备Master接管服务。不幸的是心跳线或监听服务也发生了故障,那么当主Master完成修复回来时,备Master无法洞悉这一情况,那么将出现两个Master同时运行,那么很有可能出现数据更新的冲突,导致Slave复制出现脏数据。因此,将竭尽全力避免脑裂的发生。值得庆幸的是DRBD内置已经以优雅的方式解决了脑裂split-brain syndrome问题,而共享存储则依赖于该产品自身的处理方式。

阅读全文 >>

05月 10

MySQL热备份

环境设定

假设有3台MySQL服务器,分别为Master,Standby,Slave.
其实Standby也是一个Slave,只是叫法不一样而已.

切换Master原理

切换Master的一个基本思路就是:Slave和Standby在完全相同的位置停止运行,然后把Slave重定向到Standby.

模拟真实场景

场景准备

当数据量大时,StandbySlave的数据可能不一样
(如其中一个快的把Master的完全同步好,另外一个同步进度稍微落后)
即Slave和Standby不在完全相同的位置停止运行.
现假定Slave稍微落后,连上Slave,执行

阅读全文 >>