server1,2,3:

启动数据库

mysql 切成root mysql切换_mysql


mysql 切成root mysql切换_数据库_02


mysql 切成root mysql切换_mysql_03

server4;

免密检测和健康检查

mysql 切成root mysql切换_服务器_04

mysql 切成root mysql切换_服务器_05

MHA高可用

手动切换

两种方法
1.
server1,2,3:
/etc/init.d/mysqld start

主服务器存活状态下切换
server4;

cd MHA-7/
masterha_check_repl --conf=/etc/masterha/app.cnf
##一主两从状态健康检查才会成功
masterha_master_switch --conf=/etc/masterha/app.cnf --master_state=alive --new_master_host=172.25.9.2 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000
##全部问题输入YES,在主服务器存活状态下切换

mysql 切成root mysql切换_数据库_06


mysql 切成root mysql切换_服务器_07

masterha_check_repl --conf=/etc/masterha/app.cnf
##再次进行健康检查,保证切换后集群工作正常

mysql 切成root mysql切换_vim_08


mysql 切成root mysql切换_vim_09

server1,2,3:

show master status;
show slave status\G; 
##在三台服务器中查看状态,确保切换成功

##查看主从状态是否切换成功

mysql 切成root mysql切换_vim_10


mysql 切成root mysql切换_vim_11

2.主服务器宕机情况下切换
server2:
/etc/init.d/mysqld stop
##在主服务器关闭状态下切换

server4:

masterha_master_switch --master_state=dead --conf=/etc/masterha/app.cnf --dead_master_host=172.25.9.2 --dead_master_port=3306 --new_master_host=172.25.9.1 --new_master_port=3306 --ignore_last_failover
##手动切换

mysql 切成root mysql切换_数据库_12


mysql 切成root mysql切换_数据库_13


mysql 切成root mysql切换_mysql 切成root_14


mysql 切成root mysql切换_mysql_15

masterha_check_repl --conf=/etc/masterha/app.cnf
##健康检查无法通过

mysql 切成root mysql切换_mysql_16

需要手动:
server2:

mysql -p
change master to master_host='172.25.9.1',master_user='repl',master_password='westos',master_auto_position=1;
start slave;
show slave status\G;
##切换成功

mysql 切成root mysql切换_数据库_17

server3:

mysql 切成root mysql切换_vim_18


mysql 切成root mysql切换_服务器_19


mysql 切成root mysql切换_vim_20

自动切换

切换过程中,关闭主服务器,切换自动进行
server4:
需要删除锁定文件,(锁定文件作用:防止抖动)
cd /etc/masterha

cd app1
rm -rf *
cd /etc/masterha
masterha_manager --conf=/etc/masterha/app.cnf &
##后台执行
ps ax ##查看进程

mysql 切成root mysql切换_服务器_21


mysql 切成root mysql切换_数据库_22


mysql 切成root mysql切换_vim_23

server1:(现存主服务器)

/etc/init.d/mysqld stop

mysql 切成root mysql切换_mysql_24

server4:

cat /etc/masterha/app1/manager.log ##查看日志切换成功

mysql 切成root mysql切换_数据库_25


mysql 切成root mysql切换_mysql 切成root_26

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

mysql 切成root mysql切换_mysql_27

server1:

change master to master_host='172.25.9.2',master_user='repl',master_password='westos',master_auto_position=1;
start slave;
show slave status\G;

mysql 切成root mysql切换_mysql 切成root_28


mysql 切成root mysql切换_数据库_29


mysql 切成root mysql切换_vim_30

server4:

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

##健康检查通过

mysql 切成root mysql切换_数据库_31

mysql 切成root mysql切换_服务器_32

vip飘移切换

server4:

lftp 172.25.0.250
cd pub/docs/mysql
get master_ip_failover master_ip_online_change 
chmod +x master_ip_*
 vim master_ip_failover 
 vim master_ip_online_change

mysql 切成root mysql切换_vim_33


mysql 切成root mysql切换_数据库_34


mysql 切成root mysql切换_mysql_35


mysql 切成root mysql切换_mysql_36

server2:

ip addr add 172.25.9.100/24 dev eth0

mysql 切成root mysql切换_mysql 切成root_37


mysql 切成root mysql切换_mysql_38

server4:

masterha_check_repl --conf=/etc/mmasterha/app.cnf
vim app.cnf 
master_ip_failover_script= /etc/masterha/master_ip_failover
master_ip_online_change_script=/etc/masterha/master_ip_online_change

masterha_master_switch --conf=/etc/masterha/app.cnf --master_state=alive --new_master_host=172.25.9.2 --new_master_port=3306 --orig_master_is_new_slave --running_updates_limit=10000

mysql 切成root mysql切换_vim_39


mysql 切成root mysql切换_mysql 切成root_40

mysql 切成root mysql切换_mysql 切成root_41


mysql 切成root mysql切换_mysql_42


mysql 切成root mysql切换_服务器_43

server1:

ip addr show

mysql 切成root mysql切换_mysql_44


主机:mysql -c -uroot -pwestos

mysql 切成root mysql切换_vim_45

方法二

自动切换vip漂移

server4:

masterha_manager --conf=/etc/masterha/app.cnf &

ps ax

mysql 切成root mysql切换_mysql 切成root_46


mysql 切成root mysql切换_vim_47

server1: /etc/init.d/mysqld stop

mysql 切成root mysql切换_服务器_48

server4:

ps ax

cd app1

cat manager.log

mysql 切成root mysql切换_mysql_49


mysql 切成root mysql切换_vim_50

server1:

change master to master_host='172.25.9.2',master_user='repl',master_password='westos',master_auto_position=1;
 start slave;
show slave status\G;

mysql 切成root mysql切换_mysql 切成root_51

mysql 切成root mysql切换_mysql 切成root_52

server4:

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

mysql 切成root mysql切换_mysql 切成root_53