MySQL基于MHA高可用部署篇(Binlog模式)

一、部署MHA前提要求(必须满足)

1.1 SSH公钥认证

基本上MHA manager,MNA node,以及二次检测的节点,都需要互相信任。如果slave比较多,实例比较多,最好提高下 /etc/ssh/sshd_config MaxStartups 的值(默认是10)。

1.2 操作系统

仅在Linux上测试过。

1.3 单写master和多slave或者只读master

打从一开始,MHA就是为了解决数据一致性而出生,所以,最好是多个slave。如果你只有一个slave,根本就碰不到数据一致性问题,也就不需要mha了

如果是一个slave,用半同步复制也能解决。从mha 0.52开始,就支持多master的复制架构了,下面列举了多master环境下注意点:

多master,但是只允许单点写入。

默认情况下,只支持2层复制架构。

1.4 三层或者多层复制环境

默认情况下,MHA是不支持3层或多层复制架构的(Master1 -> Master2 -> Slave3)。MHA可以恢复Master2,但是不能恢复Slave3,因为Master2,Slave3有不同的master。为了让MHA支持以上架构,可以参考如下配置:

在配置文件中,只配置两层(master1 and master2)。

使用 “multi_tier_slave=1″ 参数,然后设置所有hosts。

1.5 MySQL版本必须是5.0或者高于5.0

MySQL版本必须大于等于5.0。

尽量使用高版本的MySQL。

1.6 使用mysqlbinlog 5.1+ 支持MySQL5.1+

MHA使用mysqlbinlog来应用日志到目标slave上的。

如果MySQL master设置的是row格式,那么MySQL必须是大于等于5.1版本,因为5.0不支持row。

mysqlbinlog版本可以这样被检测,mysqlbinlog –version。

如果你使用的是MySQL5.1,那么mysqlbinlog必须大于等于3.3。

如果mysqlbinlog的版本是3.2,而mysql的版本是5.1,那么mha manager会报错,且停止monitoring。

1.7 log-bin必须在候选master上开启

如果当前slave没有设置log-bin,那么很显然它不能成为提升为new master。

如果没有任何机器设置了log-bin,那么mha会报错且停止failover。

1.8 binlog,relay-log主从环境必须全部一致

对于主从两边的配置最好一模一样(不需要配置中设置read_only),主要是主库要有从库相关的复制参数配置。

复制过滤规则(binlog-do-db, replicate-ignore-db等等)必须全部一致,不然检查到会退出。

1.9 主库复制用户和业务用户必须在候选master上要存在

切换完成后,所有业务连接到新的主库,所以旧的主库用到的业务账号也必须在新主库有一份,不然就有大问题。

切换完成后,所有slave都必须执行change master命令。在new master上复制用户必须有(REPLICATEION SLAVE权限)。

2.10 使用purge_relay_logs来定期删除relay logs(两个节点则不必关心此条)

默认情况下,如果SQL线程执行完relay-log,relay logs就会被自动删除。但是这些relay-logs也许还会用来恢复其他的slave,所以你需要关闭自动删除relay-logs的purge线程,然后自己阶段性的来删除。如果是你自己来删的话,必须考虑复制延迟问题,最好让slave删除relay log不要在同一时间点,假如需要恢复,那么这个时间点所有relay logs都被删除了就不好了。

2.11 不要在SBR的环境中使用load data infile

不管是SBR,还是RBR,最好不要使用load data。

二、部署MHA

2.1 环境准备

接下来部署MHA,具体的搭建环境如下(所有操作系统均为centos 7.3 64bit,不是必须,mysql02和mysql03是mysql01的从,复制环境搭建后面会简单演示,但是相关的安全复制不会详细说明:


其中master对外提供写服务,备选master(实际的slave,主机名mysql02)提供读服务,slave也提供相关的读服务,一旦master宕机,将会把备选master提升为新的master,slave指向新的master。

关闭各个主机iptables加selinux

$ systemctl stop firewalld

$ setenforce 0

各个主机配置hosts

$ cat /etc/hosts

192.168.10.94 mha

192.168.10.91 mysql01

192.168.10.92 mysql02

192.168.10.93 mysql03

各个主机配置SSH互信,基本上MHA manager,MHA node,以及二次检测的节点,都需要互相信任。如下示例:

$ ssh-keygen

$ ssh-copy-id root@10.99.73.7

$ ssh-copy-id root@10.99.73.9

$ ssh-copy-id root@10.99.73.10

$ ssh-copy-id root@10.99.73.11

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容