- Enterprise Manager
     1) 자료를 백업해둡니다. 만일의 사태에 대비해서...
     2) truncate log 해서 자료를 정리해줍니다.

   - Query Analyzer
     1)sp_detach_db pub
       : pub를 데이터베이서에서 분리 시킵니다. drop과는 완전히 다르지요
         drop은 데이터와 로그파일을 모두 지는데 반해 sp_detach_db는
         데이터와 로그파일은 살려둔 상태에서 등록된 DB만 분리시킵니다.

     2)이 상태에서 자료가있는 폴더로 가서 pub.ldf파일을 지웁니다.

     3)sp_attach_single_file_db 'pub', 'c:\mssql7\data\pub.mdf'
       : 이렇게하시면 작업은 다하신거네요.
         Enterprise Manager에 가서 리프래쉬 시키시면 pub database가
         다시 올라와있는 것이 보이실겁니다.
         탐색기로 가셔서 log 파일의 용량을 확인해 보시면..
         최초의 log 상태 크기로 돌아가 있을 겁니다.

- 아마도 로그파일이 너무 커졌을때, 대처방법에 대해서 찾다가 알아낸듯...

출처는 까먹었습니다. 알려주시면 바로 올릴게요.
죄송합니다.

  1. Favicon of http://offree.net/ BlogIcon 도아 2007.10.08 12:19

    최근 글은 모두 SQL에 대한 글이군요. 저도 한때는 자주 사용했었는데 요즘은 거의 사용하지 않고 있습니다.

    제 블로그에 답글을 달아 주신 분들(http://offree.net/entry/Greetings-Reply )을 순회하고 있습니다. 소중한 댓글 감사합니다.

과다한 DB 로그 지우기
이거 써서 어떤 문제가 생길지도 난 모른다.. -_-

우선 DB백업 후 하기!

backup log DB명 with no_log  -- 로그지우기....
dbcc shrinkfile(DB명_LOG,10) -- 10M로 로그파일 축소...
순서대로 해야 한다
SP_HELPDB DB명으로 확인

------- 예 -------
backup log MyDB with no_log -- MyDB로그지우기
dbcc shrinkdatabase(MyDB,1) -- MyDB로그 파일을 1MB

--exec SP_REBUILD_INDEX
--go
backup log MyDB with truncate_only -- MyDB변경
dbcc shrinkdatabase (MyDB) -- MyDB변경
DBCC SQLPERF (LOGSPACE)
xcopy
/exclude 옵션을 사용하자

이 옵션을 사용하면 특정폴더 or 파일을 복사시 제외시킨다.
(전, 이걸 이용해서 DB파일은 제외시키고 복사합니다.)

사용방법
제외할 폴더명, 파일명을 out.txt (파일명 알아서 하세요)에 넣어둡니다.
한줄에 하나씩..
\database\
.ldf
.mdf

그리고, xcopy /exclude:out.txt를 합니다.
그럼 알아서 제외하고 복사해갑니다.

위대로 했는데 않되시면, 네이버 지식IN에 물어봐주세요.

+ Recent posts