블로그 이미지
BJcomm
bjcomm

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
11-21 14:28

Microsoft SQL Server 2005에서는 데이터베이스의 트랜잭션 로그 파일을 축소하여 사용하지 않는 페이지를 제거할 수 있습니다.

 

데이터베이스 엔진에 의해 공간이 효율적으로 다시 사용되지만 트랜잭션 로그 파일이 예기치 않게 커지면 트랜잭션 로그 파일을 수동으로 축소해야 할 수 있습니다.

 

이 문서에서는 DBCC SHRINKFILE 문을 사용하여 SQL Server 2005 데이터베이스의 전체 복구 모델에서 트랜잭션 로그 파일을 수동으로 축소하는 방법을 설명합니다.

 

SQL Server 2005에서 트랜잭션 로그 파일을 축소하는 데 사용하는 방법은 SQL Server 2000에서 트랜잭션 로그 파일을 축소하는 데 사용하는 방법과 다를 수 있습니다.

 

 

일단, 트랜잭션 로그 파일을 축소하기 전에 로그 파일에 데이터가 들어가 있으면 축소가 되지 않으므로, 로그 파일 내에 데이터를 비우는 작업을 해야합니다.

 

트랜잭션 로그 데이터를 지우는 방법은 2가지 방법이 있습니다.

기본적으로 트랜잭션 로그는 백업을 받으면 비우게 되어있습니다.

그래서 트랜잭션 로그 백업을 진행합니다.

 

여기에서 파일로 백업을 받을 것인지 그냥 데이터만 지울것인지를 선택하면 됩니다.

 

1.트랜잭션 로그를 파일로 백업

BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>'


예> BACKUP LOG TestDB TO DISK='C:\TestDB1.bak'

 

2.트랜잭션 로그를 파일로 백업안하고 그냥 비우기

BACKUP LOG [데이터베이스명] WITH TRUNCATE_ONLY

 

위의 쿼리를 실행하면 트랜잭션 로그 파일 내의 데이터를 비우게 됩니다.

하지만, 파일크기는 그대로 이기 때문에 파일 크기를 축소해야할 필요가 있습니다.

 

트랜잭션 로그 파일 크기 축소하기

USE [데이터베이스명];
GO

DBCC SHRINKFILE (트랜잭션로그명, 파일크기(단위:MB));

GO

예> TempDB 데이터베이스의 트랜잭션 로그 파일명 templog 를 1MB 크기로 축소하는 예..

USE TempDB;
GO

DBCC SHRINKFILE (templog, 1);

GO

 

데이터베이스 파일명 찾기

sp_helpfile

GO

위의 쿼리를 실행하면 트랜잭션 로그명을 알수 있습니다.