30GB의 라이브 사본 인 SQL Server 2005 dev 데이터베이스가 있습니다. 개발에 필요하지 않은 일부 데이터를 삭제하여 사용 된 데이터 파일 공간을 20GB로 줄였습니다. 따라서 약 33 %의 미사용 제품이 있습니다.
공간을 되 찾을 필요가 있는데, 이는 서버에 두 번째 dev DB를 가질 수있게 해줍니다. 그러나 공간을 되 찾을 수 없으며 다음을 수행했습니다.
파일의 초기 크기
SMS2_Data
는 30GB입니다.DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY)
뒤에
DBCC SHRINKFILE (N'SMS2_Data' , 19500)
기쁨이 없습니다. 백업을 시도하고 초기 크기가 작은 새 DB를 만든 다음 복원을 시도했지만 초기 크기를 덮어 쓸 때 기쁨이 없습니다. 또한 시도했다 :
ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000)
이 오류가 발생했습니다.
파일 수정에 실패했습니다. 지정된 크기가 현재 크기보다 작습니다.
나는 20800을 시도한 다음 29000 (29GB)까지 계속 올라갔지 만 여전히 그것을 바꿀 수는 없습니다.
다음 수축을 수행에서 복구 모드로 변경 FULL
을 SIMPLE
하고 다시. 기쁨이 없습니다.
나는 그것이 일부 TEXT
분야 와 관련이 있다고 생각했습니다 . 시스템 전체에 약 6 개가 있습니다. 테스트로 나는 그것들을 모두 버린 다음 파일을 축소했지만 여전히 변경하지 않았습니다.
남은 유일한 옵션은 데이터를 다른 DB로 다시 가져 오는 것입니다. 라이브 DB에서 수행해야하므로 위험하지 않은 실용적이지 않습니다. 라이브 DB의 사본을 반 정기적으로 가져와 개발 / 테스트를 덮어 씁니다. 500 개의 테이블이 있습니다. 데이터를 새로운 DB로 내보낼 위험이없는 방법을 원합니다.
데이터를 다른 파일로 이동하려고 시도했는데 5 %를 제외한 모든 데이터가 복사되었습니다. 이것이 모든 텍스트 열을 삭제하려고합니다.
서버가 호환 모드 90에 있지만 SP2입니다. 이제 모든 테이블 다시 색인 생성, 데이터베이스 백업, 파일 축소, 데이터베이스 축소의 3 가지 작업을 수행했습니다. 여전히 기쁨은 없습니다.
EXECUTE sp_spaceused
보고:
database_name database_size unallocated space
SMS2Tests 31453.94 MB 13903.16 MB
reserved data index_size unused
16545568 KB 10602264 KB 4254360 KB 1688944 KB