web-dev-qa-db-fra.com

Une sauvegarde de la base de données réduit-elle la taille / l'augmentation de l'espace libre du fichier journal?

J'ai une base de données SQL Server où le fichier journal est massif et continue de croître chaque jour.

J'ai archivé des données de la base de données, puis effectué une sauvegarde complète. Je m'attendais à ce que le journal soit alors fondamentalement "vide". par exemple. Cela pourrait être la même taille physique, mais j'ai maintenant beaucoup d'espace libre. Cependant, il est actuellement de 0,1% gratuit.

Des idées pourquoi il n'y a toujours presque pas d'espace libre dans le journal?

3
BlueChippy

Espace libre

BACKUP DATABASE (sauvegarde complète, sauvegarde différentielle, sauvegarde de fichier/filegroup, copie uniquement) ne libère pas de place dans aucun fichier. Si quelque chose, il utilise un peu d'espace dans le fichier journal pour enregistrer ses actions.

BACKUP LOG tronque le journal, qui libère généralement de l'espace.

Une base de données de modèle de récupération simple tronque son journal lorsqu'un point de contrôle se produit.

Taille du fichier

Aucune des opérations de sauvegarde n'affecte la taille physique des fichiers.

Les seules commandes qui font ce sont DBCC SHINKFILE et DBCC SHRINKDB (dans SSMS, cliquez avec le bouton droit sur une base de données, choisissez les tâches, rétrécir).

1
Greenstone Walker

obtenez une base de données SQL et le fichier journal est massif et continue de croître chaque jour.

Les fichiers journaux La croissance dépend du modèle de récupération d'une base de sauvegarde de la base de données et des transactions. Si la base de données n'est pas critique et que la perte de données n'est pas une question dans aucun cas, il devrait être en mode de récupération simple. Qui permet à SQL Server de réutiliser l'espace journal lorsqu'une transaction est commise et la croissance du journal reste en limite. Mais si la base de données est critique et que le point de récupération du temps peut être une exigence, la base de données doit être en mode de récupération complète. Ce qui est une indication pour SQL Server qui conserve tout le fichier journal de transaction de transaction et ne réutilisez pas, jusqu'à ce qu'il soit sauvegardé (sauvegarde du journal de transaction).

J'ai archivé des données de la base de données puis effectué une sauvegarde complète ... je m'attendais à ce que le journal soit alors essentiellement "vide". E.g. * Sauvegarde complète ou même transaction Sauvegarde de la transaction Ne laissez pas le fichier journal vide. Sauvegarde de la transaction Sauvegarde Marquer uniquement le journal de fichier d'espace pour réutilisable mais la taille de fichier reste identique.

Si l'archivage signifie que vous avez supprimé certaines données après avoir récupéré certaines données et la maintenant dans un autre format. Ensuite, il faut garder à l'esprit que la suppression de données ne réduisez jamais la taille physique des données ou des fichiers journaux, bien que l'espace puisse être disponible pour la réutilisation par base de données.

1
aasim.abdullah