J'ai une base de données de développement SQL Server 2005 qui est une copie de 30 Go de live. Nous avons supprimé certaines données qui ne sont pas nécessaires dans le développement, ce qui réduit l'espace de fichier de données utilisé à 20 Go. Nous avons donc environ 33% inutilisés.
J'ai besoin de récupérer l'espace, ce qui nous permettra d'avoir une deuxième DB de développement sur le serveur (basé sur la version réduite); cependant, je ne peux pas récupérer l'espace, j'ai fait ce qui suit:
La taille initiale du fichier
SMS2_Data
est de 30 Go.DBCC SHRINKFILE (N'SMS2_Data' , 0, TRUNCATEONLY)
suivi par
DBCC SHRINKFILE (N'SMS2_Data' , 19500)
Pas de joie. J'ai essayé de faire une sauvegarde, de créer une nouvelle base de données avec une taille initiale faible puis de restaurer, pas de joie car la taille initiale est écrasée. Ont également essayé:
ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000)
Cette erreur, en disant:
Échec de MODIFY FILE. La taille spécifiée est inférieure à la taille actuelle.
J'ai essayé 20800 et j'ai continué à monter jusqu'à 29000 (29 Go) et cela ne me laissera toujours pas le changer.
Ont fait le psy alors changé le mode de récupération de FULL
la SIMPLE
et de retour. Pas de joie.
Je pensais que cela avait à voir avec certains TEXT
domaines. Nous en avons environ 6 dans le système. Donc, comme test, je les ai tous laissés tomber, puis j'ai réduit le fichier et toujours aucun changement.
La seule option qui reste est de réimporter les données vers une autre base de données. Ce n'est pas pratique, car cela devrait être fait sur la base de données en direct, qui comporte trop de risques. Nous récupérons semi-régulièrement une copie de la base de données en direct et écrasons dev / test. Nous avons quelque chose comme 500 tables. Je voudrais un moyen de le faire qui n'aurait pas le risque d'exporter des données vers une nouvelle base de données.
J'ai essayé de déplacer les données vers un autre fichier, et il a copié toutes les données sauf 5%. C'est ce qui m'a amené à essayer de supprimer toutes les colonnes de texte.
Le serveur est en mode de compatibilité 90, mais est SP2. J'ai maintenant fait les 3 fois suivantes: réindexer toutes les tables, la base de données de sauvegarde, le fichier rétréci, la base de données rétrécie. Toujours pas de joie.
EXECUTE sp_spaceused
Retour:
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