sql server日志收缩脚本及解决日志增长过快的问题

发布时间:2020-07-18编辑:脚本学堂
sql server日志过大,可以用如下的脚本进行收缩,另外,本文还介绍了解决sql server日志增长过快的问题的方法,供大家参考。

收缩日志的sql。

---收缩日志
USE [master]  
GO  
ALTER DATABASE mydatabase SET RECOVERY SIMPLE WITH NO_WAIT  
GO  
ALTER DATABASE mydatabase SET RECOVERY SIMPLE   --修改为简单模式 
GO  
USE mydatabase 
GO  
DBCC SHRINKFILE (N'mydatabase_Log' , 11, TRUNCATEONLY)  
GO  
USE [master]  
GO  
ALTER DATABASE mydatabase SET RECOVERY FULL WITH NO_WAIT  
GO  
ALTER DATABASE mydatabase SET RECOVERY FULL  --还原为完全(完整)模式 
GO

与其等到日志增长到很大时收缩,何不把工作做到平时呢?
下面我们看看如何解决SQL Server日志增长太快的问题。

有时会为这样的问题而烦恼,数据库的大小没有增长多少,日志文件增长却很快,甚至出现大部份硬盘空间都被日志文件占去了,哇哇哇。

对于此问题,大家可以参考如下存储过程中的解决方法。
(数据库名为test_news),日志归档到'e:archivelog'下以作备份。)

CREATE PROCEDURE Log_backup   AS
declare @pathfile as varchar(200)
set @pathfile='F:logs'+convert(char(13),GETDATE(),126)+'.bak'
BACKUP LOG [test_news] TO  DISK = @pathfile WITH  NOINIT ,  NOUNLOAD ,  NAME = N'test_news log backup',  NOSKIP ,  STATS = 10,  NOFORMAT
dbcc shrinkfile ([test_news_log],50)
GO
--by www.jb200.com