设为首页 加入收藏

TOP

mysql高可用之mha(十)
2015-11-21 01:50:33 来源: 作者: 【 】 浏览:6
Tags:mysql 可用 mha
lover。

注意:现在mha manager进行没有作为daemon来运行,如果故障转移成功完成或master进程意外被杀,那么监控将会停止。我们可以使用daemontools来是监控作为daemon来运行。

[root@rd-mysql-test4 yum.repos.d]# cd /usr/local/src
[root@rd-mysql-test4 src]# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
[root@rd-mysql-test4 src]# tar -zxvf daemontools-0.76.tar.gz
[root@rd-mysql-test4 src]# cd admin/daemontools-0.76/
[root@rd-mysql-test4 daemontools-0.76]# package/install 
Linking ./src/* into ./compile...
Compiling everything in ./compile...
./load envdir unix.a byte.a 
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [envdir] Error 1

####解决方法####
在src/conf-cc最后加上-include /usr/include/errno.h
[root@rd-mysql-test4 daemontools-0.76]# package/install
最后会在/usr/local/src/admin/daemontools-0.76先建立command目录并存放相关命令,有什么命令我们可以这样查看:
[root@rd-mysql-test4 daemontools-0.76]# ls /usr/local/src/admin/daemontools-0.76/command
envdir     fghack    pgrphack       setlock    softlimit  svc   svscan      svstat  tai64nlocal
envuidgid  multilog  readproctitle  setuidgid  supervise  svok  svscanboot  tai64n

同时在/usr/local/bin下对上面这些命令建立了软连接方便我们执行。另外创建监控/services目录,并在/etc/inittab下也有变化:

SV:123456:respawn:/command/svscanboot

它使用init的方式来守护自己。

[root@rd-mysql-test4 daemontools-0.76]#mkdir -p /service/masterha_app1
[root@rd-mysql-test4 daemontools-0.76]#vim /service/masterha_app1/run
#!bin/bash
exec masterha_manager --conf=/etc/mha/app1.cnf --wait_on_monitor_error=60 --wait_on_failover_error=60 >> /var/log/masterha/app1/app1.log 2>&1
[root@rd-mysql-test4 daemontools-0.76]#chmod 755 /service/masterha_app1/run
##启动monitoring
svc -u /service/masterha_app1
##停止monitoring
svc -d /service/masterha_app1
在此我们先不使用这种方式启动。

9.查看是否启动

[root@rd-mysql-test4 /]# masterha_check_status --conf=/etc/mha/app1.cnf 
app1 (pid:21438) is running(0:PING_OK), master:10.10.10.56

启动后会在/var/log/masterha/app1下生成app1.master_status.health manager.log两个文件。

关闭监控我们可以使用masterha_stop --conf=/etc/mha/app1.cnf

10.测试

一.自动failover

1.我们关闭master的mysql

[root@rd-mysql-test1 mysql]# mysqladmin shutdown

我们查看/var/log/masterha/app1会发现以下情况:

?

[root@rd-mysql-test4 app1]# ls
app1.failover.complete  manager.log  saved_master_binlog_from_10.10.10.56_3306_20150807180251.binlog 
app1.failover.complete文件,说明failover已经完成;

?

saved_master_binlog_from_10.10.10.56_3306_20150807180251.binlog是从master上复制过来的二进制日志。

manager.log是复制环境状态的检查并记录了整个failover的过程,我们可以failover报告:

?

----- Failover Report -----

app1: MySQL Master failover 10.10.10.56 to 10.10.10.57 succeeded

Master 10.10.10.56 is down!

Check MHA Manager logs at rd-mysql-test4:/var/log/masterha/app1/manager.log for details.

Started automated(non-interactive) failover.
The latest slave 10.10.10.57(10.10.10.57:3306) has all relay logs for recovery.
Selected 10.10.10.57 as a new master.
10.10.10.57: OK: Applying all logs succeeded.
Generating relay diff files from the latest slave succeeded.
10.10.10.57: Resetting slave info succeeded.
Master failover to 10.10.10.57(10.10.10.57:3306) completed successfully.

?

从报告中可以看出故障迁移是成功,我们还可以看看mysql的状态确认迁移是否

首页 上一页 7 8 9 10 下一页 尾页 10/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇阿里云远程如何访问mysql 下一篇eclipse连接mysql

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: