【MHA】命系列介绍--[masterha_master_switch]

简介:

介绍:

masterha_master_switch 不监控主库,但是可以用于主库宕机后failover,可以用于在线切换主库

手动failover:

有时候需要手动执行failover机制,masterha_master_switch 命令可以用于 手动执行failover.
eg: masterha_master_switch --master_state=alive --conf=/etc/app.cnf  --dead_master_host=host1

常用参数介绍:

--master_state=dead
    强制的参数,参数值为"dead" 或者 "alive" . 如果 设置为 alive 模式,masterha_master_switch 开始在线主库切换操作。

--dead_master_host=(hostname)
    强制参数,宕机的主库所在的主机名称。--dead_master_ip 和 --dead_master_port 是可选参数,如果这些参数没有设置,--dead_master_ip 就是 --dead_master_host 解析的IP地址。--dead_master_port 为 3306

--new_master_host=(hostname)
    新主机地址,可选参数,这个参数在你明确新的主库的主机,非常有用。(这就意味着你不需要让MHA来决定新的主库)。如果不设置此参数,MHA 将会利用自动failover的规则来选择新的主库。如果设置--new_master_host,MHA选择此主机为新的主库,如果不能成为主库,MHA将会退出

--interactive=(0|1)
    如果设置为0,在masterha_master_switch,它自动执行故障转移(非交互式)。这实际上是和masterha_manager的内部运行机制一样,这种非交互式故障转移是有用的,如果你已经证实了master死了,但你想尽快做故障转移。非交互式故障转移也是有用的,如果你使用其他现有的主监控软件和要调用的非交互式故障转移命令软件。典型的例子是masterha_master_switch调用从集群软件像起搏器。

--ssh_reachable=(0|1|2)
    指定master 经过SSH是否可达。0:不可达、1:可达、2:未知(默认值)。 如果设置为了2,此命令内部将会检测通过SSH 是否可达master,并且跟新SSH 状态。如果可达,且设置master_ip_failover_script 或者 shutdown_script .将会执行"--command=stopssh"。否则,执行 "--command=stop"。另外,如果宕机的master通过SSH可达,failover脚本试图从宕机的master机器上拷贝没有没有发送的binlog。

--skip_change_master
    如果设置此参数,当发生failover的时候,MAH 在应用完不同的relay log退出,忽略CHANGE MASTER 和 START SLAVE 操作。所以 slaves 不会指向 新的master. 开启此参数,有利于手动的二次检查slave 恢复是否成功

--skip_disable_read_only
    设置此参数,MHA 将不会在新的主库上执行 SET GLOBAL read_only =0 操作,有利于手动操作

--last_failover_minute=(minutes)
    参考master_manager 

--ignore_last_failover
    参考master_manager

--wait_on_failover_error=(seconds)
    类似于master_manager, 此参数只用于自动的/非交互式的failover。如果没有设置--interval=0,wait_on_failover_error 将会被忽略,在发生错误的时候不会sleep。

--remove_dead_master_conf
    参考masterha_manager

--wait_until_gtid_in_sync(0|1)
    此参数从0.56版本开始可用,如果设置成1,当基于GITD的failover时,MHA 会等待所有的从库追上新主库的GITD

--skip_change_master
    此参数从0.56版本开始可用,如果开启此选项,MHA 跳过 CHANGE MASTER 的操作

--skip_disable_read_only
    此参数从0.56版本开始可用,如果开启此选项,MHA 将会在新的master 跳过 SET GLOBAL read_only = 0;

--ignore_binlog_server_error
    此参数从0.56版本开始可用,如果开启此选项,当执行failover的时,MHA忽略binlog server上任何错误

非交互式Failover

如果在masterha_master_switch中设置"--interactive=0", 它自动执行故障转移(非交互式)。这实际上是和masterha_manager的内部运行机制一样,这种非交互式故障转移是有用的,如果你已经证实了master死了,但你想尽快做故障转移。非交互式故障转移也是有用的,如果你使用其他现有的主监控软件和要调用的非交互式故障转移命令软件。典型的例子是masterha_master_switch调用从集群软件像起搏器。

[在线] 切换主库的开关 (Scheduled (Online) Master Switch)

有时你可能想做预定的主切换,即使当前的master正在运行。典型的例子是取代部分损坏的硬件或升级主服务器。你不能取代一个RAID控制器或增加内存没有停止服务器。在这种情况下,您需要分配一个预定的维护时间,你必须迁移到不同的服务器的master。
masterha_master_switch命令可以用来运行计划总开关。
$ masterha_master_switch --master_state=alive --conf=/etc/app1.cnf --new_master_host=host2
--master_state=alive必须设置。调度主开关的程序流与从主故障转移有稍微的不同。例如,你不需要关闭主服务器,但你需要确保写查询不在主上执行。通过设置主ip网上变更脚本,您可以控制阻塞当前master不允许写(即drop可写的用户,设置read_only = 1,等等)在执行FLUSH TABLES WITH READ LOCK,和如何让写在新master。
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输出结果上。
这些限制的原因是出于安全原因,并尽快切换到新主库。masterha_master_switch需要以下参数切换时主在线。

    --new_master_host=(hostname)
        新主机地址,可选参数,这个参数在你明确新的主库的主机,非常有用。(这就意味着你不需要让MHA来决定新的主库)。如果不设置此参数,MHA 将会利用自动failover的规则来选择新的主库。如果设置--new_master_host,MHA选择此主机为新的主库,如果不能成为主库,MHA将会退出

   --orig_master_is_new_slave
        当完成主库切换后,原先的主库将作为现在主库的slave运行。默认:不开启(原先的主库不会加入到新的复制环境中)。如果开启此选项,需要在配置文件中设置repl_password参数,由于当期的Master并不知道新的Master的replication的密码

  --remove_orig_master_conf 
        如果设置此参数,当成功failover后,MHA manager将会自动删除配置文件中关于dead master的配置选项。

  --skip_lock_all_tables
        当在做主库切换的时候,MHA会在原先的主库上执行FLUSH TABLES WITH READ LOCK 操作,确保没有跟新操作,但是FLUSH TABLES WITH READ LOCK 操作是非常耗费资源的,并且你可以在原先的主库确定没有跟新操作(通过master_ip_online_change_script 中kill all clients操作等)。可以利用此选项避免锁表
目录
相关文章
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
消息中间件 负载均衡 网络协议
ActiveMQ详细配置方案
本文总结ActiveMQ重要的一些配置,包括高可用failover配置、消息策略等。
1240 0
|
4月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 22.04.1上安装MySQL 8.0及设置root密码的注意事项
这些是在Ubuntu 22.04.1 系统上安装MySQL 8.0 及设置root密码过程中必须考虑的关键点。正确的遵循这些步骤可确保MySQL的安装过程既顺利又安全。
832 20
|
12月前
|
数据挖掘 数据安全/隐私保护
抖音运营:解锁流量增长密码
在短视频盛行的时代,抖音成为流量蓝海,众多创作者和品牌竞相涌入。要在激烈竞争中脱颖而出,除了创作优质内容和巧妙运营外,数据分析至关重要。精准定位目标受众,挖掘创意与热门趋势,优化视频制作、剪辑节奏及发布时间,积极互动并分析关键数据指标(如播放量、点赞数、完播率等),不断优化运营策略,才能实现流量快速增长和账号的长期发展。
1250 11
|
缓存 负载均衡 监控
探秘数据库中间件:ProxySQL与MaxScale的优势与劣势
探秘数据库中间件:ProxySQL与MaxScale的优势与劣势
738 2
|
XML 关系型数据库 MySQL
MySQL 导出某些数据的技术详解
MySQL 导出某些数据的技术详解
582 3
|
监控 关系型数据库 MySQL
MySQL高可用MHA
MySQL高可用管理工具(MHA,Master High Availability)是一个用于自动管理MySQL主从复制的工具,它可以提供高可用性和自动故障转移。MHA由原版的MHA工具和MHA Manager组成,它们协同工作以实现自动主从切换和监控。
858 0
|
存储 Serverless 数据库
OceanBase索引优化
【8月更文挑战第14天】OceanBase索引优化
375 5
|
编译器 芯片
计算机中CPU 架构
【7月更文挑战第27天】
606 2
|
知识图谱 自然语言处理 机器学习/深度学习
大语言模型 RAG 论文总结(2023~202404)(5)
大语言模型 RAG 论文总结(2023~202404)
560 0