dbms:mssql:admin:logresize
문서의 이전 판입니다!
MS-SQL 파일관리
파일정책
- MSSQL은 데이타파일(mdf)과 트랜잭션로그파일(ldf) 로 구성되어 있습니다.
- mdf 파일은 데이타베이스에 저장되는 실데이타를 의미합니다.
- ldf 파일은 데이타를 이용한 읽기,쓰기,수정,삭제 등의 모든 로그를 기록합니다.
- 특정데이타에 대한 입출력 작업이 반복되면, ldf 파일이 mdf 파일에 비해 엄청나게 커질 수 있습니다.
이런 경우는 주로 잘못된 프로그래밍 또는 오류로 인한 무한루프에 의해 급증하는 경우도 있으므로 확인해 보셔야 합니다.
복구정책
- mdf 파일만 가지고도 복구가 가능합니다.
하지만 권장하지는 않습니다. - 기본정책은 ldf 용량을 줄여가면서 백업파일을 가지고 계셔야 합니다.
ldf 파일사이즈 줄이기
- admindb 라는 데이타베이스가 있다고 가정하고 이야기 하겠습니다.
- 디비를 선택합니다.
USE admindb - 로그파일 정보를 확인합니다.
dbcc loginfo
- 데이타베이스가 사용하는 mdf,ldf 파일경로,이름,크기를 확인합니다.
EXEC sp_helpfile - 디이타베이스가 사용하는 로그를 백업합니다.
backup Log admindb TO disk='c:\dbbackup\admindb.20080124.bak'
- 트랜잭션 로그파일을 최소의 단위로 축소합니다.
backup log admindb WITH truncate_only - 트랜젹션 로그파일을 삭제합니다.
backup log admindb WITH no_log - 트랜잭션 로그파일을 20M로 생성합니다.
일반적으로 DB명_log 로 기술된다.dbcc shrinkfile(admindb_log,20)
- mdf, ldf 파일의 resizing을 확인합니다.
EXEC sp_helpfile
고급팁
트랜잭션 로그파일 최대값 설정
- 갑작스러운 트랜잭션 로그파일의 증가로 문제가 되는 것을 방지하기 위해서 트랜잭션 로그파일의 최대크기를 지정해 놓습니다.
- 아래의 명령을 수행하면 트랜잭션 로그는 200M를 한계치로 생성→삭제됩니다.
- 트랜잭션로그의 용량은 데이터의 중요도 및 규모에 따라 정책적으로 유지하셔야 하는 부분입니다.
ALTER DATABASE admindb MODIFY file ( name = admindb_log, maxsize = 200mb ) GO
shrinkdatabase 명령
- admindb 데이타베이스를 파일에 2%의 여유공간이 남도록 크기를 줄이는 예제이다.
dbcc shrinkdatabase(admindb,2,truncateonly)
dbms/mssql/admin/logresize.1199756144.txt.gz · 마지막으로 수정됨: 저자 starlits
