MSSQL 日志清理:保持系统稳定运行(mssql 清除LOG)
MSSQL 日志清理被用来清理和管理MSSQL 日志文件,保证MSSQL 服务稳定,及时发现系统异常。Windows 系统服务没法帮你管理 MSSQL 日志,日志清理必须由运维人员来完成。
MSSQL 的日志清理包括定期清理和触发清理。定期清理是每天定时清理日志文件,主要是控制日志文件大小,以避免日志文件膨胀导致磁盘空间紧张。以下是定期清理 MSSQL 日志的 T-SQL 代码:
“`sql
USE Master
GO
— 删除5天前的备份和日志备份
EXEC sp_delete_backuphistory @oldest_date = ‘5’
GO
— 删除5天前的拷贝日志备份
EXEC sp_delete_database_backuphistory @oldest_date = ‘5’
GO
— 删除5天前的原生日志备份
EXEC sp_delete_log_shipping_monitor_history @oldest_date = ‘5’
GO
— 清空每个数据库的事务日志
EXEC sp_msforeachdb ‘use [?]; CHECKPOINT; BACKUP LOG WITH TRUNCATE_ONLY’
触发清理是应用程序通过调用API 或T-SQL 接口,按需要请求定时清理日志文件。此类清理通常用于备份或重建MSSQL 数据库时,调整每个数据库的日志文件大小,以释放磁盘空间。以下是触发清理 MSSQL 日志的 T-SQL 代码:
```sqlUSE DBaa
go-- 清空当前数据库的事务日志
CHECKPOINT BACKUP LOG MyDB WITH TRUNCATE_ONLY
MSSQL 日志清理时运维人员必须定期管理的一项重要工作。正确的日志清理可以有效地释放磁盘空间,帮助及时发现系统异常以及保持系统稳定运行。