CentOS环境下 SQL Server 日志管理技巧
一 核心概念与恢复模式
二 在 CentOS 上的查看与监控
USE [YourDatabaseName]; DBCC SQLPERF(LOGSPACE);(关注 UsedLog 百分比)。SELECT DB_NAME(database_id) AS db, name AS logical_name, physical_name, size*8/1024 AS size_mb, max_size*8/1024 AS max_size_mb, growth*8/1024 AS growth_mb FROM sys.master_files WHERE type_desc='LOG';SELECT session_id, request_id, task_alloc, task_dealloc, hostname, program_name, loginame, text FROM sys.dm_db_session_space_usage s JOIN sys.sysprocesses p ON s.session_id = p.spid CROSS APPLY sys.dm_exec_sql_text(p.sql_handle) ORDER BY task_alloc DESC;三 容量与增长配置
ALTER DATABASE [YourDB] MODIFY FILE (NAME='YourDB_log', SIZE=10GB, MAXSIZE=20GB);ALTER DATABASE [YourDB] MODIFY FILE (NAME='YourDB_log', FILEGROWTH=1GB);四 备份与截断策略
BACKUP LOG [YourDB] TO DISK='/var/backups/YourDB_20260102_0100.trn' WITH INIT, COMPRESSION;msdb 中创建作业与调度,步骤执行 BACKUP LOG ... WITH INIT, COMPRESSION;。五 收缩与清理的正确姿势
BACKUP LOG [YourDB] TO DISK='/var/backups/YourDB_log_20260102.trn' WITH INIT, COMPRESSION;-- 查询逻辑日志文件名SELECT name FROM sys.master_files WHERE database_id = DB_ID('YourDB') AND type_desc='LOG';-- 收缩到目标大小(如 8GB)DBCC SHRINKFILE (N'YourDB_log', 8192);find /var/backups -name "YourDB_*.trn" -mtime +30 -delete