技术实战:基于 MHA 方式实现 MySQL 的高可用


MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据。本文分享了基于 MHA 方式实现 Mysql 的高可用的技术实战,希望对您有所帮助。

AD:51CTO网+ 首届中国APP创新评选大赛火热招募中……

数据的重要性对于人们来说重要程度不说自明,在信息时代,数据有着比人们更大的力量,我们也知道最近的斯诺登事件,军事专家对于他掌握的数据给出的评价是,相当于美军十个重装甲师。

数据库的价值可见一斑,数据库的存在为人们提供了更快的查询,那么在一个web网站中如何做到数据库的高可用,保证持续提供服务,下面的实验是通过MHA的故障转移来实现。

实现原理:MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案以保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),

MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后的数据。MHA里有两个角色一个是node节点 一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四台机器,需要说明的是一旦主服务器宕机,备份机即开始充当master提供服务,如果主服务器上线也不会再成为master了,因为如果这样数据库的一致性就被改变了。

实验环境:vmware 9.0 RHEL5.5

实验所需软件包:http://mysql-master-ha.googlecode.com/files/mha4mysql-node-0.52-0.noarch.rpmhttp://mysql-master-ha.googlecode.com/files/mha4mysql-manager-0.52-0.noarch.rpm

实验大体步骤:

1 首先要保证虚拟机能够上网这里我在vmware里添加了第二块网卡 一块专门用于四台机器通信,一块配置上网
2 关闭selinux和配置IP地址和本地yum源
3 配置epel源
4 配置ssh公钥免登录环境
5 修改hostname
6 配置hosts文件
7 配置Mysql的主从同步关系并通过grant命令赋权
8 安装node包
9 在管理机安装manager包
10  编辑主配置文件
11 测试及排错
12 启动

验拓扑图如下:

1 在配置好IP地址后检查selinux设置

2 在四台机器都配置epel源 这里我找了一个epel源

rpm –ivh http://dl.fedoraproject.org/pub/epel/5Server/i386/epel-release-5-4.noarch.rpm


http://os.51cto.com/art/201307/401702.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MHA(Master High Availability)是一个用于MySQL主从复制环境下自动故障切换和主从切换的高可用性解决方案。它可以自动监控MySQL主从复制环境的运行状态,并在主库发生故障时自动将从库切换为新的主库,从而实现MySQL高可用性。MHA的安装和配置相对简单,可以通过以下步骤实现: 1.安装MHA软件包和依赖项 ```shell yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Config-IniFiles perl-Data-Dumper -y rpm -ivh mha4mysql-node-0.58-0.el6.noarch.rpm ``` 2.创建MHA配置文件 ```shell vi /etc/mha/app1.cnf ``` 在配置文件中添加以下内容: ```shell [server default] user=root password=123456 ssh_user=root repl_user=repl repl_password=123456 ping_interval=3 ping_type=SELECT master_binlog_dir=/data/mysql/mysql3306/data remote_workdir=/usr/local/mha ssh_port=22 master_ip_failover_script=/usr/local/mha/failover master_ip_online_change_script=/usr/local/mha/online_change shutdown_script=/usr/local/mha/shutdown_script report_script=/usr/local/mha/send_report [server1] hostname=192.168.1.101 port=3306 [server2] hostname=192.168.1.102 port=3306 ``` 3.测试MHA配置文件 ```shell masterha_check_ssh --conf=/etc/mha/app1.cnf masterha_check_repl --conf=/etc/mha/app1.cnf ``` 4.启动MHA管理节点 ```shell nohup masterha_manager --conf=/etc/mha/app1.cnf & ``` 5.测试MHA自动故障切换 在MHA管理节点上执行以下命令: ```shell masterha_master_switch --master_state=alive --conf=/etc/mha/app1.cnf --orig_master_is_new_slave --new_master=192.168.1.102 ``` 该命令将会将原来的主库(192.168.1.101)切换为从库,将原来的从库(192.168.1.102)切换为新的主库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值