国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL Server無法收縮日志文件的原因分析及解決辦法

2020-07-25 12:47:55
字體:
來源:轉載
供稿:網(wǎng)友

最近服務器執(zhí)行收縮日志文件大小的job老是報錯

我所用的一個批量收縮日志腳本

USE [master]GO/****** Object: StoredProcedure [dbo].[ShrinkUser_DATABASESLogFile] Script Date: 01/05/2016 09:52:39 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[ShrinkUser_DATABASESLogFile]ASBEGIN DECLARE @DBNAME NVARCHAR(MAX)DECLARE @SQL NVARCHAR(MAX)--臨時表保存數(shù)據(jù)CREATE TABLE #DataBaseServerData( ID INT IDENTITY(1, 1) , DBNAME NVARCHAR(MAX) , Log_Total_MB DECIMAL(18, 1) NOT NULL , Log_FREE_SPACE_MB DECIMAL(18, 1) NOT NULL )--游標DECLARE @itemCur CURSORSET @itemCur = CURSOR FOR SELECT name from SYS.[databases] WHERE [name] NOT IN ('MASTER','MODEL','TEMPDB','MSDB','ReportServer','ReportServerTempDB','distribution')and state=0OPEN @itemCurFETCH NEXT FROM @itemCur INTO @DBNAMEWHILE @@FETCH_STATUS = 0 BEGIN SET @SQL=N'USE ['+@DBNAME+'];'+CHAR(10) +'  DECLARE @TotalLogSpace DECIMAL(18, 1)  DECLARE @FreeLogSpace DECIMAL(18, 1)  DECLARE @filename NVARCHAR(MAX)  DECLARE @CanshrinkSize BIGINT  DECLARE @SQL1 nvarchar(MAX)SELECT @TotalLogSpace=(SUM(CONVERT(dec(17, 2), sysfiles.size)) / 128)   FROM dbo.sysfiles AS sysfiles WHERE [groupid]=0SELECT @FreeLogSpace = ( SUM(( size - FILEPROPERTY(name, ''SpaceUsed'') )) )/ 128.0  FROM sys.database_files  WHERE [type] = 1SELECT @filename=name FROM sys.database_files WHERE [type]=1SET @CanshrinkSize=CAST((@TotalLogSpace-@FreeLogSpace) AS BIGINT) SET @SQL1 = ''USE ['+@DBNAME+']''SET @SQL1 = @SQL1+ ''DBCC SHRINKFILE (['' + @filename + ''],'' + CAST(@CanshrinkSize+1 AS NVARCHAR(MAX)) + '')'' EXEC (@SQL1)' EXEC (@SQL)  FETCH NEXT FROM @itemCur INTO @DBNAME END CLOSE @itemCurDEALLOCATE @itemCurSELECT * FROM [#DataBaseServerData]DROP TABLE [#DataBaseServerData]END 

幸虧報錯信息還是很全面,根據(jù)報錯信息找到相關的數(shù)據(jù)庫,執(zhí)行一下DBCC LOGINFO

dbcc loginfo(N'cdb')

發(fā)現(xiàn)確實只有兩個VLF文件,不能再收縮了,因為是批量腳本,當其中有一個庫失敗之后,后續(xù)的庫就不會再進行收縮操作

這里只要加上數(shù)據(jù)庫的VLF數(shù)量的判斷就可以了

本文寫的不好,還請各位大俠提出寶貴意見,如有好的解決方案歡迎分享,大家共同學習進步。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新晃| 土默特右旗| 宁城县| 永春县| 额济纳旗| 繁昌县| 葫芦岛市| 高阳县| 崇义县| 邢台县| 马边| 海原县| 百色市| 津南区| 定州市| 兴文县| 武冈市| 铁岭市| 洛南县| 尼勒克县| 平顶山市| 隆德县| 科尔| 衡东县| 华坪县| 乌海市| 邵东县| 安仁县| 新邵县| 固始县| 凤山县| 镇平县| 福建省| 万载县| 邢台县| 岑溪市| 历史| 陵川县| 岱山县| 潜江市| 新平|