DBAtlas · 데이터베이스 운영 아틀라스

9002: The transaction log for database is full due to ...

SQL Server

의미

데이터베이스의 트랜잭션 로그 파일이 가득 차 새 트랜잭션을 로깅할 수 없다. 데이터베이스는 쓰기를 거부하며 읽기 전용처럼 동작할 수 있다.

원인

FULL 복구 모델에서 로그 백업 없음, 오래 열린 트랜잭션, 복제/AlwaysOn 지연, 또는 로그가 증가할 수 없음(autogrow 비활성화 또는 디스크 가득 참). log_reuse_wait_desc가 원인을 보여 준다.

해결 방법

sys.databases의 log_reuse_wait_desc를 확인한다. FULL 모델에서 LOG_BACKUP이면 로그 백업(BACKUP LOG)을 수행한다. ACTIVE_TRANSACTION이면 열린 트랜잭션을 찾아 커밋/롤백한다(DBCC OPENTRAN). 디스크 공간을 확보하거나 로그 파일의 autogrow 설정을 수정한다. 로그가 실제로 커졌다면 백업 후 DBCC SHRINKFILE로 축소한다. 로그 체인이 필요 없다면 복구 모델을 검토한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목