트랜잭션 로그 삭제

DB 2012. 10. 30. 16:53 |
 

 데이터베이스의 로그 파일이 꽉 찼습니다. 데이터베이스의 트랜잭션 로그를 백업하여 사용 가능한 일부 공간을 확보 하십시오.."

위와 같은 메세지가 나오면 디비는 물론 사이트도 열리지 않습니다.

할당된 트랜잭션로그 파일이 꽉차서 더이상 로그를 기록하지 못하는 경우 입니다.
그렇다고 로그파일의 크기를 너무 크게 잡거나, 자동증가토록 한후 백업을 받지 않으면, 로그파일이 수백메가 이상 커지게 됩니다.


트랜잭션 로그는 다음과 같이 삭제할 수 있습니다.

1. MS-SQL의 클라이언트 유틸리티 중 쿼리 분석기를 실행
2. 쿼리 분석기에서 해당 DB로 연결
3. 쿼리 창이 나타나면 다음 사항을 입력

backup log DB명 with no_log
dbcc shrinkdatabase(DB명, truncateonly)


mssql 2008 에서는 아래와같이 ...

backup log DB명 to disk='c:\DB명.trn'
dbcc shrinkfile('DB명_log',2)

4. 입력이 끝나면 쿼리 분석기의 상단부분 매뉴 중 [쿼리]-[실행]을 눌러 실행합니다.


다음과 같은 메세지 나오고 위 방법으로 안되는경우
DBCC SHRINKDATABASE: File ID 1 of database ID 8 was skipped because the file does not have enough free space to reclaim.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

아래처럼 하기

USE dbname
BACKUP LOG dbname TO DISK = 'C:\x\dbname.trn'
--First param below is fileno for log file, often 2. Check with sys.database_files
--Second is desired size, in MB.
DBCC SHRINKFILE(2, 500)
DBCC SQLPERF(LOGSPACE) --Optional
DBCC LOGINFO --Optional

'DB' 카테고리의 다른 글

Agent XPs 서비스 활성화  (0) 2013.04.02
파일 내용을 insert 하기  (0) 2012.10.30
테이블합치기 - union  (0) 2012.10.30
쿼리로 도스명령어 실행  (0) 2012.10.30
마지막 insert 한 id 꺼내오기  (0) 2012.10.30
Posted by ezmind
: