一、日志概述
SQL Server日志记录数据库的所有操作,对于故障排查和性能优化至关重要。
二、日志类型
2.1 错误日志
记录数据库错误信息。
# 查看错误日志
cat /var/opt/mssql/log/errorlog
2.2 事务日志
记录所有数据修改操作。
-- 查看事务日志使用情况
DBCC SQLPERF(LOGSPACE);
2.3 查询日志
记录查询执行信息。
-- 启用查询日志
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'query store', 1;
RECONFIGURE;
三、日志管理
3.1 日志备份
-- 完整备份
BACKUP DATABASE mydb TO DISK = '/var/backups/mydb.bak';
-- 日志备份
BACKUP LOG mydb TO DISK = '/var/backups/mydb_log.trn';
3.2 日志清理
-- 收缩日志文件
DBCC SHRINKFILE (mydb_log, 100);
3.3 日志轮转
# 配置日志轮转
sudo nano /etc/logrotate.d/mssql-server
四、性能优化
4.1 监控日志大小
# 检查日志文件大小
ls -lh /var/opt/mssql/data/*.ldf
4.2 优化日志性能
-- 创建索引优化日志写入
CREATE INDEX idx_log ON LogTable(LogDate);
五、常见问题
Q1:日志文件过大?
执行日志备份并收缩文件。
Q2:如何分析日志?
使用SQL Server Management Studio或查询日志表。
六、总结
合理的日志管理可以提高数据库性能并确保数据安全。
注:本文基于2026年SQL Server on Ubuntu编写