사용자 도구

사이트 도구


dbms:mssql:admin:logresize

MS-SQL 파일관리

파일정책

  1. MSSQL은 데이타파일(mdf)과 트랜잭션로그파일(ldf) 로 구성되어 있습니다.
  2. mdf 파일은 데이타베이스에 저장되는 실데이타를 의미합니다.
  3. ldf 파일은 데이타를 이용한 읽기,쓰기,수정,삭제 등의 모든 로그를 기록합니다.
  4. 특정데이타에 대한 입출력 작업이 반복되면, ldf 파일이 mdf 파일에 비해 엄청나게 커질 수 있습니다.
    이런 경우는 주로 잘못된 프로그래밍 또는 오류로 인한 무한루프에 의해 급증하는 경우도 있으므로 확인해 보셔야 합니다.

복구정책

  1. mdf 파일만 가지고도 복구가 가능합니다.
    하지만 권장하지는 않습니다.
  2. 기본정책은 ldf 용량을 줄여가면서 백업파일을 가지고 계셔야 합니다.

ldf 파일사이즈 줄이기

  1. admindb 라는 데이타베이스가 있다고 가정하고 이야기 하겠습니다.
  2. 디비를 선택합니다.
    USE admindb
  3. 로그파일 정보를 확인합니다.
    dbcc loginfo
  4. 데이타베이스가 사용하는 mdf,ldf 파일경로,이름,크기를 확인합니다.
    EXEC sp_helpfile
  5. 디이타베이스가 사용하는 로그를 백업합니다.
    backup Log admindb TO disk='c:\dbbackup\admindb.20080124.bak'
  6. 트랜잭션 로그파일을 최소의 단위로 축소합니다.
    backup log admindb WITH truncate_only
  7. 트랜젹션 로그파일을 삭제합니다.
    backup log admindb WITH no_log
  8. 트랜잭션 로그파일을 20M로 생성합니다.
    일반적으로 DB명_log 로 기술된다.
    dbcc shrinkfile(admindb_log,20)
  9. mdf, ldf 파일의 resizing을 확인합니다.
    EXEC sp_helpfile

고급팁

트랜잭션 로그파일 최대값 설정

  1. 갑작스러운 트랜잭션 로그파일의 증가로 문제가 되는 것을 방지하기 위해서 트랜잭션 로그파일의 최대크기를 지정해 놓습니다.
  2. 아래의 명령을 수행하면 트랜잭션 로그는 200M를 한계치로 생성→삭제됩니다.
  3. 트랜잭션로그의 용량은 데이터의 중요도 및 규모에 따라 정책적으로 유지하셔야 하는 부분입니다.
    ALTER DATABASE admindb MODIFY file ( name = admindb_log, maxsize = 200mb ) 
    GO

shrinkdatabase 명령

  1. admindb 데이타베이스를 파일에 2%의 여유공간이 남도록 크기를 줄이는 예제이다.
    dbcc shrinkdatabase(admindb,2,truncateonly)
dbms/mssql/admin/logresize.txt · 마지막으로 수정됨: 2008/11/10 00:13 저자 starlits