※ 시행착오가 그대로 포함되어 있습니다. 정확한 방법을 원하신다면 전체 글을 읽고 나서 적용해보세요. 마지막에는 성공했습니다. ^^;
※ 참고한 곳은 http://jkmoon.tistory.com/90 블로그입니다.
기본 구문
[로그 크기 확인]
[로그 파일 정보 확인]dbcc sqlperf(logspace)
use [데이터베이스명];
exec sp_helpfile;
시도 1
유지 관리 계획 만듦.
도구 상자에서 T-SQL 문 실행 태스크를 끌어 옴. 편집 기능 활용.
[T-SQL문 실행 태스크]
USE [ShopDB];
GO
— Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE [ShopDB]
SET RECOVERY SIMPLE;
GO
— Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE ([ShopDB_Log], 1);
GO
— Reset the database recovery model.
ALTER DATABASE [ShopDB]
SET RECOVERY FULL;
GO
실행해봄.
유지 관리가 실행됨.
오류남 ;; ‘실행하지 못했습니다.’를 클릭.
하위 계획 1을 수행하지 못했다고 한다.
에러를 상세히 봄.
시도2
새 쿼리를 만들어서 다시 해 봄.
문제 없는데? 왜 안되지?
처음에 비하면 좀 줄어들었는데. 왜 안되는걸까?
시도3
Database SelectionType을 All로 바꿔봤다.(여전히 안 되더라.)
‘지정된 연결 관리자가 없습니다’ no connection manager is specified maintenance plan 으로 검색했다.
유지 관리 계획(연결 관리)
연결 관리 대화 상자를 사용하여 유지 관리 계획에서 사용하는 연결의 속성을 지정할 수 있습니다. 유지 관리 계획을 만들면 해당 계획을 만든 서버에 대한 로컬 연결이 생성됩니다. 이 연결을 사용하여 이 로컬 연결에 대한 태스크를 수행하는 작업을 만들 수 있습니다. 필요하면 연결 관리 대화 상자를 사용하여 연결을 추가합니다. 추가 연결을 구성하면 각 태스크의 연결 상자에 해당 연결이 나타납니다.출처: <https://msdn.microsoft.com/ko-kr/library/ms188214.aspx>
SQL Server 에이전트 작업
MSSQL에서 반복적인 작업을 수행해야 할 필요성이 있다면, SQL Server 에이전트의 작업을 통해 예약작업을 적용할 수 있습니다.
시도4 (거의 성공에 근접)
이런 게 있네!
새 작업 만들기
테스트.
단계에서 새로 만들기
명령어를 넣고 [구문 분석] 단추 클릭
일정도 새로 만들기
매일 오전 12:00:00에 되풀이되도록 설정.
[테스트해보기]
DB Log를 0으로 축소하도록 고침.
현재는 이렇다.
작업이 이뤄진 이후, 기록 보기
작업이 성공했다고 한다. 실제 로그는 얼마나 줄었을까?
에잉 잘 모르겠다. msdb의 로그를 줄여보자.
MSDBData 와 MSDBLog가 있다.
이렇게 고쳤다.
USE [MSDB];
GO
— Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE [MSDB]
SET RECOVERY SIMPLE;
GO
— Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE ([MSDBLog], 0);
GO
— Reset the database recovery model.
ALTER DATABASE [MSDB]
SET RECOVERY FULL;
GO
구문 분석도 완료.
잘 실행됨. 어디 결과를 볼까?
성공!
[Before][After]
오우 줄었다!! 5MB 정도에서 0.4MB로 ㅋㅋㅋ
이걸로 하면 되겠다. 다만 줄일 로그의 크기는 0이 아니라 10MB로 하자.
SQL Server 에이전트 작업 좋아요!