이 항목에서는 전체 트랜잭션 로그에 대한 가능한 응답에 대해 설명하고 나중에 이를 방지하는 방법을 제안합니다. 트랜잭션 로그가 꽉 차면 SQL Server 데이터베이스 엔진이 9002 오류를 표시합니다. 데이터베이스가 온라인 또는 복구 중일 때 로그를 채울 수 있습니다. 데이터베이스가 온라인일 때 로그가 채워지면 데이터베이스는 온라인 상태를 유지하지만, 읽기만 가능하고 업데이트할 수 없습니다. 복구 중에 로그가 채워지면 데이터베이스 엔진은 데이터베이스를 RESOURCE PENDING으로 표시합니다. 두 경우 모두 로그 공간을 사용할 수 있도록 하려면 사용자 작업이 필요합니다.
전체 트랜잭션 로그에 응답
전체 트랜잭션 로그에 대한 적절한 응답은 로그를 채우게 한 조건 또는 조건에 따라 부분적으로 달라집니다. 지정된 사례에서 로그 잘림을 방지하는 것을 검색하려면 sys.database 카탈로그 뷰의 log_reuse_wait 및 log_reuse_wait_desc 열을 사용합니다. 자세한 내용은 sys.databases(Transact-SQL)를 참조하세요. 로그 잘림을 지연할 수 있는 요인에 대한 설명 은 트랜잭션 로그(SQL Server)를 참조하세요.
중요합니다
9002 오류가 발생했을 때 데이터베이스가 복구 중이면 문제를 해결한 후 ALTER DATABASE database_name SET ONLINE을 사용하여 데이터베이스를 복구합니다.
전체 트랜잭션 로그에 응답하기 위한 대안은 다음과 같습니다.
로그 백업
로그가 자동으로 증가할 수 있도록 디스크 공간을 확보합니다.
충분한 공간이 있는 디스크 드라이브로 로그 파일을 이동합니다.
로그 파일의 크기를 늘입니다.
다른 디스크에 로그 파일 추가
장기 실행 트랜잭션 완료 또는 종료
이러한 대안은 다음 섹션에서 설명합니다. 상황에 가장 적합한 응답을 선택합니다.
로그 백업
전체 복구 모델 또는 대량 로그 복구 모델에서 트랜잭션 로그가 최근에 백업되지 않은 경우 백업이 로그 잘림을 방지하는 것일 수 있습니다. 로그가 백업된 적이 없으면 데이터베이스 엔진에서 로그를 마지막 백업 시점까지 자를 수 있도록 두 개의 로그 백업을 만들어야 합니다. 로그를 자르면 새 로그 레코드를 위한 공간이 늘어납니다. 로그가 다시 꽉 차지 않게 하려면 자주 로그 백업을 수행합니다.
트랜잭션 로그 백업을 만들려면
중요합니다
데이터베이스가 손상된 경우 Tail-Log 백업(SQL Server)을 참조하세요.
디스크 공간 확보
다른 파일을 삭제하거나 이동하여 데이터베이스에 대한 트랜잭션 로그 파일이 포함된 디스크 드라이브의 디스크 공간을 확보할 수 있습니다. 해제된 디스크 공간을 사용하면 복구 시스템에서 로그 파일을 자동으로 확대할 수 있습니다.
로그 파일을 다른 디스크로 이동
현재 로그 파일이 포함된 드라이브의 디스크 공간을 충분히 확보할 수 없는 경우 충분한 공간이 있는 다른 드라이브로 파일을 이동하는 것이 좋습니다.
중요합니다
로그 파일은 압축된 파일 시스템에 배치해서는 안 됩니다.
로그 파일을 이동하려면
로그 파일 크기 늘리기
로그 디스크에 공간을 사용할 수 있는 경우 로그 파일의 크기를 늘릴 수 있습니다. 로그 파일의 최대 크기는 로그 파일당 2TB(테라바이트)입니다.
파일 크기를 늘리려면
자동 증가를 사용하지 않도록 설정하면 데이터베이스가 온라인 상태이고 디스크에서 충분한 공간을 사용할 수 있습니다.
수동으로 파일 크기를 늘려 단일 증분을 생성합니다.
ALTER DATABASE 문을 사용하여 FILEGROWTH 옵션에 대해 0이 아닌 크기 증분을 설정하여 자동 증가 기능을 켜려면.
비고
두 경우 모두 현재 크기 제한에 도달한 경우 MAXSIZE 값을 늘입니다.
다른 디스크에 로그 파일 추가
ALTER DATABASE database_name ADD LOG FILE을 사용하여 충분한 공간이 있는 다른 디스크의 데이터베이스 <> 에 새 로그 파일을 추가합니다.
로그 파일을 추가하려면
또한 참조하십시오
ALTER DATABASE(Transact-SQL)
트랜잭션 로그 파일의 크기 관리
트랜잭션 로그 백업(SQL Server)
sp_add_log_file_recover_suspect_db(Transact-SQL)