본문 바로가기
DataBase/MS-SQL

[MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1)

by 너울림 2022. 12. 10.

DB 로그삭제(파일축소) - Version 2

 

DB 로그삭제(파일축소) - Version 2 단일적용(간단1)

 


포스팅 개요


Version 1에서 동적 쿼리 방식을 이용한 Version 2 방식입니다. 자세한 내용은 마지막 참고 링크를 통해 확인하시고 오늘 포스팅한 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다.

  • 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다.
  • 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다.
  • Sql Server 2005 이상을 기준으로 작성되었습니다.
  • 이전 글 Version 1 단점이었던 [DB_NAME], [DB_NAME_Log]의 명칭을 자동으로 가져와 적용하기에 더 간편해졌습니다.


예제 쿼리


이전 버전과는 다른 점은 [DB_NAME]만 정확하게 적어주면 Log 파일의 Name을 가져와서 동작한다

USE [DB_NAME]

DECLARE @sQuery as nvarchar(max)
DECLARE @LogFileName as sysname

SET @sQuery = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY SIMPLE'
EXEC (@sQuery)

SELECT [name], [recovery_model_desc] FROM sys.databases WHERE [name] = DB_NAME()

SELECT @LogFileName = [Name] FROM sys.database_files WHERE type = 1
DBCC Shrinkfile(@LogFileName, 1)

SET @sQuery = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY FULL'
EXEC (@sQuery)

SELECT [name], [recovery_model_desc] FROM sys.databases WHERE [name] = DB_NAME()

SELECT * FROM sys.database_files

실행 결과


master 데이터베이스로 테스트하였습니다. 동적쿼리로 작업이 가능하기에 스케줄에 넣고 사용하는 버전도 따로 포스팅할 예정입니다.

테스트 결과


참고 링크

 

2017.12.15 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 1 단일적용(일반)

 

[MS-SQL] DB 로그삭제(파일축소) - Version 1 단일적용(일반)

DB 로그삭제(파일축소) - Version 1 단일적용(일반) 포스팅 개요 SQL Server의 트랜잭션 로그(transaction log)가 가득 차거나 Database 파일 중. ldf 파일 크기가. mdf 파일에 비해 지나치게 커졌다면 오늘 포스

ullim.net

2022.12.22 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2)

 

[MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2)

DB 로그삭제(파일축소) - Version 3 단일적용(간단2) 포스팅 개요 이전 Version과 큰 차이점은 데이터베이스 이름을 변수로 받아 사용하기 위한 전체적인 구문 변환입니다. 자세한 내용은 마지막 참고

ullim.net

2022.12.23 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용

 

[MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용

DB 로그삭제(파일축소) - Version 4 일괄적용 포스팅 개요 서버의 모든 DB 정보를 불러오는 'sys.databases' 테이블을 참고하여 모든 사용자 DB의 로그 삭제(축소) 작업을 일괄로 진행하는 쿼리입니다. 그

ullim.net

 

댓글