web-dev-qa-db-fra.com

Réduction de la taille de la base de données à restaurer vers SQL Server Express

J'ai une base de données SQL Server 2008 R2, environ 15 Go.

Je souhaite le copier pour un partenaire qui utilise SQL Server 2008 R2 Express.

J'ai supprimé de nombreux tableaux et lignes, et maintenant je suis sûr que les données sont inférieures à 2 Go.

Je fais une sauvegarde, envoie au partenaire, il essaie de la restaurer mais il reçoit une erreur:

Échec de CREATE DATABASE ou ALTER DATABASE car la taille de base de données cumulée résultante dépasserait votre limite autorisée de 10240 Mo par base de données

Qu'ai-je fait de mal?

5
carlo.borreo

La somme de taille du fichier pour tous les fichiers de données doit être <10 Go, pas la quantité de données dans le fichier. Ainsi, la suppression de données de certaines tables, ou même la suppression de certaines tables, ne résout pas le problème. Vous devez réduire le fichier, quelque chose comme ceci:

ALTER DATABASE mydb MODIFY FILE (name = N'logical_name', size = 2048MB);

Cela échouera si la taille de la base de données ne peut pas être réduite à 2 Go. Vous devrez peut-être d'abord émettre:

DBCC SHRINKFILE(logical_name, 2048);

Si vous utilisez n'importe quelle forme de SHRINKFILE, vous devrez valider dans l'Explorateur de fichiers que le ou les fichiers de données sont réellement aussi petits que vous le pensez (car les opérations de rétrécissement se rétréciront autant qu'elles le pourront et s'arrêteront silencieusement quand elles le pourront) n'atteignez pas votre taille cible).

Then effectuer une sauvegarde, puis restaurer sur SQL Server Express (avec @@VERSION identique ou supérieur à la source, bien sûr).

Vous pouvez rencontrer d'autres problèmes, par exemple si vous avez utilisé des fonctionnalités qui ne sont pas prises en charge sur Express.

9
Aaron Bertrand

Après avoir supprimé/supprimé des tables, vous devez réduire la base de données pour libérer de l'espace inutilisé.

Effectuez ensuite une sauvegarde et demandez au client de restaurer.

Remarque: Si votre base de données est en restauration complète et que vous n'avez jamais effectué de sauvegarde de journal, effectuez une sauvegarde complète suivie d'une sauvegarde de journal, puis réduisez la base de données.

Attention: l'utilisation de SHRINK n'est pas une pratique recommandée et recommandée. , mais en dans certains cas, vous ne pouvez pas l'éviter .

2
Kin Shah