DB 로그삭제(파일축소) - Version 3 단일적용(간단2)
포스팅 개요
이전 Version과 큰 차이점은 데이터베이스 이름을 변수로 받아 사용하기 위한 전체적인 구문 변환입니다. 자세한 내용은 마지막 참고 링크를 통해 이전 Version의 내용을 확인하시면 됩니다. 그럼 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다.
- 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다.
- 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다.
- Sql Server 2005 이상을 기준으로 작성되었습니다.
- 이전 Version들과의 실행 결과 부분에서는 큰 차이가 없습니다만 사용자 프로시저로 생성하기 더 쉬워졌으며 다른 방향으로의 활용도 가능해졌습니다.
예제 쿼리
이전 버전과는 다른 점은 DB_NAME을 변수 Varchar로 받아서 사용가능합니다.
DECLARE @SqlStatement as nvarchar(max)
DECLARE @DBName VARCHAR(20)
--데이터베이스 이름을 변수로 지정
SET @DBName = 'master'
EXEC ('ALTER DATABASE ' + @DBName + ' SET RECOVERY SIMPLE')
EXEC ('SELECT [name], [recovery_model_desc] FROM ' + @DBName + '.sys.databases WHERE [name] = ''' + @DBName + '''')
SET @SqlStatement = 'DECLARE @LogFileLogicalName as SYSNAME;'
SET @SqlStatement = @SqlStatement + 'SELECT @LogFileLogicalName = [Name] FROM ' + @DBName + '.sys.database_files WHERE type = 1;'
SET @SqlStatement = @SqlStatement + 'DBCC Shrinkfile(@LogFileLogicalName, 1)'
EXEC ('USE '+ @DBName + ';' + @SqlStatement )
EXEC ('ALTER DATABASE ' + @DBName + ' SET RECOVERY FULL')
EXEC ('SELECT [name], [recovery_model_desc] FROM ' + @DBName + '.sys.databases WHERE [name] = ''' + @DBName + '''')
EXEC ('SELECT * FROM ' + @DBName + '.sys.database_files')
실행 결과
master 데이터베이스로 테스트하였습니다. 이제 필요에 따라 사용자 프로시저로 생성하여 유동적인 접근이 가능해졌습니다.
참고 링크
2017.12.15 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 1 단일적용(일반)
2022.12.10 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1)
2022.12.23 - [DataBase/MS-SQL] - [MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용
'DataBase > MS-SQL' 카테고리의 다른 글
[MS-SQL] 그룹별 ROW(행) 문자열 결과 합치기 (STUFF, FOR XML PATH 활용) (0) | 2023.01.03 |
---|---|
[MS-SQL] 중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기 (0) | 2023.01.02 |
[MS-SQL] 다중 레코드 INSERT 하기 (0) | 2022.12.24 |
[MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용 (0) | 2022.12.23 |
[MS-SQL] 물리적인 테이블 크기 확인하기 (0) | 2022.12.18 |
[MS-SQL] 특정 컬럼(Column)의 정보를 이용하여 테이블 검색 (0) | 2022.12.14 |
[MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1) (0) | 2022.12.10 |
[MS-SQL] 문자열의 자음(초성) 추출 함수 만들기 (2) | 2022.03.21 |
댓글