MHA (Master High Availability Manager) for MySQL 教程
1. 项目目录结构及介绍
在 yoshinorim/mha4mysql-manager
的源代码仓库中,我们可以看到以下主要目录结构:
- bin: 包含可执行脚本,如
manager
,node
,reporter
等。 - debian: Debian 包相关的构建文件。
- lib/MHAlib: MHA 库文件,包含了 MHA 运行时所需的函数和逻辑。
- rpm: RPM 包相关的构建文件。
- samples: 示例配置文件和脚本。
- tests: 测试用例和脚本。
- gitignore: Git 忽略文件列表。
- AUTHORS: 对项目贡献者的记录。
- COPYING: 项目许可文件,此处是 GPL-2.0 许可证。
- MANIFEST, MANIFEST.SKIP: 文件清单管理。
- Makefile.PL: Perl 的 Makefile 配置文件。
- README: 项目简介和安装说明。
这些目录和文件共同组成了 MHA 系统,提供了自动化主从切换和故障恢复的能力。
2. 项目的启动文件介绍
MHA 主要的启动文件包括:
- manager: MHA 管理节点的主要进程,用于监控集群状态,检测并处理主节点失败情况,进行主备切换。
- node: 在 MySQL 服务器上运行的服务,提供监控数据给 MHA Manager 使用。
- reporter: 可选组件,用于发送事件通知(如邮件或短信)。
通常,您会在命令行中使用这些脚本来启动和管理 MHA 服务,例如:
# 根据实际情况以正确路径启动
/path/to/bin/mha4mysql-manager --master-host=master_host \
--manager-log-file=/var/log/mha/manager.log \
... 其他参数 ...
3. 项目的配置文件介绍
MHA 的配置文件通常命名为 mha.conf
,其中包含了一系列选项来定制 MHA Manager的行为。下面是一些常见的配置项:
基本设置
--master-info-file
: 主节点信息文件路径,记录了主节点的状态。--manager-user
: MHA Manager 连接到辅助节点时使用的用户名。--manager-password
: 上述用户的密码。--ssh-user
: SSH 到远程服务器时使用的用户名。--ssh-key-file
: 私钥文件路径,用于无密码 SSH。
监控和通知
--email-on-failure
: 邮件地址,当发生故障时发送通知。--check-interval
: 监控周期,单位为秒。--max-retries
: 对失败操作的最大重试次数。
处理策略
--promote-server-id
: 新主节点的 server_id。--post-replication-command
: 复制完成后在新主节点上执行的命令。
配置文件的完整选项可以通过执行 mha4mysql-manager --help
查看。根据您的环境和需求,修改配置文件以适应实际部署。
请注意,除了 mha.conf
,您可能还需要配置辅助节点的 my.cnf
以启用 binlog 和其他复制相关设置。此外,确保所有参与服务器之间的网络通信正常,并且已设置好相应的授权和认证。