作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,生产环境"一主多从"从库发生宕机,如何手工恢复?

在生产环境中,MySQL“一主多从”架构的从库发生宕机时,可以通过以下步骤进行手工恢复:

1. 确认宕机原因

首先,需要确定从库宕机的具体原因。常见的原因包括:

  • 硬件故障:如服务器硬件损坏、网络设备故障等。
  • 软件故障:如MySQL服务进程异常终止、操作系统级别的错误或资源耗尽。
  • 网络问题:如网络中断或延迟,导致从库无法与主库通信。
  • 人为操作:如误删除数据、不当配置更改等。

可以通过以下步骤进行排查:

  • 检查服务状态

    systemctl status mysql
    
  • 查看错误日志

    tail -n 100 /var/log/mysql/error.log
    
  • 检查网络连接

    ping <主库IP>
    
  • 检查复制状态

    SHOW SLAVE STATUS\G;
    
2. 停止从库复制

在确认问题后,首先停止从库的复制,避免在恢复过程中产生更多问题:

STOP SLAVE;
3. 修复问题

根据排查结果,采取相应的修复措施:

  • 如果是网络问题:尝试重新连接网络,确保从库与主库之间的网络通信正常。
  • 如果是硬件故障:联系硬件供应商进行维修或更换。
  • 如果是软件故障:检查MySQL服务状态,尝试重启服务。如果服务无法启动,可能需要查看日志文件,定位具体问题并解决。
  • 如果是配置错误:重新配置从库的复制参数,确保配置正确。
4. 清理和重置从库

在修复问题后,清理从库的复制日志,并重置从库的复制状态:

rm -rf /path/to/relay-log/
RESET SLAVE ALL;
5. 重新启动从库复制

在清理和重置从库后,重新启动从库的复制:

START SLAVE;
6. 检查复制状态

重新启动复制后,检查从库的复制状态,确保复制正常运行:

SHOW SLAVE STATUS\G;

确认Slave_IO_RunningSlave_SQL_Running均为Yes,表示复制正常运行。

7. 数据恢复(如果需要)

如果从库数据丢失或损坏,可能需要从备份中恢复数据:

  • 恢复备份

    mysql -u username -p < backup.sql
    
  • 重新配置主从同步:修改从库的配置文件,指定主库信息,并重新启动从库。

8. 预防措施

为了避免未来发生类似问题,可以采取以下预防措施:

  • 定期备份数据:确保有最新的备份数据。
  • 监控主从同步状态:及时发现并解决同步问题。
  • 优化网络配置:确保主从库之间的网络连接稳定。

综上所述,通过以上步骤,可以有效地恢复从库的正常运行,确保数据的一致性和业务的连续性。

posted @ 2025-03-10 17:59  黄嘉波  阅读(33)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波