• MHA与binlog恢复菜鸡脚本


    1.node节点上的脚本

    [root@db02 ~]# vim start_mha.sh 
    #/bin/bash
    # 判断数据库是否挂掉
    mysql_pid=`ps -ef | grep [m]ysqld | wc -l`
    
    # 如果挂掉则重启,如果没挂则杀掉重启
    if [ $mysql_pid -eq 0 ];then
        systemctl start mysqld
    else
        systemctl restart mysqld
    fi
    
    sleep 3
    
    # 获取change master to语句
    change=`ssh 172.16.1.53 "grep 'CHANGE MASTER TO' /service/mha/manager | tail -1 | sed 's#xxx#123#g'" | awk -F: '{print $4}'` &&
    
    # 重启的数据库执行change master to
    mysql -e "$change;start slave"
    
    # 修复MHA配置文件
    ssh 172.16.1.53 "cp /service/mha/app1.cnf.bak /service/mha/app1.cnf" &&
    
    # 远程启动MHA
    ssh 172.16.1.53 "/bin/bash /root/start_bin.sh"
    

    2.manager节点上的脚本

    [root@db03 ~]# vim start_bin.sh 
    #/bin/bash
    # 获取主机地址
    mha_master_host=`grep 'as a new master' /service/mha/manager | tail -1 | awk -F "[ ,(]" '{print $2}'`
    
    # 启动保存binlog
    cd /root/binlog/
    
    nohup mysqlbinlog -R --host="$mha_master_host" --user=mha --password=mha --raw --stop-never mysql-bin.000001 >/dev/null &
    
    # 启动MHA
    nohup masterha_manager --conf=/service/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /service/mha/manager.log 2>&1 &
    

    SSH报错

    碰到如下报错,无法 SSH 到 Binlog Server,但是 SSH 连接以及健康检查是完全没有问题的,
    

    SSH 在连接自己服务器时,会有反向解析,所以连接速度很慢,MHA 会误认为无法 SSH 到 Binlog Server 服务器上,所以报错,这个报错会导致 MHA 的进程挂掉 。
    
    解决方案:优化一下 SSH sshd_config 里面 添加 USEDNS = no 以及 修改原 GSSAPIAuthentication yes 为 GSSAPIAuthentication no
    
  • 相关阅读:
    ThinkPHP---框架介绍
    (独孤九剑)--cURL
    浅谈Session与Cookie的区别与联系
    (独孤九剑)--会话管理和控制
    PHP数据乱码
    (独孤九剑)---PHP操作MySQL数据库
    错误宝典
    变量、常量、注释、PEP8开发规范、数据类型、Python2和Python3的区别、用户输入、流程控制语句
    什么是编程语言
    CSS
  • 原文地址:https://www.cnblogs.com/Applogize/p/13399271.html
Copyright © 2020-2023  润新知