Ich muss eine LDF-Datei leeren, bevor ich sie an einen Kollegen sende. Wie zwinge ich SQL Server, das Protokoll abzuschneiden?
Ich muss eine LDF-Datei leeren, bevor ich sie an einen Kollegen sende. Wie zwinge ich SQL Server, das Protokoll abzuschneiden?
Antworten:
wenn ich mich gut erinnere ... im Abfrageanalysator oder gleichwertig:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'.
Im Managementstudio:
Propertiesdann Options.Tasks-> Shrink->FilesAlternativ kann die SQL dies tun:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabasevor der Ausführungdbcc shrinkfile
Für SQL Server 2008 lautet der Befehl:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Dadurch wurde meine 14-GB-Protokolldatei auf 1 MB reduziert.
Für SQL 2008 können Sie das Protokoll auf dem nulGerät sichern :
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Und dann verwenden Sie, DBCC SHRINKFILEum die Protokolldatei abzuschneiden.
Eine weitere Möglichkeit besteht darin, die Datenbank über Management Studio zu trennen. Löschen Sie dann einfach die Protokolldatei oder benennen Sie sie um und löschen Sie sie später.
Zurück in Management Studio hängen Sie die Datenbank erneut an. Entfernen Sie im Anhängefenster die Protokolldatei aus der Liste der Dateien.
Die Datenbank hängt eine neue leere Protokolldatei an und erstellt sie. Nachdem Sie überprüft haben, ob alles in Ordnung ist, können Sie die umbenannte Protokolldatei löschen.
Sie sollten dies wahrscheinlich nicht für Produktionsdatenbanken verwenden.