2017-09-20 17 views
1

조직에서 일하기 때문에 로그 파일을 축소 할 수없는 문제가 발생했습니다. SQL 서버 데이터베이스가 600GB 하드 디스크 드라이브 중 400GB를 사용 중입니다. 로그 파일 크기는 약 350GB입니다.SQL Server의 로그 파일 축소시 파일 크기가 변경되지 않았습니다.

로그 파일 크기가 줄어들지 만 크기는 동일하게 유지됩니다. 데이터베이스의 복구 모델은 간단합니다.

로그 파일을 백업하고 축소하려고 시도한 제안이있는 온라인 게시물을 보았습니다. 로그 백업을 저장하기에 드라이브에 충분한 여유 공간이 없습니다 (참고 : 내 시스템에서 드라이브를하고 외장 드라이브에서 백업을 수행하지 않아도됩니다.)

이 전체 DB를 다른 드라이브로 옮길 수 있습니까? 모든 솔루션?

+2

'SELECT log_reuse_wait_desc FROM sys.databases'입니다. 또한 SMSS에서'DBCC SHRINKFILE' (GUI가 아닌 스크립트)을 실행하고 어떤 메시지가 출력되는지보십시오. 로그 파일을 축소 할 수없는 경우 그 이유를 알려줍니다. –

답변

0

열려있는 거래가 있습니다. 모든 연결을 종료 한 다음 다시 시도하십시오.

0

로그 파일 크기가 줄어들지 만 크기는 동일하게 유지됩니다. 내 데이터베이스의 복구 모델은 간단합니다.

로그 파일을 백업하고 압축을 시도 할 제안이있는 온라인 게시물을 보았습니다.

데이터베이스가 SIMPLE 인 경우 로그 백업을 할 수 없습니다.

대신 한 번 이상 실행해야합니다 : log_reuse_wait_descNOTHING/CHECKPOINT을 표시 할 때

CHECKPOINT; DBCC SHRINKFILE... 

이 경우에 도움이 될 것입니다. 그것은 아무것도 표시되면

당신은 당신의 데이터베이스가 SIMPLE 모드에있는 경우,이

0

에 표시 무슨의 원인을 제거 1메가바이트 낮은 작은 값으로 로그 파일 크기를 변경해야합니다. 서버는 가능한 한 작게 크기를 조정합니다.

그러나 로그 파일은 모든 활성 트랜잭션을 포함 할 수있는 크기 여야합니다. 귀하의 예에서, 한 시점에서 350GB 상당의 트랜잭션이 진행 중입니다. 기존 서버 활동으로 인해 원하는 크기로 축소되지 않을 수 있습니다.

단순 모드에서 로그 파일을 축소하면 멀리있는 트랜잭션이 로그를 날려 보내는 경우에만 유용합니다. 그렇지 않으면 서버가 새로운 트랜잭션을 위해 로그 파일을 즉시 증가시켜야하므로 로그 파일을 축소해도 아무런 문제가 해결되지 않고 성능에 영향을 미치지 않습니다.

로그 파일을 데이터베이스 파일과 다른 드라이브로 옮길 수 있고해야합니다.