Wann sollte ich das vollständige Wiederherstellungsmodell und wann das einfache Wiederherstellungsmodell für Datenbanken verwenden?
Sie sollten das vollständige Wiederherstellungsmodell verwenden, wenn Sie eine Wiederherstellung Ihrer Datenbank zu einem bestimmten Zeitpunkt benötigen. Sie sollten ein einfaches Wiederherstellungsmodell verwenden, wenn Sie keine zeitliche Wiederherstellung Ihrer Datenbank benötigen und wenn die letzte vollständige oder differenzielle Sicherung als Wiederherstellungspunkt ausreicht. (Hinweis: Es gibt ein anderes Wiederherstellungsmodell (Bulk-Protokoll). Weitere Informationen zum Bulk-Protokoll-Wiederherstellungsmodell finden Sie in dieser Referenz. )
Microsoft OLE DB-Provider für SQL Server (0x80040E14) Das Transaktionsprotokoll für die Datenbank 'DATABASE NAME' ist voll. In der Spalte log_reuse_wait_desc in sys.databases finden Sie Informationen dazu, warum der Speicherplatz im Protokoll nicht wiederverwendet werden kann
Der Grund für diesen Fehler ist (höchstwahrscheinlich), dass Sie Ihr Transaktionsprotokoll nicht gesichert haben. Wenn es nicht gesichert ist, wird die Transaktionsprotokolldatei weiterhin physisch vergrößert (vorausgesetzt, das automatische Wachstum ist aktiviert und die maximale Größe ist zulässig), da keine "Teile" des Transaktionsprotokolls (virtuelle Protokolldateien) wiederverwendet werden können. Es kann diese VLFs nur zur Wiederverwendung markieren und die "Wrap-Around" -Natur des Transaktionsprotokolls zulassen, wenn Sie eine Transaktionsprotokollsicherung durchführen (und einige andere Anforderungen, z. B. keine aktiven Transaktionen, einige Replikationsaspekte usw.).
Um das Protokoll zu verkleinern und den Zugriff auf die Datenbank wieder zu ermöglichen, habe ich das Wiederherstellungsmodell von VOLL auf EINFACH geändert und das Protokoll der logischen Datei mit dem folgenden Befehl verkleinert
......
Es hat geholfen, aber jetzt muss ich verstehen, WARUM es geholfen hat, WIE diese Situation begann und WIE dies in Zukunft zu verhindern ist.
Dies hat Ihnen geholfen, da Sie durch Festlegen Ihrer Datenbank auf das einfache Wiederherstellungsmodell SQL Server mitgeteilt haben, dass Sie sich nicht mehr um die Wiederherstellung zu einem bestimmten Zeitpunkt kümmern und sicherstellen müssen, dass virtuelle Protokolldateien nicht mehr beibehalten und als aktiv markiert werden müssen. Jetzt markiert ein Checkpoint-Prozess diese VLFs als inaktiv.
Auszug / Zitat aus dieser MSDN-Referenz :
Im einfachen Wiederherstellungsmodell schneidet ein automatischer Prüfpunkt den nicht verwendeten Abschnitt des Transaktionsprotokolls ab, es sei denn, ein Faktor verzögert das Abschneiden des Protokolls. Im Gegensatz dazu verursachen automatische Prüfpunkte bei den vollständigen und massenprotokollierten Wiederherstellungsmodellen nach dem Erstellen einer Protokollsicherungskette keine Protokollkürzung.
Dann haben Sie eine physische Datenbankdatei verkleinert, und da in Ihrem Transaktionsprotokoll jetzt freier Speicherplatz vorhanden war, konnte die NTFS-Datei physisch verkleinert werden.
Lesen lohnt sich, etwas Zeit zu verbringen mit:
- Wiederherstellungsmodelle
- Verwalten von Transaktionsprotokollen (Gail Shaw)
- Faktoren, die das Abschneiden von Protokollen verzögern können
BEARBEITEN Sie nach Ihrer Bearbeitung :
Stehen das neue Wiederherstellungsmodell und der neue Datenbankschrumpf in Konflikt mit diesem Skript?
Dieser BACKUP DATABASE
Befehl funktioniert mit beiden Wiederherstellungsmodellen. Was die routinemäßige Datenbankverkleinerung betrifft ... TUN SIE ES NICHT !!!! Im Ernst, passen Sie die Größe Ihrer Datenbank entsprechend an. Wenn Sie das vollständige Wiederherstellungsmodell verwenden, stellen Sie sicher, dass Sie routinemäßige und häufige Transaktionsprotokolldateien ausführen, um nicht nur die Transaktionsprotokollgröße in Schach zu halten, sondern auch Wiederherstellungspunktobjekte zu erfüllen.
Wir machen keine andere Art der Sicherung der Datenbanken und daher auch nicht der Transaktionsprotokolle, oder?
Wenn Ihre Datenbank das vollständige Wiederherstellungsmodell verwendet, sollten Sie Transaktionsprotokollsicherungen durchführen. Wenn sich Ihre Datenbank in einer einfachen Wiederherstellung befindet, können Sie physisch keine Transaktionsprotokollsicherung durchführen.
Was das zu verwendende Wiederherstellungsmodell (einfach oder vollständig) betrifft, können wir diese Entscheidung nicht für Sie treffen. Das können nur Sie, Ihr Business-Team und Ihre SLAs.