SQL Server 在 Ubuntu 的日志管理
一 日志类型与存放位置
二 查看与实时监控
sudo tail -f /var/opt/mssql/data/YourDB.ldf。注意该文件为二进制格式,仅适合查看增长与异常迹象,不建议直接编辑。sudo tail -f /var/log/sqlserver/sqlservr.log 或 journalctl -u mssql-server -f。cat /var/log/syslog | grep sqlservr 或配合 rsyslog 进行集中采集与过滤。三 事务日志容量控制与备份策略
BACKUP LOG MyDB TO DISK = '/var/opt/mssql/backup/MyDB_Log_2025-12-16.bak';USE MyDB; DBCC SHRINKFILE (N'MyDB_Log', 1024);(将日志收缩至约 1 GB)四 系统日志轮转与归档
sudo vim /etc/logrotate.d/sqlserver,示例:/var/log/sqlserver/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
sudo logrotate -f /etc/logrotate.conf/etc/rsyslog.conf 或 /etc/rsyslog.d/ 下的配置,将日志写入指定文件或发送至远程日志服务器;完成后重启服务:sudo systemctl restart rsyslog。五 常用维护命令与排错清单
sudo systemctl status mssql-serversudo systemctl start mssql-serversudo netstat -tuln | grep 1433 或 ss -lntp | grep 1433sudo tail -n 200 /var/log/sqlserver/sqlservr.log | grep -i errordf -h、free -h,确保有足够空间(建议至少预留 2 GB 可用)。sudo /opt/mssql/bin/mssql-conf set defaulterrorlogdir /var/log/sqlserver,然后重启服务:sudo systemctl restart mssql-server。