Ich habe eine Datenbank [Meine Datenbank] mit folgenden Informationen:
SQL Server 2008
MDF-Größe: 30 GB
LDF-Größe: 67 GB
Ich wollte die Protokolldatei so weit wie möglich verkleinern und begann meine Suche, um herauszufinden, wie das geht. Vorsichtsmaßnahme: Ich bin kein DBA (oder nähere mich sogar einem DBA) und habe mich durch diese Suche gefühlsmäßig weiterentwickelt.
Zuerst habe ich nur SSMS, DB-Eigenschaften, Dateien aufgerufen und den Wert für die Anfangsgröße (MB) auf 10 bearbeitet. Dadurch wurde die Protokolldatei auf 62 GB reduziert (nicht genau die 10 MB, die ich eingegeben habe). Also habe ich SQL Profiler angehängt und gesehen, dass DBCC SHRINKFILE aufgerufen wurde. Ich habe diesen Befehl dann in den Abfrageeditor eingegeben und hier sind die Ergebnisse.
DBCC SHRINKFILE (N'My DB_Log' , 10)
Und die Ausgabe war:
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.
Ich habe dann einige Nachforschungen angestellt und Folgendes gefunden:
http://support.microsoft.com/kb/907511
Was bedeutet, dass ich die Protokolldatei vor dem Shrinkfile sichern muss, damit die virtuellen Protokolldateien freigegeben werden und das Shrinkfile seine Arbeit erledigen kann - ich weiß nicht, was das bedeutet ... ich paraphrasiere hier nur :)
Also dachte ich mir, ich würde versuchen, die Protokolldatei zu sichern und dann eine DBCC-SHRINKFILE auszuführen (und ich habe die Größe der neuen Protokolldatei auf 12800 geändert, da dies die in der Ausgabe des vorherigen DBCC-SHRINKFILE-Befehls angegebene Mindestgröße war).
BACKUP LOG [My DB] TO DISK = 'D:\SQLBackup\20110824-MyDB-Log.bak'
GO
DBCC SHRINKFILE (N'My DB_Log' , 12800)
GO
Das Ergebnis war das gleiche wie beim ersten Mal. Ich kann die Protokolldatei nur auf 62 GB reduzieren.
Ich bin mir nicht sicher, was ich falsch mache und was ich als nächstes versuchen soll.