13:00 反馈前台系统登陆失效
按照以往情况判断,初步判断是接口服务器 php-fpm 崩溃,
操作:执行 service php-fpm restart,问题依旧存在
13:05 反馈程序服务器出现大量访问
从调用方式来看,判断是已知的一个接口在不正确的时间被访问,检查数据库服务器 mysql 进程,mysql进程约在3000上下。
操作:关闭接口访问,停止 mysql 进程, service mysql stop, 无法关闭进程,遂要求技术部重启该服务器
13:30 服务器重启后部分系统可以访问
经过一个多小时分析,发现只有PDO方式可以连接至mysql, mysql 和 mysqli方式均失效, 查看 phpinfo(), 发现mysql.default_socket 和 mysqli.default_socket 均为空, 而 pdo_mysql.default_socket 正常, 遂考虑 mysql.sock 路径配置不正确
操作: 重新设定sock路径, 将sock新路径写入 php.ini, 重启php-fpm
15:00 所有服务恢复正常, 部分表需要修复
可能是之前强制关闭进程时破坏了表索引, REPAIR TABLE `fv_fagui_data`
这次暴露了很多已知和未知的问题:
1. 服务器容灾措施不足
配置一台从服务器, 主服务器出现问题时可以及时切换.
2. 接口管控不足
明确接口开放时间, 确定好责任人
3. 技术能力不足
学习学习学习, 提升提升提升