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.

Diagramm: Regionsübergreifendes Sichern eines Containers

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. Wenn Sie auf den neuesten wiederherstellbaren Zeitstempel verweisen, können Sie sicherstellen, dass Ressourcensicherungen bis zum angegebenen Zeitstempel vorliegen und in dieser Region wiederhergestellt werden können.

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 Modi Sie sich entscheiden, richtet sich nach den Szenarien. In den meisten Fällen ist es besser, gelöschte Container und Datenbanken in einem bestehenden Konto wiederherzustellen. So vermeiden Sie die Kosten für die Datenübertragung, die im Falle einer Wiederherstellung auf einem neuen Konto anfallen. Für Szenarien, in denen die Daten versehentlich geändert wurden, ist die Wiederherstellung in ein neues Konto die beste Option.

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, Virtual Network-VNet, rollenbasierte Zugriffssteuerung (RBAC) auf Datenebene oder private Endpunkte.
  • Alle Regionen aus dem Quellkonto.
  • Gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen
  • Zuweisungen der rollenbasierten Zugriffssteuerung.

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

Das Feature „Zeitpunktwiederherstellung“ unterstützt die folgenden Szenarien. 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.

Lebenszyklusereignisse mit Zeitstempeln für ein wiederherstellbares Konto

  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.

    Lebenszyklusereignisse mit Zeitstempeln für eine wiederherstellbare Datenbank und einen wiederherstellbaren 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.

Preiskalkulation

Für Azure Cosmos DB-Konten mit fortlaufender 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 Gebühr hängt von der wiederhergestellten Datenmenge ab:

    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.
  • Die Aufbewahrungsstufe von 30 Tagen wird für den Sicherungsspeicher in Rechnung gestellt. Die Aufbewahrungsstufe von 7 Tagen wird nicht in Rechnung gestellt.
  • Die Wiederherstellung wird in beiden Ebenen immer berechnet.

Gültigkeitsdauer

  • Der standardmäßige Wiederherstellungsvorgang stellt alle Eigenschaften eines Containers einschließlich seiner TTL-Konfiguration wieder her. Das kann zum Löschen von Daten führen, wenn die Wiederherstellung ohne eine Möglichkeit erfolgt, die TTL zu deaktivieren. Um das Löschen zu verhindern, übergeben Sie bei der Wiederherstellung den Parameter zur Deaktivierung von TTL in PowerShell (-DisableTtl $true) oder der Befehlszeilenschnittstelle (--disable-ttl True).

Kundenseitig 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.

  • Multi region write-Konten werden nicht unterstützt.

  • Synapse Link für Datenbankkonten mit fortlaufender Sicherung ist allgemein verfügbar. Die entgegengesetzte Situation, also der fortlaufende Sicherungsmodus für Synapse Link-fähige Konten, befindet sich in der öffentlichen Vorschau. Derzeit können Kunden, die Synapse Link von Containern deaktiviert haben, nicht zu einer fortlaufenden Sicherung migrieren. 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. Eine andere Region sollte explizit zur Resilienz des Kontos und der Sicherung hinzugefügt werden.

  • 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 kann mit den Erweiterungsbefehlen zum Erstellen von Sammlungen geschehen.

  • 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.

  • Eindeutige Indizes können in der API für MongoDB nicht hinzugefügt, aktualisiert oder gelöscht 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