본문 바로가기

asp,ms-sql

ms-sql transation log 줄이기

728x90

use master
--데이터베이스의 로그 비우기
backup log 해당디비 With TRUNCATE_ONLY

구문을 수행해서 로그의 내용을 비우시고 그후

use 해당디비
--DB의 로그데이터베이스 크기를 5M로 줄인다.
DBCC SHRINKFILE (해당디비_Log, 5)
GO

안되시나요? 안될리 없습니다. 꼭 성공하세요..~~

 


현재 트랜젹션로그파일이 700M정도 되는데요..
이걸 줄이고 싶습니다.
log에서 사용된 공간이 700정도이고 빈공간은 얼마 되지 않습니다.
이 log파일을 몇 십메가정도로 줄일려면 어떻게 해야 하나요?

 

Re: 로그 백업을 받으셔야지요.. 강효용 / khrone  
       
 
 
안녕하세요? 로그백업을 받으셔야지요.. 안그러시면 로그가 무한정 늘어나게 됩니다.
트랜잭션 로그의 경우는 로그 백업을 하고 나면 백업된 부분은 원래의 로그 디스크에서 지워지게 됩니다.
기본적인 구문은
Backup LOG DBname to Backupdevice
입니다 자세한 설명은 북스 온라인을 참조 하시고요..

그냥 무작정 로그만 비우고 싶다 하시면.
Backup LOG DBname with NO_LOG 를 사용하시면 됩니다.
그럼 이만

 

Re: 로드 파일(ldf)의 크기를 줄이고 싶으시다면............ 김태우 / soverain  
       
 
 
단순히 비우는게 아니라 크기를 줄이고 싶으시다면요.....

DBCC SHRINKFILE (pubs_log, TRUNCATEONLY)

명령으로 로그를 비워낸후 불필요하게 커져버린 로그 화일의 크기를 줄일 수 있습니다

그리고 좀더 확실한 방법으로

EXEC sp_detach_db 'pubs2', 'true'

(해당하는 DB를 detach로 떼어냅니다.)


잠시 ldf 화일의 이름을 바꿔 두세요..만약을 위해서 지우지는 마세요..나중에 작업이 완료 된후 지워도 되잖아요...

EXEC sp_attach_single_file_db 'pubs', 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'

이건 mdf 화일만으로 다시 붙이는 명령입니다.

이렇게 하면 ldf(로그 화일)화일은 최소크기인 1M로 재생성됩니다.
위에서 ldf파일의 이름을 안바꿔 주시면 새로운 ldf파일이 생성될때 이름이 같으니까 에러가 납니다.

참고로 이건 코난님의 강좌에서 본겁니다..헤헤...저도 많은 도움 받았습니다......

그리고 이작업을 하시기전에.....꼭 풀 백업 받는거 잊지마세요..
혹시 잘못되면...ㅡㅡ;;  .................


출처 : http://blog.naver.com/soonhg/40031998785







사용예


use master
--데이터베이스의 로그 비우기
backup log neweip With TRUNCATE_ONLY
--구문을 수행해서 로그의 내용을 비우시고 그후
use neweip
--DB의 로그데이터베이스 크기를 5M로 줄인다.
DBCC SHRINKFILE (neweip_Log, 5)
GO