모니터링 시스템에서 SQL Server 인스턴스를 호스팅하는 서버의 드라이브에 공간이 부족하다는 경고가 표시되었습니다. 트랜잭션 로그 파일이 매우 커졌고 파일에 사용 가능한 여유 공간이 없기 때문에 파일을 축소할 수 없는 것으로 나타났습니다. 로그 파일이 커지는 원인을 확인하려면 어떤 단계를 수행해야 합니까?
답변1
트랜잭션 로그가 통제할 수 없을 정도로 커지면 로그를 자르는 트랜잭션 로그 백업을 실행하고 있는지 확인하십시오.
오랫동안 실행되는 열린 트랜잭션으로 인해 트랜잭션 로그가 증가할 수 있습니다. SSMS(SQL Server Management Studio)의 DBCC OPENTRAN 문을 사용하여 SQL Server 인스턴스에서 가장 오래 실행되는 트랜잭션을 확인합니다. 열려 있는 트랜잭션이 있는 경우 트랜잭션이 열려 있는 연결의 session_id(SPID)를 제공합니다. 그런 다음 해당 SPID와 sp_who2 저장 프로시저를 사용하여 트랜잭션이 속한 연결을 확인할 수 있습니다. 해당 SPID를 종료할 수 있습니다.
그런 다음 데이터베이스의 복구 모델을 FULL에서 SIMPLE로 전환한 다음 데이터베이스 축소를 시도할 수 있습니다. 데이터베이스를 다시 FULL로 설정할 수 있지만 전체 백업 및 트랜잭션 로그 백업 실행을 예약해야 합니다. 그렇지 않으면 문제가 다시 발생합니다.
트랜잭션 로그가 예기치 않게 커지는 또 다른 가능한 원인은 데이터베이스가 복제/미러링에 참여하지 않고 이 데이터베이스와 다른 데이터베이스 간의 통신이 끊어지는지 확인하는 것입니다. 어떤 이유로 두 데이터베이스 간의 링크가 영향을 받는 경우 미러된 데이터베이스로부터 승인을 받을 때까지 주 데이터베이스에서 트랜잭션 로그가 계속 커집니다. 결과적으로 트랜잭션 로그가 늘어나고 공간을 다시 사용하지 않게 됩니다.