1. 查看SQL Server日志
在CentOS上,SQL Server的错误日志默认存储于/var/opt/mssql/log/目录(如errorlog文件)。可使用以下方法查看:
cat、less或tail命令查看实时日志(例如tail -f /var/opt/mssql/log/errorlog跟踪最新日志);journalctl命令查看SQL Server服务的系统日志(例如journalctl -u mssql-server);sqlcmd工具连接实例,执行DBCC SQLPERF(LOGSPACE)查看各数据库日志空间使用情况(总大小、已用空间、使用百分比),或查询sys.dm_db_log_space_usage动态管理视图获取更详细的日志空间信息。2. 日志文件自动管理
ALTER DATABASE [YourDB] MODIFY FILE (NAME = 'YourDB_log', FILEGROWTH = 100MB)),避免日志文件因空间不足而停止数据库服务;ALTER DATABASE [YourDB] SET RECOVERY SIMPLE),此时SQL Server会自动截断不活动的事务日志,减少日志文件增长。3. 日志备份与截断
BACKUP LOG命令备份事务日志(例如BACKUP LOG [YourDB] TO DISK = '/backups/YourDB_LogBackup.bak' WITH FORMAT),备份后会标记日志中的不活动部分,释放空间;DBCC SHRINKFILE命令收缩日志文件(例如DBCC SHRINKFILE (YourDB_log, 100),将日志文件缩小至100MB),避免日志文件过大占用磁盘空间;4. 日志轮换与清理
logrotate(Linux系统工具)配置日志轮换策略(例如按天分割日志文件、保留7天内的日志),或使用ELK Stack(Elasticsearch+Logstash+Kibana)集中管理日志,实现自动轮换、压缩和长期存储。5. 监控与审计
sys.dm_os_ring_buffers动态管理视图监控日志文件的增长情况(例如查询ring_buffer_type = 'RING_BUFFER_LOG'的记录),或使用第三方监控工具(如Nagios、Zabbix)设置日志大小阈值告警;CREATE SERVER AUDIT),记录数据库修改、登录等操作,或创建审核触发器(AFTER INSERT/UPDATE/DELETE)记录数据变更历史,便于后续审计和问题排查。6. 第三方工具集成