最近一个程序出了问题,新数据插不进数据库,但并无报错,经检查发现是数据库服务器中数据库日志文件过大占满内存所致,所以手动清理了一下日志文件,并新建了一个清理作业,以后每个月自动清理日志文件:
清理日志文件SQL语句:
USE [master]
GO
ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 数据库名称 SET RECOVERY SIMPLE --简单模式
GO
USE 数据库名称
GO
DBCC SHRINKFILE (N'数据库日志文件逻辑名称' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定;数据库日志文件逻辑名称为数据库属性中的逻辑名称,通常是数据库名称_log
GO
USE [master]
GO
ALTER DATABASE 数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 数据库名称 SET RECOVERY FULL --还原为完全模式
GO
新建作业自动清理:
1.展开SQL Server 代理,右键新建作业
2.填写作业名称,所有者和类别一般直接默认就行
3.点击左侧步骤选项卡,点击新建按钮新建步骤
填写步骤名称,类型默认T-SQL,选择需要清理日志文件的数据库,将数据库日志清理语句粘贴到命令输入框
如果需要清理多个数据库的日志文件,重复新建多个步骤即可
4.点击左侧计划选项卡,点击新建按钮新建计划
填写计划名称,设置执行频率
全部确定提交后,作业就开始生效了。