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:
Properties
dann Options
.Tasks
-> Shrink
->Files
Alternativ kann die SQL dies tun:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
vor 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 nul
Gerät sichern :
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Und dann verwenden Sie, DBCC SHRINKFILE
um 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.