Debian上SQL Server日志管理实用技巧
一 日志类型与存放路径
sudo tail -f /var/opt/mssql/log/sqlserver.log。journalctl -u mssql-server -f 实时查看。二 查看与实时监控
sudo tail -f /var/opt/mssql/log/sqlserver.log,用于快速定位启动失败、登录失败、配置变更等事件。sudo journalctl -u mssql-server -f,用于观察服务状态变化、OOM、重启等系统层面信息。EXEC sp_readerrorlog; 在 T‑SQL 中读取当前错误日志内容。SELECT * FROM sys.fn_dblog(NULL, NULL); 可查看当前活动事务日志的详细记录(仅用于诊断,避免在大库上无过滤查询)。三 事务日志容量控制与备份
ALTER DATABASE [YourDB] SET RECOVERY SIMPLE;BACKUP LOG [YourDB] TO DISK = '/var/opt/mssql/backup/YourDB_log.bak' WITH FORMAT;DBCC SHRINKFILE (N'YourDB_log', 2, TRUNCATEONLY);DBCC OPENTRAN('YourDB'); 检查长时间运行的事务并优化或终止。四 轮转与保留策略
EXEC sp_cycle_errorlog; 强制切换到新错误日志文件,便于归档与清理。/var/log/mssql/ 下的日志文件(如 sqlserver.log)。示例配置 /etc/logrotate.d/mssql:/var/opt/mssql/log/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 mssql mssql
copytruncate
}
测试与生效:sudo logrotate -f /etc/logrotate.d/mssql。journalctl --disk-usagesudo journalctl --vacuum-time=7dsudo journalctl --vacuum-size=500M/etc/systemd/journald.conf 中设置 SystemMaxUse=... 并重启服务。五 自动化与监控建议