DBCC SHRINKFILE sur le fichier de log ne réduit pas la taille, même après le JOURNAL de SAUVEGARDE sur le DISQUE

J'ai une base de données, [Ma DB], qui a les informations suivantes:

SQL Server 2008

MDF taille: 30 GO

LDF taille: 67 GO

Je voulais réduire le fichier journal, autant que possible, et j'ai donc commencé ma quête pour comprendre comment le faire. Mise en garde: je ne suis pas un DBA (ou même à l'approche d'un DBA) et ont été en progression par se sentir à travers cette quête.

Tout d'abord, je suis juste allé dans SSMS, DB propriétés, Fichiers, et édité la Taille Initiale (MO) sur la valeur 10. Qui réduit le fichier journal de 62 GO (pas exactement le 10 MO que je suis entré). Donc, j'ai attaché le générateur de profils SQL, vu que la commande DBCC SHRINKFILE a été appelé. J'ai ensuite entré cette commande dans l'éditeur de requête et voici les résultats.

DBCC SHRINKFILE (N'My DB_Log' , 10)

Et le résultat a été:

Cannot shrink log file 2 (My DB_Log) because the logical log file located at the end of the file is in use.
DbId   FileId      CurrentSize MinimumSize UsedPages   EstimatedPages
------ ----------- ----------- ----------- ----------- --------------
8      2           8044104     12800       8044104     12800

(1 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Puis j'ai fait quelques recherches et trouvé ceci:

http://support.microsoft.com/kb/907511

Qui dit que j'ai besoin de sauvegarder le fichier journal avant de le shrinkfile de sorte que les fichiers journaux virtuels seront libérés et les shrinkfile peut faire son travail - je ne sais pas ce que ça veut dire que... je suis juste paraphrase ici 🙂

Donc, j'ai pensé que je voudrais essayer de sauvegarder le fichier journal, puis faire un DBCC SHRINKFILE (et j'ai changé à la nouvelle taille du fichier journal à 12800 puisque c'était le MinimumSize identifiés dans les résultats de la précédente commande DBCC SHRINKFILE)

BACKUP LOG [My DB] TO DISK = 'D:\SQLBackup110824-MyDB-Log.bak'
GO
DBCC SHRINKFILE (N'My DB_Log' , 12800)
GO

Le résultat est le même que le début. Je ne peux obtenir le fichier journal à 62 GO.

Je ne suis pas sûr de ce que je fais mal et ce que je devrais essayer la prochaine.

  • afin d'éviter que cela se reproduise, vous devez exécuter des sauvegardes de journaux ou de définir le mode de récupération simple.
  • Mon problème était en PAUSE RÉPLICATION de configuration -- il semble sql qui ne rétrécit pas tlogs si elle pense qu'elle en aurez besoin pour la réplication. Ce ne sera probablement pas être très nombreuses personnes du problème, mais il pourrait aider un peu.
InformationsquelleAutor Ed Sinek | 2011-08-25