문제 조사를 위해 개발자 사무실로 옮긴 클라이언트의 bak 파일이 있습니다. 백업은 현재 25GB이고 복원 된 데이터베이스의 크기는 거의 같지만 복원하려면 100GB가 필요합니다. 데이터베이스가 75GB 트랜잭션 로그 크기를 갖도록 설정 되었기 때문이라고 생각합니다. 데이터베이스를 복원 한 후 로그 파일을 축소 할 수 있지만 복원시이를 수행 할 수있는 방법이 있습니까?
문제 조사를 위해 개발자 사무실로 옮긴 클라이언트의 bak 파일이 있습니다. 백업은 현재 25GB이고 복원 된 데이터베이스의 크기는 거의 같지만 복원하려면 100GB가 필요합니다. 데이터베이스가 75GB 트랜잭션 로그 크기를 갖도록 설정 되었기 때문이라고 생각합니다. 데이터베이스를 복원 한 후 로그 파일을 축소 할 수 있지만 복원시이를 수행 할 수있는 방법이 있습니까?
답변:
a는있다 할 -하지 - 적 - 할 -이 - 인 - 어 - 라이브 환경 공간이 압축 된 폴더에 로그 파일을 복원하여, 제한되는 경우 사용할 수있는 해킹. 기존 폴더를 압축하고 복원하면 오류가 발생하므로 심볼릭 링크를 사용하여 부정 행위해야합니다.
D:\LogCompressed\
압축 폴더에 대한 심볼릭 링크 만들기 mklink /D /J D:\Log\ D:\LogCompressed\
ldf 파일이 가리키는 데이터베이스를 복원하십시오. D:\Log\
로그 파일을 적절한 크기로 축소
데이터베이스를 분리하고 로그 파일을 압축되지 않은 폴더로 이동 한 후 첨부하십시오.
더럽고, 부정 행위이며, 절대로 라이브로하지 마십시오 . 그러나 작동합니다. 32MB 로그 파일을 사용하여 새로 만든 데이터베이스를 빠르게 테스트 한 결과 압축시 디스크에서 330kb를 차지하고 폴더를 압축 해제하면 디스크 크기는 32MB로 돌아갑니다.
백업이 25GB이고 복원 된 데이터베이스가 100GB 인 이유는 트랜잭션 로그 때문 이 아니라고 생각합니다. 내 추측에 따르면 데이터베이스 파일에는 100GB의 할당 된 공간이 있고 데이터베이스에는 25GB의 실제 데이터가 있습니다.
할당 된 데이터베이스 파일 공간 과 사용 된 데이터 공간 간에 차이가 있습니다 . 이 경우 전자는 100GB이고 후자는 25GB입니다.