mssql日志过大解决之道(mssql log 过大)

随着mssql的使用不断加深,mssql的日志增长变得越来越快,同时也会带来一定的困扰,这里介绍一种解决mssql日志过大的方法。

首先,我们可以采取的措施是在使用完mssql时将其置于简单模式,并使用下面的代码来释放日志空间:

“`sql

USE master

GO

–简单模式

ALTER DATABASE [数据库名] SET RECOVERY SIMPLE

GO

–释放空间

DBCC SHRINKFILE ([数据库名.ldf],1)

DBCC SHRINKFILE ([数据库名.mdf],1)

GO

–手动检查确认日志文件大小是否与预期相符

SELECT Name,Size/128.0 – CAST(FILEPROPERTY(Name, ‘SpaceUsed’) AS int)/128.0 AS AvailableSpaceInMB

FROM sys.database_files

WHERE type_desc = ‘LOG’

GO


同样,我们还可以采用自动收缩日志文件的功能,它可以在日志文件大小达到一定程度时自动触发收缩,可以使用以下T-SQL代码进行设置:

```sql
ALTER DATABASE [数据库名] SET AUTO_SHRINK ON
GO

此外,我们还可以在可用回滚间隙未补充时,手动触发回滚段补充,以释放空间,此操作可以使用下面的代码执行:

“`sql

DBCC SHRINKFILE(log_file_name, 2)

GO


最后,如果MSSQL长期处于SIMPLE模式,建议改变恢复模式,同时增加检查点,以段日志大小,可以使用如下语句进行更改:

```sql
ALTER DATABASE [数据库名]
SET RECOVERY FULL;
GO
ALTER DATABASE [数据库名]
SET CHECKPOINT ON;
GO

以上就是解决MSSQL日志过大的方法,通过上述措施,我们可以更有效地管理日志,并保持良好的系统运行状态。


数据运维技术 » mssql日志过大解决之道(mssql log 过大)