문제

다음과 같은 문제가 있습니다. 우리는 데이터베이스에 바이너리를 저장하는 데이터베이스가 있습니다. 우리는 데이터베이스의 크기가 커질 수 있다는 것을 알고 있으므로 데이터베이스에서 모든 바이너리를 제거하고 "수축"작업을 사용했습니다. 이런 식으로 우리는 데이터베이스가 훨씬 작기를 바랐습니다. 결과는 다음과 같습니다.

제거 크기 전 : 제거 크기 후 20 기가 바이트는 다음과 같습니다.

이제 13 공연이 어디에서 왔는지 모르겠습니다. 데이터베이스에서 가장 큰 테이블은 로그 텍스이며 1.3 공연은 모든 나머지 결합이 200MB를 사용하지 않습니다.

로그 파일에 수축 작업이 제거 할 수없는 데이터가 여전히있을 수 있습니까? 이 문제에 대한 해결책이 있습니까?

도움이 되었습니까?

해결책

복구 모델이 "완전"이고 백업되지 않은 경우 트랜잭션 로그를 축소하지 않은 경우 여전히 커질 수 있습니다.

상황에 따라 트랜잭션 로그를 축소하는 가장 쉬운 방법 중 하나는 복구 모델을 단순하게 설정 한 다음 트랜잭션 로그 파일을 축소 한 다음 복구 모델을 전체적으로 다시 설정하는 것입니다. 시간 복구 시점이 필요할 수 있으며 대신 거래 로그의 백업을 수행해야합니다.

다른 팁

공간 사용에 대한 자세한 정보를 얻으려면 다음을 시도 할 수 있습니다.

EXEC sp_spaceused;

Robin Day의 조언을 받고 로그를 축소 한 후 로그를 작게 유지하지 않기 때문에 데이터베이스 백업이 아니라 트랜잭션 로그 백업을 설정하십시오 (데이터베이스 백업은 로그를 작게 유지하지 않기 때문에)를 기억하십시오. 거래 로그는 15 분마다 백업됩니다. 실패가없는 경우 손실 할 수있는 데이터의 양에 따라 일정이 다소 빈번해야 할 수 있습니다. 최소한 로그를 합리적인 크기로 유지하기 위해 매일 로그 백업을 수행했습니다.

한 가지 가능성은 데이터를 삭제 한 테이블이 힙 (클러스터 인덱스가 없음)이며 힙에서 삭제할 때 테이블에 할당 된 공간이 반드시 해제되지는 않을 것입니다. MS 에서이 기사를 확인하십시오. http://support.microsoft.com/kb/913399

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top