Fortlaufende Sicherung mit der Zeitpunktwiederherstellung von Azure Cosmos DB

GILT FÜR: NoSQL MongoDB Gremlin Tabelle

Das Feature „Zeitpunktwiederherstellung“ von Azure Cosmos DB unterstützt verschiedene Szenarien. Hierzu zählen beispielsweise:

  • Wiederherstellung nach einem versehentlichen Schreib- oder Löschvorgang in einem Container
  • Wiederherstellung eines gelöschten Kontos, einer Datenbank oder eines Containers
  • Wiederherstellung in einer beliebigen Region (in der Sicherungen vorhanden waren) zum Wiederherstellungszeitpunkt

Azure Cosmos DB erstellt die Datensicherung im Hintergrund, ohne zusätzlichen bereitgestellten Durchsatz (Anforderungseinheiten, RUs) zu beanspruchen oder die Leistung und Verfügbarkeit Ihrer Datenbank zu beeinträchtigen. Fortlaufende Sicherungen werden in jeder Region durchgeführt, in der das Konto vorhanden ist. Beispielsweise kann ein Konto über eine Schreibregion in „USA, Westen“ und über Leseregionen in „USA, Osten“ und „USA, Osten 2“ verfügen. Diese Replikatregionen können dann jeweils in einem Azure Storage-Remotekonto in der entsprechenden Region gesichert werden. Standardmäßig speichert jede Region die Sicherung in lokal redundanten Speicherkonten. Wenn für die Region Verfügbarkeitszonen aktiviert sind, wird die Sicherung in zonenredundanten Speicherkonten gespeichert.

Diagram illustrating how a container is backed up across multiple regions.

Das für die Wiederherstellung verfügbare Zeitfenster (auch Aufbewahrungszeitraum genannt) ist der niedrigere der beiden folgenden Werte: 30 Tage und sieben Tage.

Die ausgewählte Option hängt von der ausgewählten Ebene der fortlaufenden Sicherung ab. Der Zeitpunkt für die Wiederherstellung kann ein beliebiger Zeitstempel innerhalb des Aufbewahrungszeitraums sein, aber nicht weiter zurückliegen als der Punkt, an dem die Ressource erstellt wurde. Im Modus für hohe Konsistenz sind die Sicherungen in der Schreibregion aktueller als die Leseregionen. Leseregionen können aufgrund von Netzwerk- oder anderen vorübergehenden Problemen im Rückstand sein. Bei der Wiederherstellung haben Sie die Möglichkeit zum Abrufen des letzten wiederherstellbaren Zeitstempels für eine bestimmte Ressource in einer bestimmten Region. Durch Abrufen des neuesten Zeitstempels wird sichergestellt, dass für die Ressource Sicherungen bis zum angegebenen Zeitstempel erstellt wurden und dass die Ressource in dieser Region wiederhergestellt werden kann.

Aktuell können Sie die Inhalte eines Azure Cosmos DB-Kontos (API für NoSQL oder MongoDB, API für Table, API für Gremlin) zu einem bestimmten Zeitpunkt in einem anderen Konto wiederherstellen. Dieser Wiederherstellungsvorgang kann über das Azure-Portal, über die Azure CLI, per Azure PowerShell oder mithilfe von Azure Resource Manager-Vorlagen durchgeführt werden.

Redundanz für Sicherungsspeicher

Standardmäßig speichert Azure Cosmos DB Sicherungsdaten im kontinuierlichen Modus in lokal redundanten Speicherblobs. In Regionen, in denen Zonenredundanz konfiguriert ist, wird die Sicherung in zonenredundanten Speicherblobs gespeichert. Im fortlaufenden Sicherungsmodus können Sie die Art der Sicherungsspeicherredundanz nicht ändern.

Verschiedene Möglichkeiten für die Wiederherstellung

Der fortlaufende Sicherungsmodus unterstützt zwei Möglichkeiten zum Wiederherstellen von gelöschten Containern oder Datenbanken. Sie können wie im vorliegenden Dokument beschrieben in einem neuen Konto oder wie hier beschrieben in einem vorhandenem Konto wiederhergestellt werden. Für welche dieser beiden Optionen Sie sich entscheiden, richtet sich nach den Szenarien und Auswirkungen. In den meisten Fällen ist es besser, gelöschte Container und Datenbanken in einem vorhandenen Konto wiederherzustellen, um die Kosten für die Datenübertragung zu vermeiden, die bei einer Wiederherstellung in einem neuen Konto erforderlich ist. In Szenarien, in denen die Daten versehentlich geändert wurden, ist die Wiederherstellung in einem neuen Konto möglicherweise die bessere Wahl.

Was wird in einem neuen Konto wiederhergestellt?

Im stabilen Zustand werden alle Mutationsvorgänge, die für das Quellkonto durchgeführt werden (dies umfasst Datenbanken, Container und Elemente), innerhalb von 100 Sekunden asynchron gesichert. Falls das Azure Storage-Sicherungsmedium nicht aktiv oder verfügbar ist, werden die Mutationsvorgänge lokal gespeichert, bis das Medium wieder verfügbar ist. Anschließend werden die Mutationsvorgänge aus dem Speicher entfernt, um Genauigkeitseinbußen bei den Vorgängen zu verhindern, die wiederhergestellt werden können.

Sie können auswählen, ob eine beliebige Kombination von Containern für bereitgestellten Durchsatz, eine Datenbank mit gemeinsam genutztem Durchsatz oder das gesamte Konto wiederhergestellt werden soll. Bei Verwendung der Wiederherstellungsaktion werden alle Daten und die zugehörigen Indexeigenschaften unter einem neuen Konto wiederhergestellt. Mit dem Wiederherstellungsprozess wird sichergestellt, dass Daten, die für ein Konto, eine Datenbank oder einen Container wiederhergestellt werden, bis zum angegebenen Wiederherstellungszeitpunkt konsistent sind. Die Dauer des Wiederherstellungsvorgangs hängt von der Menge der Daten ab, die wiederhergestellt werden müssen. Die Konsistenzeinstellung des neu wiederhergestellten Datenbankkontos wird den Konsistenzeinstellungen des Quelldatenbankkontos entsprechen.

Hinweis

Im fortlaufenden Sicherungsmodus werden die Sicherungen in jeder Region durchgeführt, in der Ihr Azure Cosmos DB-Konto verfügbar ist. Die für jedes Regionskonto erstellten Sicherungen sind standardmäßig lokal redundant und zonenredundant, wenn für Ihr Konto das Feature Verfügbarkeitszone für diese Region aktiviert ist. Mit der Wiederherstellungsaktion werden Daten immer in einem neuen Konto wiederhergestellt.

Was wird nicht wiederhergestellt?

Nach der Zeitpunktwiederherstellung werden die folgenden Konfigurationen nicht wiederhergestellt:

  • Eine Teilmenge von Containern unter einer Datenbank mit gemeinsamem Durchsatz kann nicht wiederhergestellt werden. Die gesamte Datenbank kann als Ganzes wiederhergestellt werden.
  • Einstellungen für Firewall, VNet, RBAC auf Datenebene oder private Endpunkte.
  • Alle Regionen aus dem Quellkonto.
  • Gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen
  • Zuweisungen der rollenbasierten Zugriffssteuerung. Diese müssen erneut zugewiesen werden.

Sie können diese Konfigurationen dem wiederhergestellten Konto hinzufügen, nachdem der Wiederherstellungsvorgang abgeschlossen ist.

Wiederherstellbarer Zeitstempel für Live-Konten

Für die Wiederherstellung nicht gelöschter Azure Cosmos DB-Livekonten empfiehlt es sich, immer den letzten wiederherstellbaren Zeitstempel für den Container zu ermitteln. Sie können dann diesen Zeitstempel verwenden, um die aktuelle Version des Kontos wiederherzustellen.

Wiederherstellungsszenarien

Nachfolgend sind einige der wichtigsten Szenarien für das Feature „Zeitpunktwiederherstellung“ aufgeführt. Die Szenarien [1] bis [3] veranschaulichen, wie eine Wiederherstellung ausgelöst wird, wenn der Zeitstempel für die Wiederherstellung im Voraus bekannt ist. Es kann jedoch Szenarien geben, in denen der genaue Zeitpunkt der versehentlichen Löschung oder Beschädigung nicht bekannt ist. In den Szenarien [4] und [5] wird gezeigt, wie Sie den Zeitstempel für die Wiederherstellung mithilfe der neuen Ereignisfeed-APIs für die wiederherstellbare Datenbank oder den Container ermitteln.

Life-cycle events with timestamps for a restorable account.

  1. Wiederherstellen eines gelöschten Kontos: Alle gelöschten Konten, die wiederhergestellt werden können, werden im Bereich Wiederherstellen angezeigt. Angenommen, Konto A wird bei Zeitstempel T3 gelöscht. In diesem Fall reichen der Zeitstempel direkt vor T3, Speicherort, Ressourcengruppe und Zielkontoname für die Wiederherstellung über das Azure-Portal, PowerShell oder die CLI aus.

    Life-cycle events with timestamps for a restorable database and container.

  2. Wiederherstellen von Daten eines Kontos in einer bestimmten Region: Angenommen, Konto A ist bei Zeitstempel T3 in den beiden Regionen USA, Osten und USA, Westen vorhanden. Falls Sie eine Kopie von Konto A in USA, Westen benötigen, können Sie über das Azure-Portal, PowerShell oder die CLI eine Zeitpunktwiederherstellung mit der Region „USA, Westen“ als Zielspeicherort durchführen.

  3. Wiederherstellen nach einem versehentlichen Schreib- oder Löschvorgang in einem Container mit einem bekannten Zeitstempel für die Wiederherstellung: Angenommen, Sie wissen, dass der Inhalt von Container 1 in Datenbank 1 bei Zeitstempel T3 versehentlich geändert wurde. In diesem Fall können Sie eine Zeitpunktwiederherstellung über das Azure-Portal, PowerShell oder die CLI in ein anderes Konto bei Zeitstempel T3 durchführen, um den gewünschten Containerzustand wiederherzustellen.

  4. Wiederherstellen eines Kontos zu einem früheren Zeitpunkt vor dem versehentlichen Löschen der Datenbank: Im Azure-Portal können Sie mithilfe des Bereichs für Ereignisfeeds feststellen, wann eine Datenbank gelöscht wurde, und den Zeitpunkt für die Wiederherstellung ermitteln. Ebenso können Sie mithilfe der Azure CLI und PowerShell das Datenbanklöschungsereignis ermitteln, indem Sie den Ereignisfeed der Datenbank auflisten und dann den Wiederherstellungsbefehl mit den erforderlichen Parametern auslösen.

  5. Wiederherstellen eines Kontos zu einem früheren Zeitpunkt vor dem versehentlichen Löschen oder Ändern der Containereigenschaften: Im Azure-Portal können Sie mithilfe des Bereichs für Ereignisfeeds feststellen, wann ein Container erstellt, geändert oder gelöscht wurde, um so den Zeitpunkt für die Wiederherstellung zu ermitteln. Ebenso können Sie mithilfe der Azure CLI und PowerShell alle Containerereignisse ermitteln, indem Sie den Ereignisfeed des Containers auflisten und dann den Wiederherstellungsbefehl mit den erforderlichen Parametern auslösen.

Berechtigungen

Mit Azure Cosmos DB können Sie die Wiederherstellungsberechtigungen für ein Konto für die fortlaufende Sicherung auf eine bestimmte Rolle oder einen Prinzipal isolieren und einschränken. Weitere Informationen finden Sie im Artikel zu Berechtigungen.

Preise

Für Azure Cosmos DB-Konten mit aktivierter fortlaufende 30-Tage-Sicherung fällt eine monatliche Zusatzgebühr für das Speichern der Sicherung an. Gebühren für das Wiederherstellen Ihrer Daten fallen sowohl bei der fortlaufenden 30-Tage-Sicherung als auch bei der fortlaufenden 7-Tage-Sicherung an. Die Wiederherstellungskosten werden bei jedem Initiieren des Wiederherstellungsvorgangs hinzugefügt. Wenn Sie ein Konto mit fortlaufender Sicherung konfigurieren, die Daten aber nicht wiederherstellen, sind in Ihrer Rechnung nur Kosten für den Sicherungsspeicher enthalten.

Das folgende Beispiel basiert auf dem Preis für ein Azure Cosmos DB-Konto, das in der Region „USA, Westen“ bereitgestellt wird. Die Preise und die Berechnung können je nach verwendeter Region variieren. Aktuelle Preisinformationen finden Sie auf der Seite Azure Cosmos DB – Preise.

  • Bei allen Konten mit aktivierter Richtlinie für die fortlaufende Sicherung mit 30 Tagen fallen monatliche Zusatzgebühren für den Sicherungsspeicher an. Diese werden wie folgt berechnet:

    0,20 USD/GB * Datengröße in GB im Konto * Anzahl der Regionen

  • Jeder Aufruf der Wiederherstellungs-API ist mit einer einmaligen Gebühr verbunden. Die Höhe der Gebühr ergibt sich durch die Menge der wiederhergestellten Daten und wird wie folgt berechnet:

    0,15 USD/GB * Datengröße in GB

Wenn Sie beispielsweise über 1 TB Daten in zwei Regionen verfügen, sieht die Berechnung wie folgt aus:

  • Die Kosten für den Sicherungsspeicher werden als (1000 * 0,20 × 2) = 400 USD pro Monat berechnet.

  • Die Kosten für die Wiederherstellung werden als (1000 * 0,15) = 150 USD pro Wiederherstellung berechnet.

Tipp

Weitere Informationen zum Messen der aktuellen Datennutzung Ihres Azure Cosmos DB-Kontos finden Sie unter Informationen zu Azure Cosmos DB-Erkenntnissen von Azure Monitor. Auf der Ebene mit sieben aufeinanderfolgenden Tagen fallen keine Gebühren für die Sicherung der Daten an.

Fortlaufende 30-Tage-Ebene und fortlaufende 7-Tage-Ebene

  • Bei einer Ebene beträgt der Aufbewahrungszeitraum 30 Tage, bei der anderen sieben Tage.
  • Bei der Ebene mit 30-tägiger Aufbewahrungsdauer wird eine Gebühr für den Sicherungsspeicher erhoben, bei der siebentägigen Ebene nicht.
  • Die Wiederherstellung wird in beiden Ebenen immer berechnet.

Vom Kunden verwaltete Schlüssel

Unter Wie wirken sich kundenseitig verwaltete Schlüssel auf die fortlaufende Sicherung aus? erfahren Sie Folgendes:

  • Konfigurieren Ihres Azure Cosmos DB-Kontos bei Verwendung von kundenseitig verwalteten Schlüsseln mit fortlaufender Sicherung
  • Auswirkung von kundenseitig verwalteten Schlüsseln auf die Wiederherstellung

Aktuelle Einschränkungen

Für die Zeitpunktwiederherstellungsfunktion gelten derzeit die folgenden Einschränkungen:

  • Azure Cosmos DB APIs für SQL, MongoDB, Gremlin und Table werden für die fortlaufende Sicherung unterstützt. Die API für Cassandra wird jetzt nicht unterstützt.

  • Konten für Schreibvorgänge in mehreren Regionen werden nicht unterstützt.

  • Derzeit kann Azure Synapse Link in fortlaufenden Sicherungsdatenbankkonten aktiviert werden. Aber die entgegengesetzte Situation wird noch nicht unterstützt, es ist nicht möglich, die kontinuierliche Sicherung in aktivierten Synapse Link-Datenbankkonten zu aktivieren. Und analytischer Speicher ist nicht in Sicherungen enthalten. Weitere Informationen zu Sicherung und Analysespeicher finden Sie unter Analysespeichersicherung.

  • Das wiederhergestellte Konto wird in derselben Region erstellt, in der sich Ihr Quellkonto befindet. Sie können kein Konto in einer Region wiederherstellen, in der das Quellkonto nicht vorhanden war.

  • Das Wiederherstellungsfenster beträgt nur 30 Tage für den fortlaufenden 30-Tage-Tarif und sieben Tage für den fortlaufenden 7-Tage-Tarif. Diese Ebenen können gewechselt werden, aber die tatsächlichen Mengen (7 oder 30) können nicht geändert werden. Wenn Sie vom 30-Tage-Tarif auf den 7-Tage-Tarif wechseln, besteht außerdem die Möglichkeit für Datenverluste an Tagen, die über den siebten hinaus hinausgehen.

  • Die Sicherungen sind nicht automatisch georedundant. Sie müssen explizit eine weitere Region hinzufügen, um Resilienz für das Konto und die Sicherung zu erzielen.

  • Während einer Wiederherstellung dürfen die IAM-Richtlinien (Identity & Access Management) nicht geändert oder gelöscht werden. Diese Richtlinien erteilen dem Konto die Berechtigungen zum Ändern der VNets und der Firewallkonfigurationen.

  • Azure Cosmos DB for MongoDB-Konten mit fortlaufender Sicherung unterstützen nicht das Erstellen eines eindeutigen Indexes für eine vorhandene Sammlung. Für ein solches Konto müssen eindeutige Indizes zusammen mit ihrer Sammlung erstellt werden. Dies geschieht mit den Erweiterungsbefehlen zum Erstellen von Sammlungen.

  • Bei der Zeitpunktwiederherstellung erfolgt die Wiederherstellung immer in einem neuen Azure Cosmos DB-Konto. Die Wiederherstellung für ein vorhandenes Konto wird derzeit nicht unterstützt. Falls Sie uns Feedback zur direkten Wiederherstellung zukommen lassen möchten, können Sie sich über Ihren Kundenberater an das Azure Cosmos DB-Team wenden.

  • Nach der Wiederherstellung wird der konsistente Index für bestimmte Sammlungen möglicherweise neu erstellt. Sie können den Status des Vorgangs für die Neuerstellung über die Eigenschaft IndexTransformationProgress verfolgen.

  • Beim Wiederherstellungsvorgang werden alle Eigenschaften eines Containers, einschließlich TTL-Konfiguration, wiederhergestellt. Daher ist es möglich, dass die wiederhergestellten Daten sofort gelöscht werden, wenn Sie dies konfiguriert haben. Um dies zu verhindern, muss der Zeitstempel vor dem Zeitpunkt liegen, zu dem die TTL-Eigenschaften dem Container hinzugefügt wurden.

  • Eindeutige Indizes können in der API für MongoDB nicht hinzugefügt oder aktualisiert werden, wenn Sie ein Konto im fortlaufenden Sicherungsmodus erstellen. Sie können auch nicht geändert werden, wenn Sie ein Konto vom periodischen zum fortlaufenden Modus migrieren.

  • Die Wiederherstellung im fortlaufenden Modus stellt möglicherweise keine Durchsatzeinstellung wieder auf, die ab dem Wiederherstellungspunkt gültig ist.

Nächste Schritte