zoukankan      html  css  js  c++  java
  • mysql如果主库宕机,如何解决?

    两种情况服务器down机,数据库down机

    如果此时需要切从库

    1、先show processlistG,查看状态
    
    如果看到两个状态,说明此时的从库和主库是同步的
    state: waiting for master to send event   I/O线程
    state:has read all relay log;waiting for the slave I/O thread to update it    sql线程
    
    2、登录从库分别查看:
    cat /data/3306/data/master.info
    cat /data/3307/data/master.info
    看哪个从库的哪个master.info哪个更新,就说明哪个从库一致性更高,所以此时就确定最新的库为主库。
    
    选个pos最大的作为主库
    或利用半同步的功能,直接选择做实时同步的这个从库。
    
    1、确保所有relay log全部更新完毕。
    在每个从库上执行stop slave io_thread;show processlist;
    直到看到has read all relay log;表示从库更新都执行完毕
    
    2、登录从库
    mysql -uroot -p123 -S /data/3306/mysql.sock
    stop slave;
    reset master;
    quit;
    
    
    3、进入数据库数据目录,删除master.info relay-log.info
    cd /data/3306/data/master
    rm -f master.info relay-log.info
    检查授权表,类似read-only参数
    
    4、3306提升从库为主库
    vim /data/3306/my.cnf
    开启:
    log-bin =/data/3306/mysql-bin
    //如果存在log-slave-updates  read-only等参数一定要注释掉。
    /data/3306/mysql  stop
    /data/3306/mysql  start
    到此,提升主库完毕
    
    
    
    5、如果主库服务器没down,需要去主库拉取bin-log补全提升主库的从库
    
    
    6、其他从库操作
    
    已检查(同步user rep均存在)
    登录从库
    stop slave;
    change master to master_host='192.168.1.32'; //如果不同步,就指定位置点
    start slave;
    show slave statusG;
    

      

  • 相关阅读:
    Fusion access
    组网架构
    DHCP中继
    Vxlan配置
    redis多实例
    ansible实现redis角色
    ansible如何ssh免密链接(基于key验证)
    MySQL主从复制
    MySQL范例
    Ubuntu2004安装
  • 原文地址:https://www.cnblogs.com/bill2014/p/7240277.html
Copyright © 2011-2022 走看看