Tengo una base de datos de desarrollo de SQL Server 2005 que es una copia de 30GB en vivo. Hemos eliminado algunos datos que no son necesarios en dev, lo que reduce el espacio de archivos de datos utilizado a 20 GB. Entonces tenemos alrededor del 33% sin usar.
Necesito recuperar el espacio, lo que nos permitirá tener un segundo dev DB en el servidor (basado en la versión reducida); Sin embargo, no puedo reclamar el espacio, he hecho lo siguiente:
El tamaño inicial del archivo
SMS2_Data
es de 30 GB.DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY)
seguido por
DBCC SHRINKFILE (N'SMS2_Data' , 19500)
Sin alegría. He intentado hacer una copia de seguridad, creando una nueva base de datos con un tamaño inicial bajo y luego restaurando, no me alegro, ya que el tamaño inicial se sobrescribe. También he intentado:
ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000)
Esto erró, diciendo:
MODIFICAR ARCHIVO falló. El tamaño especificado es menor que el tamaño actual.
Intenté 20800 y luego seguí subiendo hasta 29000 (29GB) y todavía no me deja cambiarlo.
Han hecho la contracción y luego cambió el modo de recuperación a partir FULL
de SIMPLE
y viceversa. Sin alegría.
Pensé que tenía que ver con algunos TEXT
campos. Tenemos alrededor de 6 en todo el sistema. Entonces, como prueba, los descarté todos y luego reduje el archivo y aún no cambié.
La única opción que queda es reimportar los datos a otra base de datos. Esto no es práctico, ya que tendría que hacerse en la base de datos en vivo, lo que conlleva demasiado riesgo. Tomamos regularmente una copia de la base de datos en vivo y sobrescribimos dev / test. Tenemos algo así como 500 mesas. Me gustaría una forma de hacerlo que no tuviera el riesgo de exportar datos a una nueva base de datos.
Intenté mover los datos a otro archivo, y copió todos menos el 5% de los datos. Esto es lo que me llevó a intentar soltar todas las columnas de texto.
El servidor está en modo de compatibilidad 90, pero es SP2. Ahora he hecho lo siguiente 3 veces: reindexar todas las tablas, base de datos de copia de seguridad, reducir el archivo, reducir la base de datos. Aún no hay alegría.
EXECUTE sp_spaceused
devoluciones:
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