it-swarm-eu.dev

Wie schneide ich das Transaktionsprotokoll in einer SQL Server 2008-Datenbank ab?

Wie schneide ich das Transaktionsprotokoll in einer SQL Server 2008-Datenbank ab?

Was sind die besten Möglichkeiten?

Ich habe dies in einem Blog wie folgt versucht:

1) Von der Einstellungsdatenbank bis zur einfachen Wiederherstellung, Verkleinern der Datei und erneuten Einstellen der vollständigen Wiederherstellung verlieren Sie tatsächlich Ihre wertvollen Protokolldaten und können den Zeitpunkt nicht wiederherstellen. Darüber hinaus können Sie nachfolgende Protokolldateien nicht verwenden.

2) Durch Verkleinern der Datenbankdatei oder Datenbank wird eine Fragmentierung hinzugefügt.

Es gibt viele Dinge, die Sie tun können. Beginnen Sie zunächst mit der folgenden Protokollsicherung mit dem folgenden Befehl, anstatt sie abzuschneiden und häufig zu verlieren.

BACKUP LOG [TestDb] TO  DISK = N'C:\Backup\TestDb.bak'
GO

Entfernen Sie den Code von SHRINKING the file. Wenn Sie ordnungsgemäße Protokollsicherungen durchführen, wird Ihre Protokolldatei normalerweise (normalerweise werden auch Sonderfälle ausgeschlossen) nicht sehr groß.

9
Neo

Der sicherste und korrekteste Weg, eine Protokolldatei abzuschneiden, wenn sich die Datenbank im vollständigen Wiederherstellungsmodus befindet, besteht darin, eine Transaktionsprotokollsicherung durchzuführen (ohne TRUNCATE_ONLY. Dies wird in zukünftigen Versionen nicht mehr empfohlen und ist nicht ratsam).

Es hört sich so an, als ob Sie Ihre Protokolldatei anschließend verkleinern möchten. In diesem Fall würden Sie einen Befehl DBCC SHRINKFILE(yourTLogName) ausführen. Es gibt einen optionalen zweiten Parameter für die angeforderte Größe, auf den sie verkleinert werden kann.

4
Thomas Stringer

Sie können das Protokoll auf dem Nullgerät sichern:

backup log [databasename] to disk = 'nul';

Oder Sie können das Wiederherstellungsmodell auf einfach und dann wieder auf voll/groß umstellen.

8
Luis Gonzalez

Wenn Sie sich nicht um Ihre Protokolldaten kümmern und diese nur entfernen möchten:

Ändern Sie das Wiederherstellungsmodell von vollständig in einfach und dann wieder in vollständig. Verkleinern Sie die Datei mit DBCC SHRINKFILE mit dem Argument TRUNCATEONLY

Der folgende Befehl ändert das Wiederherstellungsmodell von vollständig in einfach

ALTER DATABASE <databse_name> SET RECOVERY SIMPLE

Der folgende Befehl ändert das Wiederherstellungsmodell in "Voll"

ALTER DATABASE <databse_name> SET RECOVERY FULL

Um den Namen der Protokolldatei zu ermitteln, können Sie die folgende Abfrage verwenden

SELECT name 
FROM sys.master_files
WHERE database_id = DB_ID('<databse_name>')

Verkleinern Sie die Datei

DBCC SHRINKFILE (N'<logical_file_name_of_the_log>' , 0, TRUNCATEONLY)

Weitere Informationen hierzu finden Sie unter Wie lautet der Befehl zum Abschneiden einer SQL Server-Protokolldatei?

6
Alex