1. 개요
mssql 로그 파일이 DB 파일 보다 커질때 파일 크기를 줄여야합니다. 대부분 로그파일에 있는 것은 DB반영 된 것이기 때문에 오래 저장할 필요는 없습니다. 로그 파일 줄이때 너무 적에 줄이면 필요시마다 자동증가를 하기 때문에 부하가 발생 할 수 있습니다. 서비스 운영에 적정수중으로 줄여야합니다.
또한 꼭 복구를 하지 않아도 되는 DB 라면 로그파일은 생성하지 않아도 됨
(아래 속성에서 "옵션" --> "복구모델" 에서 "단순" 으로 설정하면됨)
2. 세부 방법
* mssql 로그 파일 축소 방법
1. BACKUP LOG 'DB명' TO '디바이스명(장치명)' --로그백업
BACKUP LOG 'DB명' WITH TRUNCATE_ONLY --로그 잘라내기
/*
ex)BACKUP LOG XERP TO XERP
BACKUP LOG XERP WITH TRUNCATE_ONLY
위의 두가지 방법 모두 사용할 수 있으나 로그백업을 권장함(단순복구모델일때는 로그 잘라내기를 함)
*/
2. DBCC SHRINKFILE('로그파일명', 파일크기) -- 파일크기를 정해주어 파일을 축소하는 방법
DBCC SHRINKFILE('로그파일명', TRUNCATEONLY) -- 불필요한 로그 파일을 잘라 파일을 축소하는 방법
/*
ex)DBCC SHRINKFILE ('XERP_LOG',500)
DBCC SHRINKFILE ('XERP_LOG',TRUNCATEONLY)
DBCC LOGINFO
위의 두가지 방법 모두 사용할 수 있으니 TRUNCATEONLY를 더 권장 함
*/
--파일명 알아내기
EXEC SP_HELPFILE
SELECT * FROM SYSFILES
* MSSQL 2008 의 경우
USE [DataBase];
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE [DataBase]
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 10 MB. <- 로그파일을 10MB로 축소
DBCC SHRINKFILE ([DataBase_Log], 10);
GO
-- Reset the database recovery model.
ALTER DATABASE [DataBase]
SET RECOVERY FULL;
GO
* MSSQL 2005 의 경우
use [DB명];
sp_helpfile; <- 로그파일 정보 확인
backup log [DB명] with no_log;
dbcc shrinkfile ([로그파일명], 10); <- [로그파일명]을 10MB로 축소
* MSSQL 2000 의 경우
use [DB명];
sp_helpfile; <- 로그파일 정보 확인
backup log [DB명] with truncate_only;
dbcc shrinkfile ([로그파일명], 10); <- [로그파일명]을 10MB로 축소
(예: 총 10MB , 사용률 6MB --> 9MB 축소 실행 --> 실체 축소량 4M)
'IT > DB' 카테고리의 다른 글
FullText Indexing 사용하기 샘플 (0) | 2023.02.13 |
---|---|
MSSQL 백업 - UNC 를 이용한 네트워크 스토리지 (0) | 2023.02.13 |
[mssql] DB 메일 발송 (0) | 2023.02.10 |
[오라클] 힌트정리 (0) | 2023.02.10 |
[mssql] 특정문자로 문자열 구분하는 함수 (0) | 2023.02.10 |