基于MHA的MySQL的高可用详细总结文档Word格式.docx

上传人:b****5 文档编号:15779210 上传时间:2022-11-16 格式:DOCX 页数:39 大小:94.95KB
下载 相关 举报
基于MHA的MySQL的高可用详细总结文档Word格式.docx_第1页
第1页 / 共39页
基于MHA的MySQL的高可用详细总结文档Word格式.docx_第2页
第2页 / 共39页
基于MHA的MySQL的高可用详细总结文档Word格式.docx_第3页
第3页 / 共39页
基于MHA的MySQL的高可用详细总结文档Word格式.docx_第4页
第4页 / 共39页
基于MHA的MySQL的高可用详细总结文档Word格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

基于MHA的MySQL的高可用详细总结文档Word格式.docx

《基于MHA的MySQL的高可用详细总结文档Word格式.docx》由会员分享,可在线阅读,更多相关《基于MHA的MySQL的高可用详细总结文档Word格式.docx(39页珍藏版)》请在冰豆网上搜索。

基于MHA的MySQL的高可用详细总结文档Word格式.docx

u建立ssh无密码登录环境8

vmanager公约操作8

v主mysql公约操作8

v从mysql1公约操作9

v从mysql2公约操作9

v主机名9

v修改hosts9

v测试ssh登录10

u安装mysql和配置主从关系11

v在线安装mysql5.511

v编辑mysql配置文件11

v启动mysql和查询启动状态11

v数据库一致性12

v半同步复制开启13

v配置mysql主从13

v测试mysql主从15

u部署MHA16

v安装MHANode16

v安装MHAmanager16

v检查SSH配置19

v检查复制情况19

v启动MHAmanager22

v停止MHAmanager22

v任务计划22

v配置vip23

u测试MHA25

v停止主mysql25

v查看从mysql情况25

u资料(源码包/配置文件)26

u参考文章26

uFAQ27

 

修订记录

版本号

发布日期

拟制人

修订描述

首次发布

MySQLMHA

◆MySQLMHA介绍

实现原理:

MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案以保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据。

MHA里有两个角色一个是node节点一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四台机器,需要说明的是一旦主服务器宕机,备份机即开始充当master提供服务,如果主服务器上线也不会再成为master了,因为如果这样数据库的一致性就被改变了。

该软件由两部分组成:

MHAManager(管理节点)和MHANode(数据节点)。

MHAManager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。

MHANode运行在每台MySQL服务器上,MHAManager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。

整个故障转移过程对应用程序完全透明。

在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。

例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。

使用MySQL5.5的半同步复制,可以大大降低数据丢失的风险。

MHA可以与半同步复制结合起来。

如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。

目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,因为至少需要三台服务器,出于机器成本的考虑,淘宝也在该基础上进行了改造,目前淘宝TMHA已经支持一主一从。

官方介绍:

注意:

不可以访问google的时候,请使用翻墙或者修改hosts文件以下我提供一个hosts文件。

将hosts文件内容拷贝到C:

\Windows\System32\drivers\etc\hosts中粘贴到文件最后面保存即可,正常访问google。

◆操作流程步骤

1.首先要保证虚拟机能够上网,这里我使用公司电信云平台的四台vmware的虚拟机

2.关闭selinux和配置IP地址和本地source源

3.配置epel源(在线安装需要)

4.配置ssh公钥免登录环境

5.修改hostname

6.配置hosts文件

7.配置Mysql的主从同步关系并通过grant命令赋权

8.安装node包

9.在管理机安装manager包

10.编辑主配置文件

11.测试及排错

12.启动

◆拓扑图演变

主mysql宕机以后架构变成一主一从,

1.从宕机崩溃的master保存二进制日志事件(binlogevents);

2.识别含有最新更新的slave;

3.应用差异的中继日志(relaylog)到其他的slave;

4.应用从master保存的二进制日志事件(binlogevents);

5.提升一个slave为新的master;

6.使其他的slave连接新的master进行复制;

◆MHA软件包说明

MHA软件由两部分组成,Manager工具包和Node工具包,具体的说明如下。

vManager工具包

主要包括以下几个工具:

1.masterha_check_ssh检查MHA的SSH配置状况

2.masterha_check_repl检查MySQL复制状况

3.masterha_manger启动MHA

4.masterha_check_status检测当前MHA运行状态

5.masterha_master_monitor检测master是否宕机

6.masterha_master_switch控制故障转移(自动或者手动)

7.masterha_conf_host添加或删除配置的server信息

vNode工具包

这些工具通常由MHAManager的脚本触发,无需人为操作)主要包括以下几个工具:

save_binary_logs保存和复制master的二进制日志

apply_diff_relay_logs识别差异的中继日志事件并将其差异的事件应用于其他的slave

filter_mysqlbinlog去除不必要的ROLLBACK事件(MHA已不再使用这个工具)

purge_relay_logs清除中继日志(不会阻塞SQL线程)

为了尽可能的减少主库硬件损坏宕机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL5.5的半同步复制。

关于半同步复制原理各位自己进行查阅。

(不是必须)

◆实验环境

使用电信云主机。

详细情况:

1、操作系统版本

Ubuntu12.04.5LTS\n\l

2、操作系统位数

x86_64,64位操作系统

3、操作系统内核

Linuxmastersql3.2.0-23-generic#36-UbuntuSMPTueApr1020:

39:

51UTC2012x86_64x86_64x86_64GNU/Linux

4、云主机情况

角色

Ip地址

主机名

Server_id

类型

Monitorhost

192.168.62.37

manager

37

监控复制组

Master

192.168.62.42

mastersql

42

写入

Candicatemaster

192.168.62.36

slavesql2

36

Slave

192.168.62.41

slavesql1

41

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

上面和下面所有的命令最好都使用root用户执行,我曾经使用非root用户,最后发现很烦,另ubuntu默认root是不可以ssh登陆的,要先:

passwdroot给root添加密码,这样root就可以ssh登陆了。

◆建立ssh无密码登录环境

vmanager公约操作

root@manager:

ssh-keygen

Generatingpublic/privatersakeypair.

Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):

Enterpassphrase(emptyfornopassphrase):

Entersamepassphraseagain:

Youridentificationhasbeensavedin/root/.ssh/id_rsa.

Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.

Thekeyfingerprintis:

20:

a3:

4a:

e2:

1f:

c4:

4c:

9a:

90:

8f:

00:

26:

36:

aa:

81root@iZ28i9mza1uZ

Thekey'

srandomartimageis:

+--[RSA2048]----+

|+.|

|o*|

|X..o.|

|Eo*.o.|

|+=o+S|

|=..|

|...|

|..|

|.|

+-----------------+

然后在/root/.ssh/id_rsa.pub.下面会新建两个文件id_rsa(私钥)和id_rsa.pub(私钥)。

拷贝公约到其他三台机器:

ssh-copy-id-i.ssh/id_rsa.pub 

root@192.168.62.37

#为什么要在本机也要设置呢,因为manager节点安装在这上面,如不设置在下面ssh检查时会通不过。

root@192.168.62.36

root@192.168.62.41

过程示意图(因其过程都一样,故只示范192.168.62.37)

v主mysql公约操作

ssh-keygen-trsa

ssh-copy-id-i.ssh/id_rsa.pubroot@192.168.62.37

ssh-copy-id-i.ssh/id_rsa.pubroot@192.168.62.41

ssh-copy-id-i.ssh/id_rsa.pubroot@192.168.62.42

v从mysql1公约操作

ssh-copy-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1