jimpiet
Goto Top

SQL 2008 R2: Log-File Shrink

Moin,

unser Consultant sagte uns, dass die Log-Files auf unseren SQL-Server nicht verkleinert werden, wenn wir Backups machen.
Das ist leider so, da es (lt. Hersteller unserer Backuplösung) keine SQL-API gibt, die Block-basierte Backups unterstützt.

Nun wollte ich ein Skript erstellen, welches das manuell macht. Bin über Maintenance gegangen, weil das an sich für mich passend klang und habe dort einen neuen Maintenance Plan erstellt.
Dort habe ich je ein "Execute T-SQL Statement Task" erstellt für die jeweiligen Datenbanken:

USE WSS_Content;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE WSS_Content
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (WSS_Content_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE WSS_Content
SET RECOVERY FULL;
GO

Wenn ich dies dann ausführe, bekomme ich zwar kein Fehler, aber es passiert auch nicht wirklich was. Die Dateigröße verändert sich nicht.

Falsch gemacht? Muss ich das woanders einstellen?

Gruß
Jimpiet

Content-Key: 245102

Url: https://administrator.de/contentid/245102

Printed on: April 19, 2024 at 02:04 o'clock

Member: wiesi200
wiesi200 Jul 30, 2014 at 15:36:44 (UTC)
Goto Top
Hallo,

für mal das ganze manuell aus ohne Taskplaner

aber mal ganz unabhängig davon. Beim SQL sollte man meiner Meinung nach zusätzlich zu der externen Backup Software die SQL Interne Sicherung verwenden.
Bei mir läuft stündlich eine Transaktionslog Sicherung und 2x Täglich eine Vollsicherung.
Member: Pjordorf
Pjordorf Jul 30, 2014 at 16:54:44 (UTC)
Goto Top
Hallo,

Zitat von @JimPiet:
(lt. Hersteller unserer Backuplösung)
Hat der auch einen Namen bzw. das Produkt einen?

In welchen Wiederherstellungsmodus laufen deine SQL Instanzen?

keine SQL-API gibt, die Block-basierte Backup unterstützt.
?!? Was willst du uns damit sagen? Ob Dateibasierend oder Blockbasierend, ist nicht der Auslöser, und vollkommen wurscht. Wichtig ist ob diese überhaupt SQL Aware ist und und und.

Bin über Maintenance gegangen,
Erzeuge dort eine Sicherungsjob und alles wird gut, allerdings wie schon gefragt "Was ist dein Wiederherstellungsmodus der einzelnen Instanzen?" Tipp: Simple sollte reichen.

-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (WSS_Content_Log, 1);
Sind denn alle Voraussetzungen für ein Shrinkfile gegeben?

Für den Anfang mal hier Lesen
http://technet.microsoft.com/de-de/library/ms178037(v=sql.105).aspx
http://help.fogcreek.com/8686/how-to-shrink-sql-server-transaction-logs

Gruß,
Peter
Member: jsysde
jsysde Jul 30, 2014 at 20:01:36 (UTC)
Goto Top
N'Abend.

Ein Logfile einer SQL-Datenbank zu shrinken ist ziemlich unsinnig, wenn das Wiederherstellungsmodell der Datenbank nicht auf "EInfach" steht; steht dort "Vollständig", wird das Logfile immer wieder anwachsen, daher ist das einfach nur Resourcenverschwendung.

Plane über die Maintenance eine Transaktionsprotokoll-Sicherung, dadurch werden die Einträge im Logfiles ins Backup geschrieben und aus dem Log gelöscht; dadurch wird zwar die Datei nicht kleiner, aber sie wächst auch nicht mehr wirklich an (bzw. nur sehr langsam, immer angenommen, die Nutzung der Datenbank verändert sich nicht drastisch).

Cheers,
jsysde
Member: JimPiet
JimPiet Jul 31, 2014 at 06:22:22 (UTC)
Goto Top
@wiesi200:

Manuell funktioniert das tatsächlich ohne Probleme

@Pjordorf:

Es handelt sich bei der Backup-Lösung um Catalogic DPX (ehemals Syncsort).
Voraussetzungen sind ja erfüllt, da es, manuell ausgeführt, funktioniert.

@jsysde:

Da es sich bei dem System um den Forefront Identity Manger handelt und dieser einmal täglich gesichert wird, halte ich die "Full" Option besser geeignet, als möglicherweise (im Worst-Case) einen kompletten Tag des Datenbestandes zu verlieren.
Member: wiesi200
wiesi200 Jul 31, 2014 at 07:58:43 (UTC)
Goto Top
Zitat von @JimPiet:


Da es sich bei dem System um den Forefront Identity Manger handelt und dieser einmal täglich gesichert wird, halte ich die
"Full" Option besser geeignet, als möglicherweise (im Worst-Case) einen kompletten Tag des Datenbestandes zu
verlieren.

Dann solltest du aber für den "Worst-Case" einen vernünftigen Wartungsplan mit mehreren Sicherungen einrichten und nicht den "Blödsinn" mit Shrink File.
Member: jsysde
jsysde Jul 31, 2014 at 16:49:36 (UTC)
Goto Top
N'Abend.
@jsysde:

Da es sich bei dem System um den Forefront Identity Manger handelt und dieser einmal täglich gesichert wird, halte ich die
"Full" Option besser geeignet, als möglicherweise (im Worst-Case) einen kompletten Tag des Datenbestandes zu
verlieren.

Habe ja auch nirgendwo das Gegenteil behauptet, diente nur zur Erklärung, warum das Shrinken eines Logfiles blödsinnig ist.

Cheers,
jsysde