【MHA】MySQL高可用MHA介绍7-常见问题

目录

常见问题解答

支持哪些 MySQL 版本?

支持哪些操作系统?

MHA 可靠吗?

是否提供 MHA 的商业支持?

是否支持基于行的二进制日志格式?

在云环境中是否工作?

是否有其他解决方案可以完成与 MHA 相同的事情?

是否可以提升特定服务器为新主服务器?

是否可以使用 MHA 进行手动交互式故障切换?

MHA Manager 何时不执行故障切换?

哪个主机不会被选为新主服务器?

哪个主机会被选为新主服务器?

如何使 MHA Manager 节点自身高度可用?

当我们添加或删除 MySQL 服务器时,应该执行什么操作?

我不想在配置文件中写入明文密码。

如何在配置文件中设置主机?

如果在执行故障切换时,必要的中继日志被 purge_relay_logs 清除怎么办?


常见问题解答

支持哪些 MySQL 版本?

MHA 支持 MySQL 5.0 及更高版本。不支持 MySQL 4.1 或更低版本。

MHA 还透明地支持 5.6+ 系统表复制信息(在系统表中管理中继日志位置)。

支持哪些操作系统?

MHA 支持所有 Linux 发行版。MHA 应该也可以在其他 UNIX 平台上运行,但尚未进行测试。不支持 Windows。

MHA 可靠吗?

是的,只要您使用两层(常规主从)复制。在两层复制中,主服务器的二进制日志文件和位置被写入从服务器的中继日志中(详见幻灯片 p.17-)。因此,它的作用类似全局事务标识符。只要从服务器存活,MHA 就可以通过解析中继日志确定确切的起始位置。默认情况下,除非所有从服务器都存活,否则 MHA 不会开始故障切换,因此当 MHA 运行时应该是可靠的。

是否提供 MHA 的商业支持?

是的,SkySQL 提供 MHA 的商业支持。

是否支持基于行的二进制日志格式?

是的。任何二进制日志格式,包括基于语句的和基于行的(以及混合)都受支持。已知的一个问题是,在基于语句的二进制日志记录执行大型 LOAD DATA 后,如果主服务器失败,恢复可能会失败。在 MySQL 中使用基于语句的二进制日志记录执行 LOAD DATA 已被弃用,请不要使用。

在云环境中是否工作?

如果您拥有 root 账户,是的,您可以使用。MHA 需要在 MySQL 服务器上的操作系统账户以便读取二进制日志或中继日志,并生成工作文件。通常读取二进制/中继日志需要 mysql 或 root 操作系统用户账户。如果您的云服务不提供操作系统账户,则无法在那里使用 MHA。MHA 不依赖于虚拟 IP 地址。因此,即使云供应商不提供许多虚拟 IP 地址,您也可以使用 MHA。

是否有其他解决方案可以完成与 MHA 相同的事情?

据我所知,没有。如果您只有一个主服务器和一个从服务器,“一些从服务器落后于最新的从服务器”情况就永远不会发生,因此自动故障切换变得更加容易。在云环境中,Amazon RDS 的 MultiAZ 提供了这样的功能。但请记住,使用一个从服务器会引起许多潜在问题。

是否可以提升特定服务器为新主服务器?

(我不想提升一些服务器,因为它们不太稳定。)

是的。请检查 candidate_master 和 no_master 参数。

是否可以使用 MHA 进行手动交互式故障切换?

是的。请检查 masterha_master_switch 命令。

MHA Manager 何时不执行故障切换?

当一个或多个从服务器未存活,或者在稍后描述的某些情况下,MHA 不会开始故障切换。

“未存活”意味着以下情况。

  • 无法通过 MySQL 连接
  • SQL 线程无法启动并出现错误
  • 无法通过 SSH 连接(仅在需要应用差异中继日志事件时)

例如,如果其中一个从服务器停止并出现重复键错误,MHA 不会开始故障切换。这是因为此类 SQL 错误无法自动解决,需要由 DBA 手动修复。由于 MySQL/操作系统/硬件故障引起的主服务器故障不会导致 SQL 线程停止(除非您使用旧版有缺陷的 MySQL 版本),因此不应发生此类情况。

如果在配置文件的每个主机上设置了 ignore_fail 参数,即使主机未存活,MHA 也会开始故障切换。

MHA 还在以下情况下不会开始故障切换。

  • 当从服务器的二进制日志或中继日志过滤规则(binlog-do-db、replicate-do-db 等)不同时
  • 上次故障切换失败时。在这种情况下,故障切换错误文件会在工作目录下创建。删除它并重新启动手动故障切换。
  • 上次故障切换太近(默认为 8 小时,可以通过设置 --last_failover_minute=(minute) 更改)。在这种情况下,MHA Manager 不会执行故障切换,因为很可能只通过故障切换无法解决问题。
哪个主机不会被选为新主服务器?

以下主机不会被选为新主服务器。

  • 配置文件中设置了 no_master=1
  • MySQL 中未启用日志记录
  • 主要 MySQL 版本(5.0/5.1/..)不是所有从服务器中最旧的
  • SQL 线程延迟显著。如果目标从服务器上的 Relay_Master_Log_File 落后于最新从服务器上的 Master_Log_File,或者 Exec_Master_Log_Pos 相对于最新从服务器上的 Read_Master_Log_Pos 超过 100,000,000,则 MHA 会认为目标从服务器延迟显著。
哪个主机会被选为新主服务器?

如果主机符合上述条件,则新主服务器的确定基于以下规则。

  • 如果您在某些主机上设置了 candidate_master=1,则它们将被优先选择。
  • 如果它们中有一些是最新的(接收到最新二进制日志事件的从服务器),则该主机将被选择为新主服务器。
  • 如果有多个主机是最新的,则将根据“配置文件中的部分名称排序”来确定主机。例如,如果您有 server1、server2 和 server3 部分,并且 server1 和 server3 都是 candidate_master 并且最新的,则将选择 server1 作为新主服务器。
  • 如果没有服务器设置 candidate_master=1,则最新的从服务器将成为新主服务器。如果有多个最新的从服务器,则将应用“按部分名称排序”规则。
  • 如果没有最新的从服务器可以成为新主服务器,则将从非最新的从服务器中选择一个作为新主服务器。此处也将应用“按部分名称排序”规则。
  • 如果将 latest_priority 参数设置为 0,则“从服务器是否最新”将不影响决定新主服务器。如果您希望完全控制新主服务器的优先级(可以在配置文件中定义规则:按部分名称排序),使用此参数可能有所帮助。
如何使 MHA Manager 节点自身高度可用?

目前,不支持从多个 MHA Manager 监控相同的主服务器。因此,如果 MHA Manager 出现故障,无法启动自动主故障切换。MHA Manager 故障不会导致主服务器故障,因此这就不太严重了,但是您可能希望尽可能地使 MHA Manager 高度可用。当前推荐的 MHA Manager 高可用解决方案是使用常见的主备解决方案,如 Pacemaker。

当我们添加或删除 MySQL 服务器时,应该执行什么操作?

当您添加或删除 MySQL 服务器时,应更新应用程序配置文件,以便添加新主机或删除旧主机。更新文件后,建议重新启动 MHA Manager。当您希望自动化此过程时,masterha_conf_host 是有用的。

我不想在配置文件中写入明文密码。

检查 init_conf_load_script 参数。该参数是为此类目的而引入的。

如何在配置文件中设置主机?

您不需要在应用程序配置文件中设置主机。MHA Manager 会连接配置文件中的所有主机,并自动识别当前的主服务器。

如果在执行故障切换时,必要的中继日志被 purge_relay_logs 清除怎么办?

这绝对不应该发生。MHA Manager 在故障切换开始时会在所有从服务器上获取咨询锁。当执行清除操作时,purge_relay_logs 客户端程序也会在目标从服务器上获取相同的咨询锁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang实现一个批量自动化执行树莓派指令的软件(1)文本加密配置命令行交互实现

简介 实现一个在配置文件设置信息,一运行就可以自动执行设定指令的软件。 这次实现的是 : 1. 加密解密模块, 用于加密密码, 在配置时配置已加密的密码就可以; 2. 需要配置,自然也就有配置文件的序列化反序列…

Unity读书系列《Unity3D游戏开发》——脚本(一)

文章目录 前言一、脚本模版及其拓展1、脚本模版2、拓展脚本模版 二、脚本的生命周期三、脚本的执行顺序四、脚本序列化1、序列化数据2、serializedObject3、监听部分元素修改事件 五、定时器与间隔定时器六、工作线程(多线程)总结 前言 脚本在Unity的重…

【信安评估】2024年全国职业院校技能大赛高职组“信息安全管理与评估”安徽省选拔赛赛项规程

培训、环境、资料、考证 公众号:Geek极安云科 网络安全群:624032112 网络系统管理群:223627079 网络建设与运维群:870959784 移动应用开发群:548238632 极安云科专注于技能提升,赋能 2024年广东省高校的技…

ChatGPT API - 笔记

1 新手如何用Python玩转ChatGPT API,详细讲解 新手如何用Python玩转ChatGPT API,详细讲解-Django社区,Django中文网,django教程,Django! import time import requestsOPENAI_API_KEY = "****" proxy = "127.0.0.1:7890" # 你需要添加你的代理,懂得都…

Centos的一些基础命令

CentOS是一个基于开源代码构建的免费Linux发行版,它由Red Hat Enterprise Linux (RHEL) 的源代码重新编译而成。由于 CentOS是基于RHEL构建的,因此它与RHEL具有非常类似的特性和功能,包括稳定性、安全性和可靠性。并且大部分的 Linux 命令在C…

sqlplus / as sysdba登陆失败,(ORA-01017)

周一上班检查alert log,看到某个库报出大量的错误 提示无法连接到ASM实例,这是某知名MES厂商DBA创建的11G RAC刚刚​转交到我手上的,这又是给我挖了什么坑? 报错为ORA-01017​用户名密码不对?​what? 登陆o…

大语言模型在研究领域的应用——信息检索中的大语言模型

信息检索中的大语言模型 大语言模型提升信息检索任务利用大语言模型进行信息检索大语言模型增强的信息检索模型.检索增强的大语言模型输入优化策略.指令微调策略.预训练策略.总结应用建议未来方向大语言模型对于传统信息检索技术与应用范式带来了重要影响。这两者在技术路径上具…

在Mac M1笔记本上跑大语言模型llama3的4个步骤?(install、pull、run、ask)

要点 Ollama一个功能强大的本地大语言模型LLM运行工具,支持很多模型,并且操作极其简单快速回忆步骤: 下载ollama工具:https://ollama.com/download 下载模型:ollama pull llama3 #根据libs列表直接指定名字 运行模型…

HttpURLConnection 接收长字符串时出现中文乱码出现问号��

HttpURLConnection 接收长字符串的时候随机位置出现中文乱码,显示问号,究其原因是utf8解码长度问题,程序上写法需要注意,要把字节全部读进来一起转码,不能边读取边转码,会截断中文的字节码,导致…

卡巴斯基plus(kaspersky plus) 21.16主界面出不来

请选择下载x86版本的dotnet 6.0 x86版本的dotnet 6.0 https://download.visualstudio.microsoft.com/download/pr/4aded178-a52a-4fcc-a779-59bb444df048/67924e3556a3a69da09528bd74dca9ef/dotnet-sdk-6.0.421-win-x86.exe

企业微信hook接口协议,ipad协议http,发送大视频文件

发送大视频文件 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信send_userid是long要发送的人或群idisRoom是bool是否是群消息 请求示例 {"uuid":"1688853790xxx", //uuid 默认随机生成如果初始化传了id则用初始…

软考-论文写作-论架构风格论文

题目 素材 框架 一、 摘要 2020年12月,我参加了某省政协委员履职系统的开发。该系统为政协机关人员线上开展各项工作以及委员完成各项履职提供了全方位的软件支撑。我在该项目重担任系统架构师一职,负责履职系统的架构设计。本文结合实践,以委员履职系统为例,主要讨论软件…

12.6.1 实验5:IOS恢复

1、实验目的 通过本实验可以掌握: copy方式恢复IOS的步骤。TFTPDNLD方式恢复IOS的步骤。Xmodem方式恢复IOS的步骤。 2、实验拓扑 路由器IOS恢复的实验拓扑如下图所示。 3、实验步骤 如果工作中不慎误删除路由器IOS,或者升级了错误版本的IOS&#xff…

密码学系列0-总述

通过这一系列文章,帮助读者能快速入门密码学安全性证明。 这一系列文章主要包括以下内容: 1.可证明安全的概念 2.密码学常用困难性问题:CDH,DDH,DLP,BDH等。然后讨论问非对称,对称双线性配对上困难性问题。讨论为什么对称双线性DD…

问答机器人学习资料

longchain 5 分钟内搭建一个免费问答机器人:Milvus LangChain-腾讯云开发者社区-腾讯云 chatglm大模型 基于本地知识的问答机器人langchain-ChatGLM 大语言模型实现方法详解_python_脚本之家 探索QRobot:智能对话与聊天机器人的开源奇缘-CSDN博客 如何…

推荐一个带java环境的tomcat镜像,使用jdk 1.8.0_312

镜像名称和版本:tomcat:10.0-jdk8拉取命令:docker pull tomcat:10.0-jdk8镜像tar包(百度网盘): 链接:https://pan.baidu.com/s/1TM8k7Z97NYhahCrrTh3vBw?pwdrq93 提取码:rq93docker启动命令&am…

请编写一个函数void fun(char*ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

制作一个RISC-V的操作系统十三-抢占式多任务和兼容协作式多任务

文章目录 强占式多任务流程代码具体流程兼容协作式多任务(软中断)寄存器 msip流程代码结果 强占式多任务 流程 抢占式多任务由计时器中断触发,最后在处理程序中切换到下一个进程 代码具体流程 上下文中增加pc寄存器 寄存器保留上下文和切…

A39 STM32_HAL库函数 之 Rcc通用驱动 所有函数的介绍及使用

A39 STM32_HAL库函数 之 Rcc通用驱动 所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_RCC_DeInit1.2 HAL_RCC_OscConfig1.3 HAL_RCC_ClockConfig1.4 HAL_RCC_MCOConfig1.5 HAL_RCC_EnableCSS1.6 HAL_RCC_DisableCSS1.7 HAL_RCC_GetSysClockFreq1.8 HAL_RCC_GetHCLKFreq1.9 HAL_…

C++笔记打卡第23天(STL常用算法)

1.常用排序算法 sort&#xff1a;对容器内元素进行排序 class Myprint { public:void operator()(int val){cout << val << " ";} };// 查自定义数据类型 void test01() {vector<int> v;v.push_back(10);v.push_back(20);v.push_back(15);v.push_b…