zoukankan      html  css  js  c++  java
  • MHA 日常维护命令集

    1.查看ssh登陆是否成功
    masterha_check_ssh --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf

    2.查看复制是否建立好
    masterha_check_repl --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf

    3.启动mha
    nohup masterha_manager --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf --ignore_last_failover > /usr/local/masterha_work/log/mha_manager.log 2>&1&


    当有slave节点宕掉的情况是启动不了的,加上--ignore_fail_on_start即使有节点宕掉也能启动mha
    nohup masterha_manager --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf --ignore_fail_on_start --ignore_last_failover > /usr/local/masterha_work/log/mha_manager.log 2>&1&
    需要在配置文件中设置ignore_fail=1


    4.检查启动的状态
    masterha_check_status --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf

    5.停止mha
    masterha_stop  --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf

    6.手工failover(MHA Manager必须没有运行)
    如果MHA manager检测到没有dead的server,将报错,并结束failover。
    手工failover场景,master死掉,但是masterha_manager没有开启,可以通过手工failover:
    masterha_master_switch --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf  --dead_master_host=testdb 

    masterha_manager是一种监视和故障转移的程序。另一方面,masterha_master_switch程序不监控主库。 masterha_master_switch可以用于主库故障转移,也可用于在线总开关。

    7.手动在线切换
    masterha_master_switch --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf --master_state=alive 
    或者
    masterha_master_switch --conf=/usr/local/masterha_work/conf/masterha_monitor.cnf --master_state=alive  --running_updates_limit=10000

    --orig_master_is_new_slave切换时加上此参数是将原master变为slave节点,如果不加此参数,原来的master将不启动

    --running_updates_limit=10000 切换时候选master如果有延迟的话,mha切换不能成功,加上此参数表示延迟在此时间范围内都可切换(单位为s),但是切换的时间长短是由recover时relay日志的大小决定

    手动在线切换mha,切换时需要将在运行的mha停掉后才能切换。
    在备库先执行DDL,一般先stop slave,一般不记录mysql日志,可以通过set SQL_LOG_BIN = 0实现。然后进行一次主备切换操作,再在原来的主库上执行DDL。这种方法适用于增减索引,如果是增加字段就需要额外注意。

    Online master switch开始只有当所有下列条件得到满足。
    1. IO threads on all slaves are running   // 在所有slave上IO线程运行。
    2. SQL threads on all slaves are running  //SQL线程在所有的slave上正常运行。
    3. Seconds_Behind_Master on all slaves are less or equal than --running_updates_limit seconds  // 在所有的slaves上 Seconds_Behind_Master 要小于等于  running_updates_limit seconds
    4. On master, none of update queries take more than --running_updates_limit seconds in the show processlist output  // 在主上,没有更新查询操作多于running_updates_limit seconds 在show processlist输出结果上。


  • 相关阅读:
    array_intersect_ukey — 用回调函数比较键名来计算数组的交集
    array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
    array_intersect_key — 使用键名比较计算数组的交集
    array_intersect_assoc — 带索引检查计算数组的交集
    array_flip — 交换数组中的键和值
    array_filter — 用回调函数过滤数组中的单元
    array_fill — 用给定的值填充数组
    array_fill_keys — 使用指定的键和值填充数组
    array_diff — 计算数组的差集
    array_diff_ukey — 用回调函数对键名比较计算数组的差集
  • 原文地址:https://www.cnblogs.com/liang545621/p/7517938.html
Copyright © 2011-2022 走看看