linux mysql5.1MHA安装_MySQL MHA安装与配置

MySQL的MHA架构+中间件keepalive,是互联网云架构的主流架构,实现系统高可用,但是MySQL的切换因为,Binlog的延迟问题,不建议字段切换,最好确认完全无延迟再切换,否则自动切换造成的错误数据与手动切换造成的业务中断之间的权衡,就需要仁者见仁智者见智了。

1、MHA介绍

MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).

MHA有两部分组成:MHA Manager(管理节点)和MHA Node(数据节点).

MHA Manager可以单独部署在一台独立机器上管理多个master-slave集群,也可以部署在一台slave上.MHA

Manager探测集群的node节点,当发现master出现故障的时候,它可以自动将具有最新数据的slave提升为新的master,然后将所有其

它的slave导向新的master上.整个故障转移过程对应用程序是透明的。

MHA node运行在每台MySQL服务器上(master/slave/manager),它通过监控具备解析和清理logs功能的脚本来加快故障转移的。

2、MHA工作原理

-从宕机崩溃的master保存二进制日志事件(binlog events)。

-识别含有最新更新的slave。

-应用差异的中继日志(relay log)到其它slave。

-应用从master保存的二进制日志事件(binlog events)。

-提升一个slave为新master。

-使其它的slave连接新的master进行复制。

3、MHA工具包:

(1)、 Manager工具:

- masterha_check_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信息。

(2)、 Node工具(这些工具通常由MHA Manager的脚本触发,无需人手操作)。

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

- apply_diff_relay_logs : 识别差异的中继日志事件并应用于其它slave。

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

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

下面是MySQL MHA安装与配置

MySQL MHA配置

MySQL环境:

master:192.168.202.129:3306

slave:192.168.202.129:3307,192.168.202.129:3307,192.168.202.130:3306,192.168.202.130:3307,192.168.202.130:3308

MariaDB-10.0.13

MHA环境:

manager:192.168.202.129

node:192.168.202.130(3306端口监听的实例作为备用主库),192.168.202.129

下载地址:http://code.google.com/p/mysql-master-ha/ (这个需要FQ)

环境准备

一主两从MySQL环境

MHA配置

1 依赖安装:

在node节点上,执行下面的命令:

# yum install perl-DBD-MySQL

在manager节点上:

# yum install perl-DBD-MySQL

#yum install perl-Config-Tiny

#yum install perl-Log-Dispatch

#yum install perl-Parallel-ForkManager

#yum install -y rrdtool perl-rrdtool rrdtool-devel perl-Params-Validate

2 rpm包安装:

manager节点:

# rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

# rpm-ivh mha4mysql-node-0.56-0.el6.noarch.rpm

node节点:

# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm

3 配置

mkdir -p /etc/masterha/

mkdir -p /var/log/masterha/app1/

将下面的内容写进/etc/masterha/app1.cnf:

cat <> /etc/masterha/app1.cnf

[server default]

manager_workdir=/var/log/masterha/app1

manager_log=/var/log/masterha/app1/manager.log

user=admin

password=admin

ssh_user=root

repl_user=repl

repl_password=repl

ping_interval=1shutdown_script=""master_ip_online_change_script=""report_script=""[server1]hostname=192.168.126.129port=3306candidate_master=1master_binlog_dir="/home/mysql/mydata/data1/binlog"[server2]hostname=192.168.126.130port=3306candidate_master=1master_binlog_dir="/home/mysql/mydata/data1/binlog"[server3]hostname=192.168.126.130port=3307[server4]hostname=192.168.126.130port=3308[server5]hostname=192.168.126.129port=3307[server6]hostname=192.168.126.129port=3308EOFcat /etc/masterha/app1.cnf

4 配置ssh免秘钥:

# ssh-keygen -t rsa

# cd~/.ssh#cat id_rsa.pub >>authorized_keys

#chmod 600 authorized_keys

将id_rsa.pub的内容粘贴到另一台服务器的~/.ssh/authorized_keys里(保证两个机器互相信任)。

5 测试一下ssh:

masterha_check_ssh --conf=/etc/masterha/app1.cnf

6 测试一下复制:

masterha_check_repl --conf=/etc/masterha/app1.cnf

7 开启masterha_manager

# nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log 2>&1 &

看一下状态:

# masterha_check_status --conf=/etc/masterha/app1.cnf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值