1. 数据库高可用架构深度解析
1.1 MHA故障恢复全流程实操
在实际生产环境中,数据库主节点故障是DBA最常遇到的紧急情况。根据故障类型不同,我们通常分为逻辑故障和物理故障两类处理方案。
逻辑故障处理流程:
当主库出现服务停止或SQL请求无法处理时,我通常会按照以下步骤排查:
- 首先检查MySQL错误日志(默认路径/var/log/mysqld.log),定位具体错误代码
- 对于表损坏情况,使用
mysqlcheck -r修复表结构 - 若innodb引擎故障,尝试设置innodb_force_recovery=1-6逐级恢复
物理故障恢复方案:
当服务器硬件故障时,我的标准恢复流程是:
- 优先从最近的xtrabackup全备恢复(通常保留最近7天的全量备份)
- 若备份不可用,则从延迟从库(配置有24小时延迟的专用从库)提升为主库
- 紧急情况下可临时启用从库的read_only=0提供写服务
关键提示:主从重建时务必检查server_id是否冲突,这是我踩过多次的坑。建议将server_id设置为服务器IP末段+端口号,如10.0.0.51:3306对应5153306
1.2 MHA高级功能配置实战
邮件报警配置要点:
在配置send_report脚本时,有几个安全注意事项:
- 建议使用专用报警邮箱而非个人QQ邮箱
- 密码应使用应用专用密码而非邮箱主密码
- 添加TLS加密配置:
bash复制my $smtp = 'smtp.qq.com:587';
my $ssl = 1; # 启用SSL加密
手动切换的黄金法则:
执行master_ip_online_change时,必须遵守:
- 先在业务低峰期操作
- 提前在从库执行
stop slave io_thread暂停复制 - 切换完成后立即检查
Seconds_Behind_Master是否为0 - 原主库重新加入集群后,务必检查
read_only状态
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. ProxySQL读写分离架构深度优化
2.1 生产级安装部署规范
在CentOS 7系统安装ProxySQL时,我推荐以下优化配置:
- 修改内存限制(默认配置仅支持小规模应用):
bash复制
