Ubuntu上SQL Server的日志如何管理
导读:Ubuntu上SQL Server日志管理 一 日志类型与存放位置 系统服务日志:由 systemd journal 管理,查看命令为:sudo journalctl -u mssql-server;按启动查看可用 -b -1 等参数。...
Ubuntu上SQL Server日志管理
一 日志类型与存放位置
- 系统服务日志:由 systemd journal 管理,查看命令为:sudo journalctl -u mssql-server;按启动查看可用 -b -1 等参数。
- SQL Server 错误日志:位于 /var/opt/mssql/log/errorlog,可用 tail -f 实时查看。
- 数据库事务日志:每个用户数据库的日志文件为 .ldf,通常与数据文件同目录 /var/opt/mssql/data/,例如 YourDB.ldf。
- 说明:SQL Server 在 Linux 上不提供 Linux 发行版常见的“通用查询日志”,如需审计建议使用 SQL Server 审计或扩展事件。
二 查看与实时监控
- 实时查看服务日志:sudo journalctl -u mssql-server -f。
- 查看错误日志:sudo tail -f /var/opt/mssql/log/errorlog;如需检索关键字可用 grep,例如:grep -i “error” /var/opt/mssql/log/errorlog。
- 查看数据库事务日志内容(只读方式,不用于恢复):sudo tail -f /var/opt/mssql/data/YourDB.ldf。
- 结构化分析工具:可安装并使用 lnav 对日志做高亮与过滤:sudo apt install lnav & & lnav /var/opt/mssql/log/errorlog。
三 事务日志的备份与截断
- 恢复模式选择:
- FULL:需定期做日志备份以实现日志截断与时间点恢复。
- SIMPLE:检查点自动截断,适合测试/开发或对日志保留要求不高的场景。
- 日志备份与截断(FULL 模式推荐):BACKUP LOG YourDB TO DISK = ‘/var/opt/mssql/backup/YourDB_Log.bak’; 备份成功后日志会被截断。
- 收缩日志文件(谨慎使用):DBCC SHRINKFILE (N’YourDB_Log’, 1024); 将日志收缩到约 1GB,仅在空间紧张且确认无长事务时执行。
- 重要提示:避免频繁或自动收缩;在生产环境保持 FULL 恢复模式并配置 SQL Server Agent 定时日志备份,是保障可恢复性与控制日志增长的最佳实践。
四 系统日志轮转与清理
- 使用 logrotate 管理 SQL Server 相关日志(如 errorlog、output.log):
- 新建配置:sudo vim /etc/logrotate.d/mssql
- 示例策略(按日轮转、保留 7 天、压缩):
/var/opt/mssql/log/*.log {
daily
rotate 7
compress
missingok
copytruncate
notifempty
} - 测试与强制执行:sudo logrotate -f /etc/logrotate.d/mssql
- 说明:logrotate 通过系统的 cron.daily 定时运行,无需额外创建定时任务;copytruncate 可避免重启服务。
五 日常维护与最佳实践
- 监控与告警:定期检查错误日志与磁盘空间(df -h);为关键错误配置监控或告警。
- 备份策略:在 FULL 模式下,建立“每日完整备份 + 每 15–60 分钟日志备份”的计划,确保可恢复性与日志空间可控。
- 变更控制:调整恢复模式、收缩、重建日志等操作应在维护窗口进行,并保留回滚方案。
- 版本差异:部分旧语法(如 BACKUP LOG … WITH NO_LOG / WITH TRUNCATE_ONLY)在新版本中已弃用,请使用标准 BACKUP LOG 触发截断。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上SQL Server的日志如何管理
本文地址: https://pptw.com/jishu/750528.html
