
웹사이트를 호스팅하는데 가끔 오류가 발생합니다. The log file for database '%.*ls' is full.
데이터베이스 로그 파일을 정리하려면 호스팅 공급자에게 문의해야 합니다.
로그 파일이 가득 차지 않도록 로깅을 비활성화하거나 구성하려면 어떻게 해야 합니까?
(커뮤니티 서버 엔진을 사용하고 있기 때문에 SQL 최적화를 하면 안됩니다.)
답변1
로그 파일은 데이터베이스 복구 모델에 따라 다릅니다. 기본값은 데이터베이스와 트랜잭션 로그를 백업한다는 의미인 전체입니다. 트랜잭션 로그를 백업하면 잘립니다. 트랜잭션 로그를 백업하지 않으면 영원히 커질 것입니다. 전체 데이터베이스만 백업하려면 복구 모델을 단순으로 변경하세요.
이것이 변경되면 로그 파일을 축소해야 합니다(SQL Management Studio에서 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업 > 축소 > 파일). 자동 축소로 설정할 수 있지만 기본 복구 모델 문제를 해결한 후에는 그럴 필요가 없을 수도 있습니다.
답변2
이는 오류 로그가 아닌 트랜잭션 로그를 참조하며 SQL Server에서는 비활성화할 수 없습니다. 모든 트랜잭션은 데이터베이스 무결성을 보호하기 위해 데이터베이스 자체에 변경 사항을 쓰기 전에 트랜잭션 로그에 씁니다. 데이터베이스가 전체 복구 모델(귀하의 모델인 것 같음)을 사용하는 경우 트랜잭션 로그 레코드는 트랜잭션 로그 백업(전체 백업이 아님) 후에만 덮어쓰여집니다. 복구 모델을 단순으로 변경하면 로그 기록이 더 짧은 기간 동안 유지되며 트랜잭션 로그 백업이 필요하지 않습니다. 그러나 호스팅 제공업체에 따라 이를 통제할 수 없을 수도 있습니다. 데이터베이스 설정에 대해 얼마나 많은 제어 권한이 있는지 확인하고 직접 제어할 수 없는 경우 변경을 요청해야 합니다.