清除MS SQL 服务器 LOG 文件(mssql 清除LOG)
MS SQL 服务器 Log 文件是用来审计数据库中的事件和请求信息的必要文件。Log 文件一般包括一般日志,慢查询日志和系统错误日志等。由于 Log 文件的增长,会降低 MS SQL 服务器的性能,因此必须进行清理,以便有效运行 MS SQL 服务器。
要想正确清除 MS SQL 服务器 Log 文件,首先需要近确定已备份数据库完整文件(全备份),然后在 MS SQL 服务器中执行一些sql命令。首先,使用 USE 命令切换为要清理的 Log 所属数据库:
USE [testdb]
GO
再根据需求打开归档模式(如果要清理 Log 文件,必须处于归档模式):
ALTER DATABASE [testdb] SET RECOVERY SIMPLE WITH NO_WAIT;
GO
再使用 Checkpoint 命令:
CHECKPOINT;
GO
此命令会触发活动 Log 文件被收缩。最后,使用 DBCC SHRINKFILE 命令:
DBCC SHRINKFILE (testdb_log, 10);
GO
这条命令可以使梅森 Log 文件变得比最小文件大小小,其中 10 代表最小文件 10Mb 的大小。
此外,可以使用 SQL Server 内置 Job 服务清理 Log 文件。SQL Server 支持在特定的时间点定期清理 Log 文件,以避免 Log 文件的无限制增长。 例如,可以使用以下 SQL 语句定义一个 Job:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_job @job_name = N’Maintance-Daily-ShrinkDB’,
@enabled = 1,
@notify_level_email = 10,
@owner_login_name = ‘sa’
GO
EXEC msdb.dbo.sp_add_jobstep @job_name = N’Maintance-Daily-ShrinkDB’,
@step_name = N’ShrinkDBJob’,
@subsystem = N’TSQL’,
@command = N’DBCC SHRINKFILE (testdb_log, 10);’,
@retry_attempts = 5,
@retry_interval = 5,
@on_success_action = 1
GO
最后,设置 Job 定期运行时间:
USE [msdb]
GO
EXEC msdb.dbo.sp_add_jobschedule @job_name = N’Maintance-Daily-ShrinkDB’,
@name = N’jobschedule’,
@enabled = 1,
@freq_type = 4,
@freq_interval = 1,
@freq_subday_type = 4,
@freq_subday_interval = 5
GO
以上就是清除 MS SQL 服务器 Log 文件的常用手段,在实际实施时要根据实际情况选择合适的清理方法。
相关文章