Ich habe eine Datenbank, in der wir derzeit den ganzen Tag über Transaktionsprotokollsicherungen durchführen, um genau zu sein, alle 30 Minuten, und wir führen jeden Tag um 2 Uhr morgens eine vollständige Sicherung durch.
Jeden Samstag um 3 Uhr morgens haben wir ein Job-Setup, um die Indizes für alle Tabellen neu zu erstellen.
Wenn Sie jedoch die Indexwiederherstellung durchführen, wächst unser Transaktionsprotokoll erheblich. Ich spiele mit verschiedenen Ideen, um den zusätzlichen Speicherplatzbedarf zu verringern (ca. 25 GB nach dem erneuten Indexieren).
Ich habe überlegt, das Datenbankwiederherstellungsmodell vor der Neuerstellungsaufgabe auf einfach zu setzen, um zu verhindern, dass die gesamte Indexwiederherstellung protokolliert wird, und es dann nach Abschluss der Neuerstellung wieder auf voll zu setzen.
Verwendet noch jemand diese Methode? Oder kann jemand Einblicke / Ratschläge geben, warum dies eine schlechte Idee sein kann? Oder Tipps zum Umgang mit großen Protokolldateien bei der Ausführung von Datenbankwartungsaufgaben?
quelle
Wenn Sie zu SIMPLE wechseln, wird die Protokollkette unterbrochen. Wenn Sie zu FULL zurückkehren, müssen Sie eine neue Protokollkette starten. Dies bedeutet, dass Sie eine vollständige Sicherung durchführen und erneut neue Protokollsicherungen erstellen müssen. Die Umstellung auf einfach, egal wie kurz sie auch sein mag, schafft eine neue "Epoche" in Ihrer Sicherungskette, da jede Sicherung von vor der Umstellung auf einfach nicht mehr auf die Datenbank nach der Umstellung angewendet werden kann oder umgekehrt.
In diesem Moment müssen Sie also innehalten und überlegen: Was ist die Geschäftsanforderung, die Sie dazu veranlasst hat, zunächst ein vollständiges Wiederherstellungsmodell zu haben? Was auch immer der Grund sein mag, es ist unwahrscheinlich, dass es jeden Samstag um 3 Uhr morgens "ausgesetzt" werden kann, und es ist nur unwahrscheinlich, dass es Ihre "Epochen" -Situation toleriert, in der Sie von Freitag bis Donnerstag in der Zeit wiederherstellen können, aber nicht von Samstag an bis Freitag, weil Samstag eine neue "Epoche" ist. Mit anderen Worten, wenn Sie eine Geschäftsanforderung für das vollständige Wiederherstellungsmodell haben, sollten Sie es besser nicht brechen.
Wenn Sie jedoch keine geschäftlichen Anforderungen für das vollständige Wiederherstellungsmodell haben, haben Sie Platz zum Spielen. Und ich möchte nicht zu SIMPLE wechseln, sondern das 'andere' Wiederherstellungsmodell verwenden: BULK_LOGGED. Der Grund, warum Ihre Neuindizierungsvorgänge ein umfangreiches Protokoll generieren, ist, dass sie unter dem vollständigen Wiederherstellungsmodell auftreten. Unter BULK_LOGGED werden bei der Indexwiederherstellung (sowohl offline als auch online) minimal protokollierte Vorgänge verwendet, siehe Vorgänge , die minimal protokolliert werden können :
Wenn möglich, wechseln Sie das Datenbankwiederherstellungsmodell zu BULK_LOGGED und belassen Sie es als solches.
quelle
Beachten Sie, dass Sie im "einfachen" Modus die Möglichkeit verlieren, aus Transaktionsprotokollsicherungen zu einem bestimmten Zeitpunkt wiederherzustellen.
Wenn Sie wieder in den "Voll" -Modus wechseln, müssen Sie eine vollständige Sicherung durchführen, um die Protokollkette wiederherzustellen. Sie können die Transaktionsprotokollsicherungen erst fortsetzen, wenn Sie eine vollständige Sicherung durchgeführt haben.
Wir haben hier mit dem gleichen Problem zu kämpfen, und bis jetzt ist geplant, Protokollsicherungen häufiger durchzuführen und sie auf externem Speicher zu halten (dh nicht auf demselben Server).
quelle
Bevor ich über eine Änderung des einfachen Modus nachdenke, möchte ich Folgendes betrachten:
quelle