MySQL MHA应用实践(方案实战)
admin
2023-04-16 11:41:32
0

1、环境与条件
已存在主从架构环境

主机名 IP地址 主从角色 MHA角色
leo1 192.168.3.2 Master MHA-node
leo2 192.168.3.3 slave MHA-node
leo3 192.168.3.4 slave MHA-node,MHA-manager
vip 192.168.3.6

主从确保主从状态正常

mysql>show slave status\G;
IO与SQL进程为YES

参数更改

relay_log_purge = 0                 #不自动删除relay log 以便于宕机修复数据
log_bin = /data/log/leo-bin      #从库开启binlog  以便于宕机修复数据
expire_logs_days=7
log-slave-updates=1

2、配置SSH
MHA在运行是会通过SSH服务连接到其他节点服务器进行检测或复制数据,因此需要集群内可免密码登陆。
在leo1-3内分别执行如下命令:

    ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.2
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.3
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.3.4

3、安装MHA Node
对所有mysql节点安装MHA Node

        1)安装perl语言
         yum install perl-DBD-MySQL  -y   ###因为MHA用perl 开发
         2)安装MHA Node
         rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
     下载地址
         https://code.google.com/archive/p/mysql-master-ha/downloads
         3)创建命令软连接方便使用:
         ls -s /app/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
         ls -s /app/mysql/bin/mysql  /usr/bin/mysql
         4)检查MHA账户
         grant all privileges on *.* to mha@'192.168.3%'  identified by 'mha';
         select user,host from mysql.user;

4、MHA-Manager
Manager 可以安装在任何一台机器上。

    1)使用epel源安装perl环境
        wget -O /etc/yum.repo.d/epel.repo  http://mirrors.aliyum.com/repo/eprl-6.repo
    2)安装管理节点以来包
        yum intall -u perl-Config-Tiny* epel-release perl-Log-Dispatch* perl-Parallel* per-Time*
    3)安装MHA-Node
            rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
    4)安装MHA-Manger
        rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm

5、配置MHA管理节点

        mkdir -p /etc/mha
        mkdir -p /var/log/mha/app1
        vi /etc/mha/app1.cnf
        [server default]
        manager_log=/var/log/mha/app1/manager.log   
        manager_workdir=/var/log/mha/app1.log
        mater_binlog_dir=/app/mysql/data   ##MHA保存主库binlog路径
        user=mha                                          ##mysql 数据库授权yonghu
        password=mha
        ping_interval=2                                ##监控ping包时间间隔
        repl_user=rep                                  ##主从复制用户
        repl_password=leo123
        ssh_user=root
        repot_script=/usr/local/send_report      ##故障发生后触发脚本
        secondary_check_script=/usr/local/bin/masterha_secondary_check -s leo3 -s leo2 --user=root --master_host=leo1 --master_ip=192.168.3.2 --master_port=3306
        ########manager 联系不上leo1时会通过leo2、leo3 查看leo1的状态
        shutdown_script=""
        [server1]
        hostname=192.168.3.2
        port=3306
        [server2]
        hostname=192.168.3.4
        port=3306
        candidate_master=1             ##设定此参数后server2 会将优先升为主库
        check_repl_delay=0              ##MHA忽律主从复制延迟
        [server3]
        hostname=192.168.3.3
        port=3306

6、启动及测试

1)检测ssh免密登陆
    master_check_ssh -conf=/etc/mha/app1.cnf
2)检测主从复制状态
    master_check_repl -conf=/etc/mha/app1.cnf
3)启动MHA
    nohup master_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failver < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
    ##remove_dead_master_conf 在配置文件中删除master信息
    ##ignore_last_failver  忽律上一次故障切换

7、配置VIP漂移

   1)利用keepalived
    2)在配置文件中填入以下参数
    master_ip_failover_script=/usr/local/bin/master_ip_failover
    3)在脚本中加入以下参数
    my = $vip= '192.168.3.6';
    my $key=  0
    my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
    my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";

    chmod +x /etc/mha/master_ip_failover

相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...