关于SQL错误日志停止记录的原因排查请求(含9小时日志间隙场景)
结合你给出的排查细节,咱们一步步拆解SQL错误日志出现近9小时空白的可能诱因,毕竟时间线和已有的系统事件藏着不少线索:
安全补丁+服务器重启引发的日志服务静默异常
服务器上午6:20重启,前一日刚安装安全补丁,日志正常记录到8:53就中断。大概率是补丁修改了日志相关配置(比如日志目录权限、输出路径、服务依赖关系),重启后日志服务看似启动正常,但运行一段时间后出现静默挂起——没有触发崩溃(所以系统/应用日志无相关记录),但完全停止写入日志。这类兼容性问题在安全补丁更新中很常见,尤其是涉及系统日志组件(如syslog)或数据库自带日志模块时。错误日志触发规则被补丁调整
应用侧数据库连接问题始于下午2:40,但日志空白从8:53就开始了。有可能是安全补丁修改了数据库错误日志的触发阈值:比如原本只要有错误就记录,现在设置了「每分钟错误次数超过N次才记录」,或者仅记录严重级别以上的错误。8:53到2:40之间的错误没达到触发条件,直到下午连接问题大规模爆发才重新触发日志写入;也可能是连接池的状态变化没有被日志服务正确捕获,导致这段时间的错误完全没被记录。日志文件权限/磁盘空间的静默失败
重启后补丁可能意外修改了日志文件或目录的权限(比如日志目录所有者从mysql变成root),当日志服务尝试写入时因权限不足失败,但因为是静默错误(未抛出致命崩溃信号),系统日志没记录异常,实际上日志已经停止写入。另外也可以排查当时的磁盘空间:8:53左右日志所在磁盘刚好满了,后续下午有其他文件被清理释放了空间,所以6:50又能恢复日志写入。日志轮转机制异常
如果服务器用了logrotate这类日志轮转工具,补丁可能改动了轮转配置,导致8:53触发轮转后,新的日志文件没有被正确创建或关联到数据库服务。这种情况下数据库进程还在正常运行,但输出的日志无法写入新文件,直到下午连接问题触发的信号重新触发了日志文件关联,才在6:50恢复记录。
内容的提问来源于stack exchange,提问作者Att

