2013-01-21 7 views
13

Wenn Sie LogShipping für SQL Server konfigurieren, können Sie festlegen, dass sich die sekundäre Datenbank im Modus "Keine Wiederherstellung" oder im Standby-Modus befindet. Keine Wiederherstellung bedeutet, dass Sie während des Protokollversands keinen Zugriff auf die Datenbank haben. Im Standby-Modus erhalten Sie schreibgeschützten Zugriff. Wenn Sie die Option zum Trennen der Benutzer bei jeder Wiederherstellung auswählen, wird der Protokollversand nicht beeinträchtigt. Dies sieht für mich wie ein zusätzlicher Vorteil des Standby-Modus aus, aber soweit ich das sehe, erwähnt die Dokumentation keine nachteiligen Auswirkungen.Log-Shipping: Warum sollten Sie sich für den Wiederherstellungsmodus entscheiden?

Ich wundere mich deshalb, warum jemand wählen würde, No Recovery-Modus zu verwenden? Die einzigen plausiblen Gründe, die ich mir vorstellen kann, sind, wenn der Standby-Modus eine signifikante Leistungsverschlechterung verursacht (aber in den Dokumenten wird nichts dergleichen erwähnt) oder wenn es eine Sicherheitsanforderung gibt, aktiv zu verhindern, dass jemand den Inhalt der sekundären Datenbank sieht (was würde selten/unwahrscheinlich scheinen).

Kann mir jemand aufklären, was der Vorteil der Wahl No Recovery-Modus sein soll?

+7

Ich verstehe nicht, warum dies außerhalb des Themas gilt. Die damit verbundene FAQ enthält die Kriterien "• von Programmierern häufig verwendete Software-Tools". Log-Shipping ist ein Teil von SQL Server, der sehr häufig von Programmierern verwendet wird. Eine Suche in StackOverflow zeigt, dass Fragen zu LogShipping hier gestellt und beantwortet werden. – PhantomDrummer

Antwort

16

Wenn Sie den Modus NORECOVERY verwenden, wird der Zieldatenbank kein Zugriff gewährt, sodass die Datenbank nicht über nicht festgeschriebene Transaktionen informiert werden muss. Das Protokoll kann einfach "wie es ist" wiederhergestellt und in diesem Zustand belassen werden.

Wenn Sie den Modus STANDBY verwenden, wird die Datenbank als NORECOVERY wiederhergestellt. Anschließend werden alle nicht festgeschriebenen Transaktionen im Protokoll analysiert und zurückgesetzt. Es kann dann nur lesenden Zugriff auf Benutzer geben. Wenn das nächste Protokoll wiederhergestellt wird, trennt die Datenbank alle Benutzer und führt die nicht festgeschriebenen Transaktionen aus dem letzten Protokoll vor dem Wiederherstellen erneut aus.

Wie Sie sehen können, hat STANDBY potenziell großen zusätzlichen Aufwand bei der Wiederherstellung, abhängig von Ihrem Transaktionsvolumen.

Mehr Details at this article at My World of SQL.