꽉 찬 트랜잭션 로그 문제 해결(오류 9002)

업데이트: 2006년 4월 14일

이 항목에서는 트랜잭션 로그가 꽉 찼을 때 알맞은 대처 방법에 대해 설명하고 앞으로 이런 상황을 방지하기 위한 방법을 제시합니다. 트랜잭션 로그가 꽉 차면 SQL Server 데이터베이스 엔진에서 9002 오류가 발생합니다. 로그는 데이터베이스가 온라인 상태이거나 복구 중일 때 꽉 찰 수 있습니다. 데이터베이스가 온라인 상태일 때 로그가 꽉 차면 계속 온라인 상태로 유지되지만 데이터베이스를 읽을 수만 있고 업데이트할 수 없습니다. 복구 중에 로그가 꽉 차면 데이터베이스 엔진에서 데이터베이스를 RESOURCE PENDING으로 표시합니다. 두 경우 모두 사용자 작업을 통해 사용 가능한 로그 공간을 만들어야 합니다.

트랜잭션 로그가 꽉 찼을 경우 대처 방법

트랜잭션 로그가 꽉 찬 경우의 적절한 대처 방법은 로그가 꽉 차게 된 조건에 의해서도 영향을 받습니다. 지정된 경우에서 로그 잘림이 발생하지 않는 이유를 확인하려면 sys.database 카탈로그 뷰의 log_reuse_waitlog_reuse_wait_desc 열을 사용합니다. 자세한 내용은 sys.databases(Transact-SQL)를 참조하십시오. 로그 잘림을 지연시킬 수 있는 요소에 대한 자세한 내용은 로그 잘림을 지연시킬 수 있는 요소를 참조하십시오.

ms175495.note(ko-kr,SQL.90).gif중요:
데이터베이스 복구 중에 9002 오류가 발생한 경우에는 문제를 해결한 다음 ALTER DATABASE database_name SET ONLINE을 사용하여 데이터베이스를 복구합니다.

트랜잭션 로그가 꽉 찬 경우의 대처 방법으로 다음 방법을 사용할 수도 있습니다.

  • 로그 백업
  • 로그가 자동으로 증가될 수 있도록 디스크 공간 확보
  • 공간이 충분한 디스크 드라이브로 로그 파일 이동
  • 로그 파일의 크기 증가
  • 다른 디스크에 로그 파일 추가
  • 장기 실행 트랜잭션 완료 또는 중지

이러한 방법에 대해서는 다음 섹션에서 설명합니다. 해당 상황에 가장 적합한 대처 방법을 선택하십시오.

[!참고] 로그 잘림을 강제로 적용하면 로그 체인이 끊어지고 다음 전체 데이터베이스 백업 시까지 데이터베이스가 취약한 상태로 방치됩니다. 이 때문에 SQL Server의 이후 버전에서는 TRUNCATE_ONLY 옵션이 BACKUP 문에서 제거됩니다. 향후 개발 작업에서는 이 옵션을 사용하지 않도록 하고 현재 이 옵션을 사용하는 응용 프로그램은 수정하십시오.

로그 백업

전체 복구 모델 또는 대량 로그 복구 모델에서 트랜잭션 로그가 최근에 백업되지 않은 경우 백업하면 로그 잘림이 방지될 수 있습니다. 로그가 백업된 적이 없으면 데이터베이스 엔진에서 로그를 마지막 백업 시점까지 자를 수 있도록 두 개의 로그 백업을 만들어야 합니다. 로그를 자르면 새 로그 레코드를 위한 공간이 늘어납니다. 로그가 다시 꽉 차지 않게 하려면 자주 로그 백업을 수행합니다.

트랜잭션 로그 백업을 만들려면

ms175495.note(ko-kr,SQL.90).gif중요:
데이터베이스가 손상된 경우 비상 로그 백업을 참조하십시오.

디스크 공간 늘리기

다른 파일을 삭제하거나 이동하여 데이터베이스의 트랜잭션 로그 파일이 들어 있는 디스크 드라이브의 디스크 공간을 늘릴 수 있습니다. 디스크 공간에 여유가 있으면 복구 시스템이 자동으로 로그 파일을 확장할 수 있습니다.

로그 파일을 다른 디스크로 이동

현재 로그 파일이 들어 있는 드라이브에서 충분한 디스크 공간을 확보할 수 없으면 공간이 충분한 다른 드라이브로 파일을 이동하십시오.

ms175495.note(ko-kr,SQL.90).gif중요:
로그 파일은 압축 파일 시스템에 저장할 수 없습니다.

로그 파일을 이동하려면

로그 파일의 크기 증가

로그 디스크에 사용 가능한 공간이 있으면 로그 파일의 크기를 늘릴 수 있습니다.

파일 크기를 늘리려면

자동 증가를 사용하지 않으며 데이터베이스가 온라인 상태이고 디스크에서 충분한 공간을 사용할 수 있는 경우

  • 수동으로 파일 크기를 늘려 단일 증분을 생성합니다.
  • ALTER DATABASE 문으로 FILEGROWTH 옵션에 대해 0이 아닌 증분을 설정하여 자동 증가를 설정합니다.

[!참고] 두 경우 모두 현재 크기 제한에 도달하면 MAXSIZE 값을 늘리십시오.

다른 디스크에 로그 파일 추가

ALTER DATABASE <database_name> ADD LOG FILE을 사용하여 공간이 충분한 다른 디스크의 데이터베이스에 새 로그 파일을 추가합니다.

로그 파일을 추가하려면

장기 실행 트랜잭션 확인 및 관리

자세한 내용은 장기 실행 트랜잭션 관리를 참조하십시오.

참고 항목

개념

트랜잭션 로그 백업 만들기
로그 잘림을 지연시킬 수 있는 요소
복구 모델 개요
트랜잭션 로그 소개
트랜잭션 로그 백업 작업

관련 자료

ALTER DATABASE(Transact-SQL)
트랜잭션 로그 관리
sp_add_log_file_recover_suspect_db(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

새로운 내용
  • 데이터베이스 가용성에 미치는 꽉 찬 트랜잭션 로그의 영향에 대한 설명을 추가했습니다.
  • sys.database를 사용하여 꽉 찬 트랜잭션 로그의 원인을 확인하는 방법에 대한 정보를 추가했습니다.
  • 이전 "디스크 공간 부족 문제 해결" 항목의 9002 오류 해결 방법에 대한 정보를 통합했습니다.