본문 바로가기

Program/DB

sql server 로그 파일 축소


-- DB 변경

USE tmp;

GO


-- 로그 파일 이름 확인

SELECT DB_NAME()

, file_id

, name

, physical_name

, *

FROM sys.database_files

WHERE type = 1


-- 로그 얼마나 사용중인지 확인

DBCC SQLPERF(LOGSPACE);


-- 로그 파일 확인

DBCC LOGINFO;


-- CHECKPOINT

CHECKPOINT


-- SIMPLE로 복구 모드 변경

ALTER DATABASE [tmp] SET RECOVERY SIMPLE WITH NO_WAIT

GO


-- 로그 파일 1메가로 축소(name 혹은 file_id로 가능)

DBCC SHRINKFILE(tmp_log, 1)


-- 로그 얼마나 사용중인지 확인

DBCC SQLPERF(LOGSPACE);


-- 로그 파일 확인

DBCC LOGINFO;


-- 로그 파일 사이즈 100메가로 변경

ALTER DATABASE [tmp] MODIFY FILE ( NAME = N'tmp_log', SIZE = 102400KB )

GO


-- 복구 모드 FULL로 변경

ALTER DATABASE [tmp] SET RECOVERY FULL WITH NO_WAIT

GO


-- FULL 백업

BACKUP DATABASE [tmp] TO  DISK = N'D:\Data\tmp_full.bak' WITH NOFORMAT, NOINIT,  NAME = N'tmp-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO


-- 로그 축소가 안된다면 상태 확인

SELECT log_reuse_wait

, log_reuse_wait_desc

, *

FROM sys.databases



관련 링크

https://technet.microsoft.com/ko-kr/library/ms178037(v=sql.105).aspx

https://docs.microsoft.com/ko-kr/sql/t-sql/database-console-commands/dbcc-shrinkfile-transact-sql