You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何使用tail命令查看MSSQL Server日志并监控所有查询?

在Linux系统中通过tail命令查看追踪Microsoft SQL Server日志的方法

前置配置(默认不记录所有用户查询,需先开启日志记录)

要捕获所有在SQL Server上执行的查询,需要先开启对应的跟踪标志让查询内容输出到日志:

  • 临时开启(重启服务后失效,适合临时排查场景)
    使用sqlcmd或其他客户端连接到你的SQL Server实例,执行以下语句:
    DBCC TRACEON(4032, 3605, -1);
    
    参数说明:4032标志会将所有接收到的SQL语句输出到日志,3605标志会将调试输出写入错误日志,-1表示配置全局生效
  • 永久开启
    执行以下命令写入配置,之后重启服务生效:
    sudo /opt/mssql/bin/mssql-conf set traceflag 4032 on
    sudo /opt/mssql/bin/mssql-conf set traceflag 3605 on
    sudo systemctl restart mssql-server
    

实时查看日志命令

Linux上SQL Server的默认错误日志路径为/var/opt/mssql/log/errorlog,和你之前用的PostgreSQL日志查看逻辑类似,执行以下命令即可实时追踪日志:

sudo tail -f /var/opt/mssql/log/errorlog

如果需要过滤只看查询相关内容,可以搭配grep命令:

sudo tail -f /var/opt/mssql/log/errorlog | grep "SQL Statement:"

注意事项

  • 全量查询日志会产生大量数据,占用较高磁盘IO和存储空间,生产环境建议仅在排查问题时临时开启,用完后及时关闭:
    临时开启的执行SQL关闭:DBCC TRACEOFF(4032, 3605, -1)
    永久开启的执行以下命令移除配置后重启服务:
    sudo /opt/mssql/bin/mssql-conf unset traceflag 4032
    sudo /opt/mssql/bin/mssql-conf unset traceflag 3605
    sudo systemctl restart mssql-server
    
  • 如果你修改过SQL Server的默认日志路径,可以连接实例执行以下SQL查询实际路径:SELECT SERVERPROPERTY('ErrorLogFileName')

内容的提问来源于stack exchange,提问作者Majid Zandi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:24:04