MySQL-MMM:mmm_control参数详解与测试

需积分: 10 6 下载量 198 浏览量 更新于2024-07-27 收藏 288KB DOCX 举报
"MySQL-MMM(Master-Master Replication Manager)是一个用于管理MySQL主主复制的高可用性解决方案。本文将详细介绍mmm_control脚本及其相关参数的测试和理解。 MMM主要包含三个关键组件: 1. mmm_mond: 监控进程,是整个系统的核心,它负责监控所有节点的状态,决策节点角色的变更,并处理相应的活动。 2. mmm_agent: 在每个MySQL服务器上运行的代理程序,执行监控探测任务,同时进行简单的远程服务配置。 3. mmm_control: 一个简单的管理脚本,提供了对mmm_mond进程进行操作的命令。 mmm_control脚本提供了多种操作,如查看节点状态和设置节点状态等。以下是一些重要的mmm_control命令和相关状态: 1. status: 查看当前MySQL服务的状态,可能的状态包括: - online: 主机正常运行,无任何问题。 - admin_offline: 手动设置为离线状态。 - hard_offline: 主机无法访问(ping或MySQL连接检查失败)。 - awaiting_recovery: 正在准备恢复在线状态。 - replication_delay: 复制延迟较大,存在大量未处理的事务日志。 - replication_fall: 复制线程未运行。 2. mmm_controlshow: 显示详细的节点状态信息,如上述的各种状态。 mmm_common.conf配置文件中的`auto_set_online`参数设定了一些自动化行为: - 当`auto_set_online`设置为小于60秒时,如果数据库服务停止,mmm不会等待AWAITING_RECOVERY状态,而是在MySQL服务启动后立即切换回online状态。 - 当`auto_set_online`等于或大于60秒时,数据库进入AWAITING_RECOVERY状态,需要使用`mmm_control set_online db1`等命令手动将其设置为online状态。 总结来说,只有当主机处于online状态时,它才能拥有reader或writer的角色。主机从online状态转换到其他状态时,其角色会被移除。如果主机处于replication_delay或replication_fall状态,解决所有问题后会重新转为online状态,除非发生频繁的不稳定状态(flapping)。 对于hard_offline状态的主机,如果所有问题解决,它会进入awaiting_recovery状态。如果故障持续时间少于60秒,且未重启或`auto_set_online`大于0,它将自动切换回online状态。 MySQL-MMM的这一套机制确保了在高可用性环境中,当系统出现异常时,能够快速识别并采取适当的恢复措施,以最小化服务中断的时间。正确配置和理解mmm_control参数对于优化MySQL-MMM的性能和稳定性至关重要。"