1. 定位SQL Server日志文件
在CentOS系统中,SQL Server的错误日志(记录数据库运行错误、启动/停止信息等)默认存储路径为/var/opt/mssql/log/errorlog;系统日志(记录服务运行状态、内核消息等)可通过journalctl命令获取。这些日志是故障排查的基础数据源。
2. 使用系统命令查看日志
cat、less或tail命令查看文本格式的错误日志。例如,less /var/opt/mssql/log/errorlog可逐页查看日志内容,tail -f /var/opt/mssql/log/errorlog可实时监控新增日志(适用于调试实时问题)。journalctl命令过滤SQL Server服务的日志。例如,journalctl -u mssql-server显示SQL Server服务的所有日志;journalctl -u mssql-server -n 50显示最近的50条日志;journalctl -u mssql-server --since "2025-09-30 00:00:00" --until "2025-10-01 00:00:00"可按时间范围筛选日志。3. 通过SQL Server工具查询日志
USE [master]; GO DBCC SQLPERF(LOGSPACE);返回所有数据库的日志空间使用率(帮助判断日志是否需要收缩);EXEC xp_readerrorlog 0, 1, N'错误';读取最近的错误日志(参数0表示当前日志,1表示错误日志类型,'错误’为关键词过滤)。4. 利用第三方工具集中分析日志
index=sqlserver sourcetype=mssql "error"),快速找出高频错误或慢查询。5. 分析日志的关键方向
/var/opt/mssql/log/errorlog中“Login failed for user ‘sa’”表示登录失败)。sys.dm_exec_query_stats视图查看高CPU/IO查询);结合系统日志中的CPU、内存使用率,判断是否因资源不足导致性能下降。GRANT/REVOKE语句)、数据修改(如INSERT/UPDATE/DELETE操作),识别潜在的安全威胁(如暴力破解、未授权访问)。