본문 바로가기
IT/MSSQL

MSSQL 로그 쉬링크(shrink)작업

by 베베야 2020. 8. 28.
728x90

빈 쿼리창을 열고

아래의 DBNAME 만 변경해서 실행하면 자동 축소가 진행된다.

 

 

USE [DBNAME]
------------------------------------------------------------------------------
GO
-- Declare variables
DECLARE @SqlStatement as nvarchar(max)
DECLARE @LogFileLogicalName as sysname

-- 2) Alter the database to simple recovery
SET @SqlStatement = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY SIMPLE'
EXEC ( @SqlStatement )

-- 3) Make sure it has been altered
SELECT [name], [recovery_model_desc] FROM sys.databases WHERE [name] = DB_NAME()

-- 4) Set the log file name variable
SELECT @LogFileLogicalName = [Name] FROM sys.database_files WHERE type = 1 AND type_desc='LOG'
--SELECT @LogFileLogicalName AS'논리적 로그파일 이름'

-- 5) Shrink the logfile
DBCC Shrinkfile(@LogFileLogicalName, TRUNCATEONLY) --**(로그 파일을 크기를 유지하여 공간이 부족시 자동으로 늘어나는 부하를 방지하기위해 쉬링크전 로그파일의 크기와 동일하게 맞추는것을 권장) 2,427

-- 6) Alter the database back to FULL
SET @SqlStatement = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY FULL'
EXEC ( @SqlStatement )

-- 7) Make sure it has been changed back to full
SET @SqlStatement = 'SELECT [name], [recovery_model_desc] FROM ' + DB_NAME() + '.sys.databases WHERE [name] = ''' + DB_NAME() + ''''
EXEC ( @SqlStatement )

-- 8)로그파일 축소 확인
SET @SqlStatement = 'SP_HELPDB ' + DB_NAME()
EXEC ( @SqlStatement )
-- 9)로그파일에 대한 정보
DBCC LOGINFO WITH TABLERESULTS, NO_INFOMSGS -- 사용량 : DBCC SQLPERF(LOGSPACE);

반응형
그리드형

댓글