현재 d드라이브 용량이 4.5테라인데요
어쩌저차 해서 용량관리 안했더니 mdf파일이 4테라가 넘어갔네요
DB의 데이터중 사용 안하는 데이터를 삭제하고나서 데이터 보고서를 돌려보니 약 전체공간의 54%을 사용하고 있더군요 그래서 넉넉하게
60%남기고 나머지 40%를 윈도우로 반환할려고 합니다
그래서 찾아본결과 mssql 고유 기능으로 축소기능을 사용했는데요
데이터가 줄지않더군요 그래서 직접 명령을 찾아 시도를 했습니다
찾아보니 DB 잔여공간을 윈도우로 반환하기 위해서는
DBCC SHRINKFILE(PRODUCT_DB,NOTRUNCATE)으로 데이터를정렬하고나서 DBCC SHRINKFILE(PRODUCT_DB, TRUNCATEONLY)를 하여 뒤의 잔여 공간을 삭제하는 방식이 있더군요
현재 DB에 맞게 적용하여 실행하니 NOTRUNCATE구문은 오류가 발생하여 정렬이 안되서 일단 지워보자해서 TRUNCATEONLY구문을 돌리니 정상적으로 완료가 되었지만 미미 하게 줄어들긴 했습니다
그래서 NOTRUNCATE 구문을 사용할때 다른 작업이 있었어서 오류가 난듯 싶어서 단일 사용자모드로 해서 돌려봤지만 똑같이 오류로 실패를 하네요
혹시나해서 구글링좀 해보았으나 에러에 대한 정보는 안보이네요 ㅠㅠ...
제가하는 방식이 잘못된건지 아니면 다른 옵션을 건들어야 하는지 감이 안오네요
모바일로 급하게 작성하느라 죄송합니다 ㅠㅠ
Comment 3
-
catchv
2019.01.30 16:39
-
더블제니
2019.01.30 20:18
에러코드는
메세지 0 수준 11 상태 0 줄 0
현재 명령에서 서버 오류가 발생했습니다. 결과가 있을 경우 이를 무시해야 합니다
이것뿐입니다 -
신기섭_293593
2019.02.11 13:19
TruncateOnly 옵션 말고 직접 사이즈 (MB)를 지정해서 해보세요.
ex) Dbcc Shrinkfile ('JOB_Data',4000)
DB용량이 크면 오래걸리니 서비스 시간에는 안하는게 좋구요.
MDF 파일을 줄이기 위해서는 데이터 이동(재정렬)이 선행되어야 합니다.
데이터 이동이 없으면 SHRINK는 마지막 남은 공간 이외에는 반환이 불가능합니다.
데이터 이동은 사이즈가 크다면 상당히 오랜 시간이 걸릴 수 있습니다.
에러( 메세지 및 에러코드)를 남겨주시면 많은 고수분들이 문제점을 알려 드릴 겁니다.