SQL 2008R2 Transaction Log File verkleinern
Hallo zusammen,
zahlreiche Artikel im Internet gibt es zu dem Thema, jedoch werde ich nicht so richtig fündig.
Problembeschreibung
Beim Recovery dauert die Sicherung sehr lange, da der TLF 15x größer ist wie die eigentliche Datenbank.
Fakten:
Ich habe eine DB-Spiegelung laufen, d.h. das Wiederherstellungsmodell muss auf "Vollständig" stehen.
Ich kann zwar per Rechtsklick auf die DB > Tasks > Verkleinern > Datei > Dateityp = Protokoll
99% des TLF freigeben, jedoch pumpt sich dieses beim nächsten Recovery immer wieder auf.
Wie muss ich es richtig machen? Bisher sind es nur drei Schritte:
1. DB Vollsicherung (automatisch in der Nacht)
2. Kopie ins Testsystem
3. Wiederherstellung
Ich bedanke mich für eure Tipps!
zahlreiche Artikel im Internet gibt es zu dem Thema, jedoch werde ich nicht so richtig fündig.
Problembeschreibung
Beim Recovery dauert die Sicherung sehr lange, da der TLF 15x größer ist wie die eigentliche Datenbank.
Fakten:
Ich habe eine DB-Spiegelung laufen, d.h. das Wiederherstellungsmodell muss auf "Vollständig" stehen.
Ich kann zwar per Rechtsklick auf die DB > Tasks > Verkleinern > Datei > Dateityp = Protokoll
99% des TLF freigeben, jedoch pumpt sich dieses beim nächsten Recovery immer wieder auf.
Wie muss ich es richtig machen? Bisher sind es nur drei Schritte:
1. DB Vollsicherung (automatisch in der Nacht)
2. Kopie ins Testsystem
3. Wiederherstellung
Ich bedanke mich für eure Tipps!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 262026
Url: https://administrator.de/contentid/262026
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
10 Kommentare
Neuester Kommentar
Hi,
du kannst in den Eigenschaften der DB das Handling der Log-File beeinflussen.
Hier steht vermutlich (bei Dateien) etwas aller: um 10% vergrößern - unbegrenzt vergrösserbar.
Dies mal ändern, z.B. max Größe 2GB o.ä.
Oder halt DBCC Shrinkfile nach jeder Wiederherstellung machen. Aber ich vermute mal das du das Transactionlog eher selten nutzt, daher empfehle ich die Größenbeschränkung.
greetz
ravers
du kannst in den Eigenschaften der DB das Handling der Log-File beeinflussen.
Hier steht vermutlich (bei Dateien) etwas aller: um 10% vergrößern - unbegrenzt vergrösserbar.
Dies mal ändern, z.B. max Größe 2GB o.ä.
Oder halt DBCC Shrinkfile nach jeder Wiederherstellung machen. Aber ich vermute mal das du das Transactionlog eher selten nutzt, daher empfehle ich die Größenbeschränkung.
greetz
ravers
Hallo Andinistrator1,
dein Problem ist, daß Du nur die Datenbank sicherst, aber nicht das Transaktionsprotokoll. Wenn das nicht gesichert wird, dann läuft das voll, bis die Platte dicht ist (oder wenn Du dem Rat von Ravers gefolgt bist, bis das eingestellte Maximum erreicht ist). Wenn das Protokoll dann voll ist gibt es einen Fehler, Du solltest also die Größe des Protokolls nicht begrenzen oder die Grenze recht großzügig bemessen.
Richte Dir einen Job ein der ähnlich Deiner Vollsicherung ist, aber nur das Transaktionslog sichert. Dann wird der gesicherte Teil freigegeben und landet nicht mehr in seiner vollen Größe in der Vollsicherung. Wenn Du die Protokollsicherung z.B. alle Stunde ausführst, dann wächst Dein Protokoll auch nicht mehr so gigantisch an.
Deine erste Protokollsicherung dürfte dann erstmal recht groß ausfallen, weil das Protokoll die ganze Zeit nicht gesichert wurde, die weiteren werden aber dann recht schmal werden.
Gruß, Mad Max
dein Problem ist, daß Du nur die Datenbank sicherst, aber nicht das Transaktionsprotokoll. Wenn das nicht gesichert wird, dann läuft das voll, bis die Platte dicht ist (oder wenn Du dem Rat von Ravers gefolgt bist, bis das eingestellte Maximum erreicht ist). Wenn das Protokoll dann voll ist gibt es einen Fehler, Du solltest also die Größe des Protokolls nicht begrenzen oder die Grenze recht großzügig bemessen.
Richte Dir einen Job ein der ähnlich Deiner Vollsicherung ist, aber nur das Transaktionslog sichert. Dann wird der gesicherte Teil freigegeben und landet nicht mehr in seiner vollen Größe in der Vollsicherung. Wenn Du die Protokollsicherung z.B. alle Stunde ausführst, dann wächst Dein Protokoll auch nicht mehr so gigantisch an.
Deine erste Protokollsicherung dürfte dann erstmal recht groß ausfallen, weil das Protokoll die ganze Zeit nicht gesichert wurde, die weiteren werden aber dann recht schmal werden.
Gruß, Mad Max
Hallo Andinistrator1,
Protokollversand ist keine Protokollsicherung, dadurch wird Dein Protokoll also nicht freigegeben (soweit ich weiß, bis jetzt hatte ich noch nichts mit Protokollversand zu tun).
Die Sicherung des Transaktionsprotokolls ist nicht so viel anders als die Sicherung der Datenbank. Statt "backup database ..." heißt der Befehl dann "backup log ...". Läßt sich auch sehr schön in der Hilfe vom SQL Server nachlesen.
Gruß, Mad Max
Protokollversand ist keine Protokollsicherung, dadurch wird Dein Protokoll also nicht freigegeben (soweit ich weiß, bis jetzt hatte ich noch nichts mit Protokollversand zu tun).
Die Sicherung des Transaktionsprotokolls ist nicht so viel anders als die Sicherung der Datenbank. Statt "backup database ..." heißt der Befehl dann "backup log ...". Läßt sich auch sehr schön in der Hilfe vom SQL Server nachlesen.
Gruß, Mad Max
Hallo Andinistrator1,
grundsätzlich tut dbcc shrinkfile nicht weh, garantieren, daß das bei Euch auch fehlerfrei funktioniert, wird Dir das natürlich keiner.
Und was willst Du für einen Vorschlag für ein Skript? Tausch bei Deinem Backup-Skript für die Vollsicherung das "database" gegen ein "log" aus, dann noch irgendein Kennzeichen beim Dateinamen oder der Erweiterung, daß es sich um die Protokollsicherung handelt, dann hast Du Dein Skript. Oder Du nimmst das aus dem Artikel, den Du gefunden hast. Dadurch, daß Du für jede Sicherung einen eigenen Dateinamen hast und auch nicht auf ein Band sicherst, sind die meisten Schalter sowieso überflüssig.
Mach Deine Protokolldatei nicht zu klein, sonst muß sie nur wieder erweitert werden, was sich dann wieder ungünstig auswirkt (s.a. in dem gefundenen Artikel bei "Shrink File").
Gruß, Mad Max
grundsätzlich tut dbcc shrinkfile nicht weh, garantieren, daß das bei Euch auch fehlerfrei funktioniert, wird Dir das natürlich keiner.
Und was willst Du für einen Vorschlag für ein Skript? Tausch bei Deinem Backup-Skript für die Vollsicherung das "database" gegen ein "log" aus, dann noch irgendein Kennzeichen beim Dateinamen oder der Erweiterung, daß es sich um die Protokollsicherung handelt, dann hast Du Dein Skript. Oder Du nimmst das aus dem Artikel, den Du gefunden hast. Dadurch, daß Du für jede Sicherung einen eigenen Dateinamen hast und auch nicht auf ein Band sicherst, sind die meisten Schalter sowieso überflüssig.
Mach Deine Protokolldatei nicht zu klein, sonst muß sie nur wieder erweitert werden, was sich dann wieder ungünstig auswirkt (s.a. in dem gefundenen Artikel bei "Shrink File").
Gruß, Mad Max