iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql进阶(三)MHA高可用集群
  • 124
分享到

mysql进阶(三)MHA高可用集群

2024-04-02 19:04:59 124人浏览 安东尼
摘要

简介: 1、MHA目前在Mysql高可用方面是一个相对成熟的解决方案,是mysql高可用环境下故障切换和主从提升的高可用软件 2、MHA能在短时间内完成故障切换,并且在最大程度上保证数据的一致性,以达到真正

简介:
1、MHA目前在Mysql高可用方面是一个相对成熟的解决方案,是mysql高可用环境下故障切换和主从提升的高可用软件
2、MHA能在短时间内完成故障切换,并且在最大程度上保证数据的一致性,以达到真正意义上的高可用
3、MHA基于mysql协议,通过mysql主从或主主进行复制
4、MHA官网:https://code.Google.com/p/mysql-master-ha/

软件由两部分组成:MHA Manager(关理节点)和MHA node(数据节点)
1、MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上
2、MHA Node运行在每台MySQL服务器上
3、MHA_Manager会定时探测集群中的master节点,当master出现故障时,
   它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master
4、MHA配合半同步复制使用可以最大限度的保证数据安全性

工作原理:
1、从宕机崩溃的master保存二进制日志事件(binlog events)
2、识别含有最新更新的slave
3、应用差异的中继日志(relay log)到其他的slave
4、应用从master保存的二进制日志事件(binlog events)
5、提升一个slave为新的master
6、使其他的slave连接新的master进行复制

MHA工具:
Manager工具包:
masterha_check_ssh            #检查MHA的SSH配置状况,MHA强烈依赖ssh秘钥验证
masterha_check_repl      #检查MySQL复制状况
masterha_manager       #MHA主程序
masterha_check_status     #检测当前MHA运行状态
masterha_master_monitor    #检测master是否宕机
masterha_master_switch    #手动控制故障转移
masterha_conf_host      #添加或删除配置的server信息
masterha_stop		      #MHA关闭工具

Node工具包:
save_binary_logs       #保存和复制master的二进制日志
apply_diff_relay_logs     #识别差异的中继日志事件并将其差异的事件应用于其他的slave
filter_mysqlbinlog      #去除不必要的ROLLBACK事件(MHA已不再使用这个工具)
purge_relay_logs       #清除中继日志(不会阻塞SQL线程)



实验环境:
角色          ip地址        
MHA_manager		192.168.0.70
Master         192.168.0.40
Slave 			192.168.0.60
Slave          192.168.0.10



安装MHA:
1、配置elpe和baseyum源
2、yum -y localinstall mha4mysql-manager-0.55-0.el6.noarch.rpm mha4mysql-node-0.54-0.el6.noarch.rpm
#非管理节点不用安装mha4mysql-manager-0.55-0.el6.noarch.rpm
3、配置ssh秘钥验证
ssh-keygen                    #生成秘钥,一直回车就行
cat id_rsa.pub >> authorized_keys  #将authorized_keys  id_rsa  id_rsa.pub 拷贝到所有节点的~/.ssh目录下
注意:不能禁止passWord登陆,否则会出现错误	


配置mysql主从(建议使用mysql5.5版本以上):
master配置:
vim /etc/my.cnf            #修改配置文件,添加如下内容
[mysqld]                    #找到mysqld配置段
log-bin=mysql-bin           #开启二进制日志
relay-log=relay-bin	    #开启中继日志
binlog_fORMat=mixed	    #使用混合模式的二进制日志
server-id= 1		    #全局唯一的server-id
innodb-file-per-table=1	    #使用单独表空间文件
default-storage-engine=InnoDB	 #使用InnoDB存储引擎
autocommit=0			  #关闭事务自动提交
skip-name-resolve=1		  #关闭主机名反解
relay-log-purge=0           #不允许自动清理中继日志,因为MHA会依靠中继日志恢复数据

service mysqld restart		#重启mysql
mysql> SHOW MASTER STATUS;		#查看当前二进制日志位置
+------------------+----------+
| File           | Position|
+------------------+----------+
|mysql-bin.000004 |  360  |		#记住当前值
+------------------+----------+
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'mha'@'192.168.0.%' IDENTIFIED BY 'mha';
mysql> GRANT ALL ON *.* TO 'mymha'@'192.168.0.%' IDENTIFIED BY 'mymha';	#创建MHA监控用户
mysql> FLUSH PRIVILEGES;


slave配置:
vim /etc/my.cnf		#修改配置文件,添加如下内容
[mysqld]			#找到mysqld配置段
log-bin=mysql-bin		#开启二进制日志
relay-log=relay-bin		#开启中继日志
binlog_format=mixed		#使用混合模式的二进制日志
server-id= 2			#全局唯一的server-id
innodb-file-per-table=1		#使用单独表空间文件
default-storage-engine=InnoDB	#使用InnoDB存储引擎
autocommit=0			#关闭事务自动提交
skip-name-resolve=1		#关闭主机名反解
read-only=1			#只读,对root用户无效(slave节点必须设置)
relay-log-purge=0		#不允许自动清理中继日志,因为MHA会依靠中继日志恢复数据

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.10',MASTER_USER='mha',MASTER_PASSWORD='mha',
     MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=360,MASTER_PORT=3306; #指定主服务器
mysql> START SLAVE;			#启动复制线程
mysql> SHOW SLAVE STATUS\G;		#查看从服务器状态
Slave_IO_Running: Yes		    #必须都为yes
Slave_SQL_Running: Yes
mysql> SELECT USER,PASSWORD,HOST FROM mysql.user;	#查看mha是否同步成功


MHA配置:
    mkdir /etc/mha	
    mkdir /var/log/mha_app1

vim /etc/mha/app1.cnf		
[server default]				#MHA工作属性定义(配置时不能有注释)
manager_workdir=/masterha/app1			#MHA的工作目录
manager_log=/var/log/mha_app1/manager.log    #MHA的日志文件
password=mymha         		#设置MHA监控用户的密码
user=mymha               	#设置监控用户
ping_interval=1         		#设置监控主库,健康检查时间
remote_workdir=/masterha/app1     	#设置远端mysql在发生切换时binlog的保存位置
repl_password=mha    		#设置复制用户的密码
repl_user=mha          	#设置复制环境中的复制用户名
ssh_user=root           	#设置ssh的登录用户名
master_binlog_dir=/usr/local/mysql/data/ #二进制日志文件存放路径	

可选参数,脚本都需要自己写:
shutdown_script=/masterha/scripts/shutdown.sh  #故障发生后关闭故障主机脚本(用于防止脑裂)
master_ip_failover_script=/masterha/scripts/automatic.sh #设置自动故障转移时执行的脚本	
master_ip_online_change_script=/masterha/scripts/manual.sh #设置手动故障转移时执行的脚本	
report_script=/masterha/scripts/twili.py   		#设置发生切换后发送的报警脚本


[server1]						
hostname=192.168.0.40			
port=3306						

[server2]	            #节点设置
hostname=192.168.0.60	    #主机地址
port=3306		    #端口
check_repl_delay=0 	    #用防止master故障时,切换时slave有延迟
candidate_master=1 
#设置为候选master,如果没有设置则在slave中选择数据最新的成为master,如果设置了建议最好指向半同步节点

[server3]						
hostname=192.168.0.10			
port=3306


MHA使用:
chmod 600 /etc/mha/app1.cnf		#设置为只有root用户对此文件有权限
masterha_check_ssh --conf=/etc/mha/app1.cnf	#检查ssh秘钥认证是否成功
--conf:指定配置文件

masterha_check_repl --conf=/etc/mha/app1.cnf		#检查mysql复制环境成功
masterha_check_status --conf=/etc/mha/app1.cnf		#检查MHA运行状态
masterha_manager --conf=/etc/mha/app1.cnf		#启动MHA
您可能感兴趣的文档:

--结束END--

本文标题: mysql进阶(三)MHA高可用集群

本文链接: https://www.lsjlt.com/news/39839.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 配置MySQL高可用集群MHA
    配置MySQL高可用集群+++++++++++++++++++主机角色 :客户端 client50数据库服务器 mysql51 到 mysql55管理主机 mgm56VIP地址 ...
    99+
    2024-04-02
  • MySQL数据库之MHA高可用群集
    MHA概述 日本DeNA公司youshimaton (现就职于Facebook公司) 开发一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件 MHA的组成 MHA Manager (...
    99+
    2024-04-02
  • MHA实现MySQL高可用集群架构
    转转连接 https://www.cnblogs.com/tanxiaojun/p/10424699.html MHA简介 MHA(Master HighAvailability)目前在MySQL高可...
    99+
    2024-04-02
  • MySQL中MHA高可用集群是怎样的
    本篇文章为大家展示了MySQL中MHA高可用集群是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是MHA传统的主从复制如果主库宕机,其余从库不会自动的...
    99+
    2024-04-02
  • Mysql实现MHA高可用
    环境: CentOS7.4 x 4 mha4mysql-manager x 1 mha4mysql-node x 3 node节点搭建一主双从 mha4mysql代码托管:https://co...
    99+
    2024-04-02
  • mysql高可用集群如何搭建
    要搭建MySQL高可用集群,可以按照以下步骤进行操作: 选择合适的集群架构:常用的MySQL集群架构有主从复制、主备切换和主主复...
    99+
    2023-10-24
    mysql
  • mysql MHA 高可用架构部署
    MHA简介:即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具, 该工具仅...
    99+
    2024-04-02
  • Nginx的高可用集群
    1、什么是 nginx高可用 只有一台nginx服务器时,如果nginx服务器宕机了,那么请求就无法访问。 要实现高可用,那就可以部署多台nginx服务器,下面以两台nginx服务器为例,示意图如下: 要配置nginx集群,至少需要满...
    99+
    2023-09-04
    nginx 服务器 运维 keepalived 检测
  • 构建双vip的高可用MySQL集群
    目录一、 项目描述:二、项目环境:二、项目步骤:三、项目概念图:四、部署zabbix监控系统4.1 准备:4.2 步骤:五、项目心得:一、 项目描述:     本项目的目的是: 构...
    99+
    2024-04-02
  • 如何部署MySQL-MMM高可用群集
    如何部署MySQL-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介MMM(Master-Master re...
    99+
    2024-04-02
  • MySQL高可用方案MHA怎么用
    这篇文章主要为大家展示了“MySQL高可用方案MHA怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL高可用方案MHA怎么用”这篇文章吧。 MyS...
    99+
    2024-04-02
  • 怎么构建Mysql高可用集群系统
    本篇内容主要讲解“怎么构建Mysql高可用集群系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么构建Mysql高可用集群系统”吧!一、 MySQL复制的实现...
    99+
    2024-04-02
  • mysql mha高可用配置与详解
    三台mysql网段配置为10.0.0.51 10.0.0.52 10.0.0.53安装mysql1.2.1安装包准备#创建安装包存放目录[root@mysql-db01 ~]# mkdir /home/cc...
    99+
    2024-04-02
  • harbor高可用集群配置
    arbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了一个非常漂亮的web界面。说明...
    99+
    2023-06-05
  • MySQL高可用集群的介绍以及用法
    MySQL高可用集群的介绍以及用法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 MMM概述1.1 关于mysql-mmmM...
    99+
    2024-04-02
  • CoroSync+Drbd+MySQL如何实现MySQL的高可用集群
    这篇文章主要介绍CoroSync+Drbd+MySQL如何实现MySQL的高可用集群,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!节点规划:node1.huhu.com172.16....
    99+
    2024-04-02
  • Linux上怎么部署高可用的MySQL集群
    在Linux上部署高可用的MySQL集群通常可以通过使用MySQL官方提供的MySQL Group Replication或者Per...
    99+
    2024-05-06
    Linux MySQL
  • 企业中MySQL主流高可用架构实战三部曲之MHA
    老张最近两天有些忙,一些老铁一直问,啥时更新博文,我可能做不到天天更新啊,但保证以后一有空就写一些干货知识分享给大家。我们如果想要做好技术这项工作,一定要做到理论与实践先结合。我一个曾经被数据库虐得体无完肤...
    99+
    2024-04-02
  • MySQL中怎么实现集群高可用架构
    今天就跟大家聊聊有关MySQL中怎么实现集群高可用架构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL+DRDB架构通过DRBD基于bloc...
    99+
    2024-04-02
  • Redis高可用集群是什么
    这篇文章主要介绍“Redis高可用集群是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis高可用集群是什么”文章能帮助大家解决问题。几种 Redis 高可...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作