Wiederherstellen eines einzelnen Mandanten mit einer SaaS-Anwendung mit einer Datenbank pro Mandant

Gilt für: Azure SQL-Datenbank

Mit dem Modell „eine Datenbank pro Mandant“ ist es ganz einfach, einen einzelnen Mandanten – ohne Auswirkungen auf andere Mandanten – auf einen früheren Zeitpunkt wiederherzustellen.

In diesem Tutorial lernen Sie zwei Muster der Datenwiederherstellung kennen:

  • Wiederherstellen einer Datenbank in eine parallele Datenbank (Nebeneinander)
  • Direktes Wiederherstellen einer Datenbank mit Ersetzen der vorhandenen Datenbank
Muster BESCHREIBUNG
Wiederherstellen in eine parallele Datenbank Dieses Muster kann für Aufgaben wie Überprüfung, Überwachung und Compliance verwendet werden, um einem Mandanten das Überprüfen des Zustands seiner Daten zu einem früheren Zeitpunkt zu ermöglichen. Die aktuelle Datenbank des Mandanten bleibt online und unverändert erhalten.
Direktes Wiederherstellen Dieses Muster wird normalerweise zum Wiederherstellen eines Mandanten auf einen früheren Zeitpunkt verwendet, nachdem der Mandant versehentlich Daten gelöscht oder beschädigt hat. Die ursprüngliche Datenbank wird offline geschaltet und durch die wiederhergestellte Datenbank ersetzt.

Stellen Sie zum Durchführen dieses Tutorials sicher, dass die folgenden Voraussetzungen erfüllt sind:

Einführung in die SaaS-Muster zur Mandantenwiederherstellung

Es gibt zwei einfache Muster zum Wiederherstellen der Daten eines einzelnen Mandanten. Da Mandantendatenbanken voneinander isoliert sind, hat das Wiederherstellen eines Mandanten keine Auswirkungen auf Daten anderer Mandanten. Das PITR-Feature (Point-in-Time-Wiederherstellung) von Azure SQL-Datenbank wird in beiden Mustern verwendet. Mit PITR wird stets eine neue Datenbank erstellt.

  • Paralleles Wiederherstellen: Beim ersten Muster wird eine neue Datenbank parallel zur aktuellen Datenbank des Mandanten erstellt. Der Mandant erhält anschließend schreibgeschützten Zugriff auf die wiederhergestellte Datenbank. Die wiederhergestellten Daten können überprüft und möglicherweise zum Überschreiben der aktuellen Datenwerte verwendet werden. Es ist Aufgabe des App-Designers, die Art des Mandantenzugriffs auf die wiederhergestellte Datenbank zu bestimmen und festzulegen, welche Optionen für die Wiederherstellung bereitgestellt werden. In manchen Szenarien reicht es bereits aus, dem Mandanten nur das Überprüfen seiner Daten zu einem früheren Zeitpunkt zu ermöglichen.

  • Direktes Wiederherstellen: Das zweite Muster ist hilfreich, wenn Daten verloren gegangen sind oder beschädigt wurden und der Mandant die Daten auf einen früheren Zeitpunkt wiederherstellen möchte. Der Mandant wird offline geschaltet, während die Datenbank wiederhergestellt wird. Die ursprüngliche Datenbank wird gelöscht, und die wiederhergestellte Datenbank wird umbenannt. Der Zugriff auf die Sicherungskette der ursprünglichen Datenbank bleibt nach dem Löschvorgang erhalten, sodass Sie bei Bedarf die Datenbank auf einen früheren Zeitpunkt wiederherstellen können.

Wenn die Datenbank die aktive Georeplikation und die parallele Wiederherstellung verwendet, empfiehlt es sich, alle erforderlichen Daten aus der wiederhergestellten Kopie in die ursprüngliche Datenbank zu kopieren. Wenn Sie die ursprüngliche Datenbank durch die wiederhergestellte Datenbank ersetzen, müssen Sie die Georeplikation neu konfigurieren und synchronisieren.

Abrufen der Skripts zur SaaS-Anwendung Wingtip Tickets mit einer Datenbank pro Mandant

Die Skripts und der Anwendungsquellcode der mehrinstanzenfähigen Wingtip Tickets-SaaS-Datenbank stehen im GitHub-Repository WingtipTicketsSaaS-DbPerTenant zur Verfügung. Schritte zum Herunterladen und Entsperren der Wingtip Tickets-SaaS-Skripts finden Sie unter Allgemeine Anweisungen zum Arbeiten mit den Wingtip-Tickets-Beispielanwendungen für SaaS.

Vorbereitung

Wenn eine Datenbank erstellt wird, kann es 10 bis 15 Minuten dauern, bevor die erste vollständige Sicherung für eine Wiederherstellung verfügbar ist. Wenn Sie die Anwendung gerade installiert haben, müssen Sie möglicherweise einige Minuten warten, bevor Sie dieses Szenario ausprobieren können.

Simulieren des versehentlichen Löschens von Daten durch den Mandanten

Um diese Wiederherstellungsszenarien zu demonstrieren, müssen Sie zuerst ein Ereignis in einer Mandantendatenbank „versehentlich“ löschen.

Öffnen der Events-App, um die aktuellen Ereignisse zu prüfen

  1. Öffnen Sie den Event Hub (http://events.wtp.<user>.trafficmanager.net), und wählen Sie Contoso Concert Hall aus.

    Screenshot der Event Hub-Seite für die Beispielanwendung. Der Eintrag „Contoso Concert Hall“ ist rot umrandet.

  2. Scrollen Sie durch die Liste der Veranstaltungen, und notieren Sie sich die letzte Veranstaltung in der Liste.

    Screenshot der Beispielanwendung. Das letzte Ereignis wird angezeigt.

„Versehentliches“ Löschen der letzten Veranstaltung

  1. Öffnen Sie ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1 in der PowerShell ISE, und legen Sie den folgenden Wert fest:

    • $DemoScenario = 1Löschen der letzten Veranstaltung (keine Ticketverkäufe) .
  2. Drücken Sie F5, um das Skript auszuführen und die letzte Veranstaltung zu löschen. Die folgende Bestätigungsmeldung wird angezeigt:

    Deleting last unsold event from Contoso Concert Hall ...
    Deleted event 'Seriously Strauss' from Contoso Concert Hall venue.
    
  3. Die Contoso-Ereignisseseite wird geöffnet. Scrollen Sie nach unten, und überprüfen Sie, ob die Veranstaltung nicht mehr vorhanden ist. Wenn sich die Veranstaltung weiterhin in der Liste befindet, wählen Sie Aktualisieren aus, und überprüfen Sie, ob sie noch vorhanden ist. Screenshot der Beispielanwendung. Das letzte Ereignis wurde entfernt.

Wiederherstellen einer Mandantendatenbank parallel mit der Produktionsdatenbank

In dieser Übung wird die Datenbank der Contoso Concert Hall mit dem Status eines bestimmten Zeitpunkts vor dem Löschen des Ereignisses wiederhergestellt. In diesem Szenario wird davon ausgegangen, dass Sie die gelöschten Daten in einer parallelen Datenbank nur überprüfen möchten.

Mit dem Skript Restore-TenantInParallel.ps1 wird eine parallele Mandantendatenbank namens ContosoConcertHall_old mit einem parallelen Katalogeintrag erstellt. Dieses Wiederherstellungsmuster eignet sich am besten zur Wiederherstellung nach einem geringfügigen Datenverlust. Sie können dieses Muster auch verwenden, wenn Sie Daten für Compliance- oder Überwachungszwecke überprüfen müssen. Dies ist auch die empfohlene Vorgehensweise bei Verwendung der aktiven Georeplikation.

  1. Schließen Sie den Abschnitt Simulieren des versehentlichen Löschens von Daten durch den Mandanten ab.
  2. Öffnen Sie ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1 in der PowerShell ISE.
  3. Legen Sie $DemoScenario = 2 fest, um das Szenario zur parallelen Wiederherstellung des Mandanten auszuwählen.
  4. Drücken Sie F5, um das Skript auszuführen.

Mit dem Skript wird die Mandantendatenbank auf einen Zeitpunkt vor dem Löschen des Ereignisses wiederhergestellt. Die Datenbank wird in einer neuen Datenbank mit dem Namen ContosoConcertHall_old wiederhergestellt. Die Katalogmetadaten in der wiederhergestellten Datenbank werden gelöscht, und die Datenbank wird anschließend mithilfe eines aus dem Namen ContosoConcertHall_old erstellten Schlüssels dem Katalog hinzugefügt.

Mit dem Demoskript wird die Seite mit den Ereignissen für diese neuen Mandantendatenbank in Ihrem Browser geöffnet. Anhand der URL http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall_old können Sie erkennen, dass auf dieser Seite Daten aus der wiederhergestellten Datenbank angezeigt werden, wobei dem Namen _old angefügt ist.

Scrollen Sie durch die im Browser aufgelisteten Veranstaltungen, um zu überprüfen, ob die im vorherigen Abschnitt gelöschte Veranstaltung wiederhergestellt wurde.

Sie würden einem Mandanten vermutlich den Zugriff auf wiederhergestellte Daten nicht gewähren, indem Sie den wiederhergestellten Mandanten als zusätzlichen Mandanten mit eigener Events-App verfügbar machen. Diese Vorgehensweise dient lediglich zum Veranschaulichen des verwendeten Wiederherstellungsmusters. Normalerweise würden Sie schreibgeschützten Zugriff auf die alten Daten gewähren und die wiederhergestellte Datenbank für einen bestimmten Zeitraum beibehalten. Im Beispiel können Sie, wenn Sie fertig sind, den wiederhergestellten Mandanteneintrag durch Ausführen des Szenarios Entfernen des wiederhergestellten Mandanten löschen.

  1. Legen Sie $DemoScenario = 4 fest – Entfernen des wiederhergestellten Mandanten.
  2. Drücken Sie F5, um das Skript auszuführen.
  3. Der Eintrag ContosoConcertHall_old ist jetzt aus dem Katalog gelöscht. Schließen Sie die Veranstaltungsseite für diesen Mandanten in Ihrem Browser.

Direktes Wiederherstellen eines Mandanten, Ersetzen der vorhandenen Mandantendatenbank

In dieser Übung wird der Mandant „Contoso Concert Hall“ auf einen Zeitpunkt vor dem Löschen des Ereignisses wiederhergestellt. Mit dem Skript Restore-TenantInPlace wird eine Mandantendatenbank in eine neue Datenbank wiederhergestellt und die ursprüngliche Datenbank gelöscht. Dieses Wiederherstellungsmuster eignet sich optimal für die Wiederherstellung bei einer schwerwiegenden Datenbeschädigung, bei der der Mandant mit erheblichen Datenverlusten rechnen muss.

  1. Öffnen Sie die Datei Demo-RestoreTenant.ps1 in der PowerShell ISE.
  2. Legen Sie $DemoScenario = 5 fest, um das Szenario zum direkten Wiederherstellen des Mandanten auszuwählen.
  3. Drücken Sie F5, um das Skript auszuführen.

Mit dem Skript wird die Mandantendatenbank auf einen Zeitpunkt vor dem Löschen des Ereignisses wiederhergestellt. Zuerst wird der Mandant „Contoso Concert Hall“ offline geschaltet, um weitere Aktualisierungen zu verhindern. Anschließend wird durch die Wiederherstellung vom Wiederherstellungspunkt eine parallele Datenbank erstellt. Die wiederhergestellte Datenbank wird nach dem Zeitstempel benannt, um sicherzustellen, dass der Datenbankname nicht zu Konflikten mit dem Namen der vorhandenen Mandantendatenbank führt. Als Nächstes wird die alte Mandantendatenbank gelöscht, und die wiederhergestellte Datenbank wird mit dem Namen der ursprünglichen umbenannt. Schließlich wird Contoso Concert Hall wieder online geschaltet, um den App-Zugriff auf die wiederhergestellte Datenbank zu ermöglichen.

Sie haben die Datenbank erfolgreich mit dem Status zu einem bestimmten Zeitpunkt vor dem Löschen des Ereignisses wiederhergestellt. Die Seite Events wird geöffnet, sodass Sie sich von der Wiederherstellung der letzten Veranstaltung überzeugen können.

Sie müssen nach dem Wiederherstellen der Datenbank weitere 10 bis 15 Minuten warten, bis die erste vollständige Sicherung für ein erneutes Wiederherstellen verfügbar ist.

Hinweis

Das Wiederherstellen von mehrinstanzenfähigen Datenbanken in einem einzelnen Mandanten ist nicht möglich.

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Wiederherstellen einer Datenbank in eine parallele Datenbank (Nebeneinander)
  • Direktes Wiederherstellen einer Datenbank

Zusätzliche Ressourcen