2009-03-08 15 views
2

Ich habe 2 Verwirrungen über SQL Server Recovery und Bulk-Recovery-Modus.SQL Server Recovery und Bulk-Recovery-Modus Verwirrungen

  1. ob Recovery-Prozess selbst Transaktionsprotokoll generieren wird (hier meine ich die Protokolle sind die durch Wiederherstellungsprozess generierten Protokolle - falls vorhanden und nicht durch normale Datenbank DML/DDL-Operationen generiert)? Warum?

  2. in der Bulk-Recovery-Modus, ob das Verständnis von A oder B korrekt ist (wenn weder corect ist, helfen Sie mir bitte, hier sind meine zwei unterschiedliche Auffassungen zu korrigieren, die mich verwirrt verursacht)

A. die normale DML/DLL-Massenoperation in der Produktdatenbank (nicht die Wiederherstellungsoperation) wird eine minimale Menge an Protokollen erzeugen, da Protokolle minimal sind, der Wiederherstellungsprozess, der log verwendet, kann keinen Punkt in der Mitte von Massenoperationen wiederherstellen; B. der normale DML/DLL Massenvorgang auf Produktdatenbank wird noch normal große Menge von Protokollen (die gleiche wie nicht-Bulk-Log-Wiederherstellungsmodus) erzeugen, aber Recovery-Prozess wird Bulk-Betrieb in Transaktionsprotokoll als Einheit behandeln zu erholen, die generiert minimale Protokolle für den Wiederherstellungsprozess selbst;

Grüßen, George

+0

Ist nicht Ihre Frage (1) die gleiche wie unser früherer Beitrag: http://Stackoverflow.com/questions/613276/does-the-full-recovery-model-generate-additional-transaction-logs - wenn nicht können Sie bitte klären – Kristen

+0

Hallo Kristen, diese Frage wird von dieser Frage nach meiner weiteren lernen für ein paar Tage aufgewendet. Ich will es nicht im selben Thema durcheinander bringen, um so viele Dinge zu diskutieren, also habe ich ein neues Thema aufgemacht, um allen Menschen meine neuen Gedanken und Verwirrungen klarzumachen. Vielen Dank. :-) – George2

Antwort

1

Bitte lesen Sie die folgenden zwei Artikel:

http://technet.microsoft.com/en-us/magazine/2009.02.logging.aspx

http://www.simple-talk.com/sql/backup-and-recovery/simple-talk-sql-server-backup-crib-sheet/

Ein Wiederherstellungsprozess erstellen keine Protokolle. Für die Durchführung eines Point-in-Time-Wiederherstellungsprozesses werden Protokolle benötigt (zusammen mit einer vollständigen Datenbanksicherung und möglicherweise differenziellen Sicherungen).

Eine Datenbank mit ‚Bulk-Protokollierung‘ Verwertung funktioniert ähnlich wie ein ‚voll‘ ein der Ausnahme, dass nur die Wirkung von Massen Operationen in den Sicherungen aufgezeichnet werden, anstatt die Transaktionen beteiligt. Diese Massenoperationen umfassen BCP, bestimmte Daten Transformation Services (DTS) Operationen, Bild und Text Manipulationen und SELECT INTO. Durch ein ‚Bulk-Protokollierung‘ Wiederherstellungsmodell verwenden, die Bulk-Operationen sind nicht protokollierte und daher viel schneller. Point-in-time Erholung ist nicht möglich, wenn man von diese Massenvorgänge stattgefunden haben denn wenn eine Protokollsicherung keine Bulk-Operationen umfasst, die Log-Sicherung beiden Protokolldatensätze enthält und die Daten Seiten, die durch Masse verändert wurden Operationen, und dies gilt für alle Änderungen bis zu dem Punkt, dass das Protokoll gesichert wurde.

+0

Danke Mitch! 1. Wenn die Wiederherstellung selbst kein Protokoll generiert, wenn das System mitten in der Wiederherstellung fehlschlägt, wie kann sichergestellt werden, dass der Datenbankstatus konsistent und fehlerfrei ist (im Prozess der Halbierung der Wiederherstellung)? 2. Sie meinen also, dass mein Verständnis von A für die Massenprotokollwiederherstellung korrekt ist? – George2

+0

Wenn ein System mitten in einer Wiederherstellung ausfällt, befinden Sie sich in derselben Position wie zu Beginn der Wiederherstellung. Fang einfach von vorne an. Eine Datenbank ist nicht verwendbar, bis das Ende des Wiederherstellungsprozesses angezeigt wird, indem die Datenbank für den normalen Gebrauch aktiviert wird. –

+0

Wenn jedoch die Wiederherstellung in der Mitte fehlschlägt (angenommen, wir starten den Datenbankserver neu), wie können wir dann feststellen, dass der Wiederherstellungsstatus in der Mitte fehlschlägt, wenn der Datenbankdienst neu gestartet wird, und versuchen, ihn wiederherzustellen? Wenn wir die Wiederherstellung vergessen und weiterhin verwenden, hat die Datenbank einen inkonsistenten Status? – George2