Ich bin gerade dabei, Datenbanken von SQL 2000 auf eine 2008-Instanz auf einem anderen Server zu kopieren. Dazu verwende ich DETACH, kopiere die Windows-Datei auf den 2008-Server und verwende schließlich ATTACH. Ich bin zu einer Datenbank gekommen, bei der sich die LOG-Datei in 2 Windows-Dateien befindet:
name fileid filename size maxsize growth usage
MasterScratchPad_Data 1 C:\SQLDATA\MasterScratchPad_Data.MDF 6041600 KB Unlimited 5120000 KB data only
MasterScratchPad_Log 2 C:\SQLDATA\MasterScratchPad_Log.LDF 2111304 KB Unlimited 10% log only
MasterScratchPad_X1_Log 3 E:\SQLDATA\MasterScratchPad_X1_Log.LDF 191944 KB Unlimited 10% log only
Ich hätte gerne nur eine Datei für das Protokoll (d. h. ich kann es vergrößern und die Wachstumsparameter anpassen, hätte es aber lieber nur aus einer Datei, bevor ich die Datenbank auf SQL2008 aktualisiere).
Ich habe die Datenbank gesichert. Ich habe Folgendes eingegeben: BACKUP LOG MasterScratchPad WITH TRUNCATE_ONLY. Ich habe mehrere DBCC SHRINKFILE-Befehle für beide LOG-Dateien ausgeführt. Der letzte Versuch war DBCC SHRINKFILE(MasterScratchPad_X1_Log, 0), das Ergebnis ist jedoch wie oben.
Wie kann ich dieses Ziel erreichen, nur eine .LDF-Datei zu haben? Ich kann nichts darüber finden, wie ich die Datei mit der Datei-ID 3 löschen und/oder mehrere Dateien in einer Protokolldatei zusammenfassen kann.
Antwort1
Das ist ziemlich unkompliziert... Hier ist Ihr Skript unten. Sagen Sie mir Bescheid, wenn Sie noch etwas brauchen.
Danke!
-VM
VERWENDEN SIE [MasterScratchPad]
GEHEN
DATENBANK ÄNDERN [MasterScratchPad] DATEI ENTFERNEN [MasterScratchPad_X1_Log]
GEHEN
Antwort2
Das heißt, seien Sie sich dessen bewusst, was Sie tun. Datenbanken mit einer einzigen Datei (Datenbank, Protokoll) sind LANGSAMER als Datenbanken mit mehreren Dateien – es gibt gute Gründe, jeweils X Dateien zu haben, wobei X die Anzahl der Kerne ist. Dies ist alles von Microsoft gut dokumentiert – aber es scheint, dass viele Leute das nicht gerne lesen (ich sehe selten einen kompetenten SQL-Administrator in diesen und einigen anderen Belangen).