Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Datenkopien in Azure Cosmos DB mithilfe von Containerkopieraufträgen erstellen.
Falls Sie eines der folgenden Szenarien erreichen möchten, müssen Sie möglicherweise Daten von Ihrem Azure Cosmos DB-Konto kopieren.
- Kopieren aller Elemente von einem Container in einen anderen.
- Ändern der Granularität, bei der der Durchsatz bereitgestellt wird – von Datenbank zu Container und umgekehrt.
- Ändern des Partitionsschlüssel eines Containers.
- Aktualisieren der eindeutigen Schlüssel für einen Container.
- Umbenennen eines Containers oder einer Datenbank.
- Ändern Sie den Kapazitätsmodus eines Kontos von „Serverlos“ in „Bereitgestellt“ oder umgekehrt.
- Übernehmen Sie neue Features, die nur für neue Container unterstützt werden, z. B. hierarchische Partitionsschlüssel.
Kopieraufträge können mit Azure CLI-Befehlen erstellt und verwaltet werden.
Erste Schritte
Um mit der Erstellung einer Onlinecontainerkopie für Azure Cosmos DB for NoSQL-API-Konten zu beginnen, registrieren Sie sich im Azure-Portal für die Previewfunktion mit dem Flag Onlinecontainerkopie (NoSQL) in Previewfunktionen. Sobald die Registrierung abgeschlossen ist, wird die Vorschau für alle NoSQL-API-Konten im Abonnement angezeigt.
Voraussetzungen
- Aktivieren Sie die fortlaufende Sicherung im Azure Cosmos DB-Quellkonto.
- Registrieren Sie sich für die Vorschaufunktion „Alle Versionen anzeigen und Änderungsfeed-Modus löschen“ im Abonnement des Quellkontos.
Wichtig
Alle Schreibvorgänge in den Quellcontainer werden mit 10% zusätzlichen RUs belastet, um sowohl die vorherigen als auch die aktuellen Versionen von Änderungen an Elementen im Container beizubehalten. Diese Erhöhung der RU-Gebühren kann zukünftig geändert werden.
Kopieren der Daten eines Containers
- Erstellen Sie den Azure Cosmos DB-Zielcontainer mithilfe der Einstellungen, die Sie verwenden möchten (Partitionsschlüssel, Durchsatzgranularität, Anforderungseinheiten, eindeutiger Schlüssel usw.).
- Erstellen Sie den Containerkopieauftrag.
- Überwachen des Status des Kopiervorgangs
- Nachdem alle Dokumente kopiert wurden, beenden Sie die Updates im Quellcontainer und rufen die Fertigstellungs-API auf, um den Auftrag als abgeschlossen zu markieren.
- Sie setzen die Vorgänge fort, indem Sie die Anwendung oder den Client wie vorgesehen auf den Quell- oder Zielcontainer verweisen.
Wie funktioniert das Kopieren eines Containers?
- Die Plattform ordnet dem Azure Cosmos DB-Konto für das Ziel serverseitige Compute-Instanzen zu, um die Containerkopieraufträge auszuführen.
- Ein einzelner Auftrag wird jederzeit in allen Instanzen ausgeführt.
- Die Onlinekopieraufträge verwenden den Modus Alle Versionen und Änderungsfeed löschen, um die Daten zu kopieren und inkrementelle Änderungen vom Quellcontainer in den Zielcontainer zu replizieren.
- Nach Abschluss des Auftrags werden diese Instanzen von der Plattform nach 15 Minuten Inaktivität deaktiviert.
Sie können Kopieraufträge für Offlinesammlungen ausführen, um Daten innerhalb desselben Azure Cosmos DB for MongoDB-Kontos zu kopieren.
Daten einer Sammlung kopieren
- Erstellen Sie die Azure Cosmos DB-Zielauflistung mithilfe der Einstellungen, die Sie verwenden möchten (Partitionsschlüssel, Durchsatzgranularität, Anforderungseinheiten, eindeutiger Schlüssel usw.).
- Beenden Sie die Vorgänge in der Quellsammlung, indem Sie die Anwendungsinstanzen oder alle Clients anhalten, die damit verbunden sind.
- Erstellen Sie den Kopierauftrag.
- Überwachen Sie den Status des Kopierauftrags, und warten Sie, bis er abgeschlossen ist.
- Setzen Sie die Vorgänge fort, indem Sie die Anwendung oder den Client wie vorgesehen auf die Quell- oder Zielauflistung verweisen.
Hinweis
Es wird dringend empfohlen, die Durchführung von Vorgängen in der Quellsammlung zu beenden, bevor der Offlinekopierauftrag für die Sammlung gestartet wird. Elementlöschungen und -aktualisierungen, die nach dem Beginn des Kopierauftrags in der Quellauflistung durchgeführt werden, werden möglicherweise nicht erfasst. Die Fortsetzung der Vorgänge in der Quellauflistung kann während der Bearbeitung des Kopierauftrags zu doppelten oder fehlenden Daten in der Zielauflistung führen.
Wie funktioniert das Kopieren von Sammlungen?
- Die Plattform ordnet dem Azure Cosmos DB-Konto serverseitige Computeinstanzen zu.
- Diese Instanzen werden zugeordnet, wenn mindestens ein Auflistungskopierauftrag im Konto erstellt wird.
- Die Kopieraufträge werden in diesen Instanzen ausgeführt.
- Ein einzelner Auftrag wird jederzeit in allen Instanzen ausgeführt.
- Die Instanzen werden von allen Kopieraufträgen, die unter demselben Konto laufen, gemeinsam genutzt.
- Die Offlinekopieraufträge verwenden Änderungsdatenströme, um die Daten zu kopieren und inkrementelle Änderungen aus der Quellauflistung in die Zielauflistung zu replizieren.
- Die Plattform kann die Zuweisung der Instanzen aufheben, wenn sie länger als 15 Minuten inaktiv sind.
Sie können eine Offlinekopie der Tabelle erstellen, um Daten einer Tabelle in eine andere Tabelle innerhalb desselben Azure Cosmos DB for Apache Cassandra-Kontos zu kopieren.
Kopieren der Daten einer Tabelle
- Erstellen Sie die Azure Cosmos DB-Zieltabelle mithilfe der Einstellungen, die Sie verwenden möchten (Partitionsschlüssel, Durchsatz granularität, Anforderungseinheiten usw.).
- Beenden Sie die Vorgänge in der Quelltabelle, indem Sie die Anwendungsinstanzen oder alle Clients anhalten, die damit verbunden sind.
- Erstellen Sie den Kopierauftrag.
- Überwachen Sie den Status des Kopierauftrags, und warten Sie, bis er abgeschlossen ist.
- Sie setzen die Vorgänge fort, indem Sie die Anwendung oder den Client wie vorgesehen auf die Quell- oder Zieltabelle verweisen.
Hinweis
Es wird dringend empfohlen, alle Vorgänge in der Quelltabelle zu beenden, bevor der Offline-Tabelle-Kopierauftrag gestartet wird. Elementlöschungen und -aktualisierungen, die nach dem Beginn des Kopierauftrags in der Quelltabelle durchgeführt werden, werden möglicherweise nicht erfasst. Die Fortsetzung der Vorgänge in der Quelltabelle kann während der Bearbeitung des Kopierauftrags zu doppelten oder fehlenden Daten in der Zieltabelle führen.
Wie funktioniert das Kopieren von Tabellen?
- Die Plattform ordnet dem Azure Cosmos DB-Konto serverseitige Computeinstanzen zu.
- Diese Instanzen werden zugeordnet, wenn mindestens ein Kopierauftrag im Konto erstellt wird.
- Die Kopieraufträge werden in diesen Instanzen ausgeführt.
- Ein einzelner Auftrag wird jederzeit in allen Instanzen ausgeführt.
- Die Instanzen werden von allen Kopieraufträgen, die unter demselben Konto laufen, gemeinsam genutzt.
- Die Offlinekopieraufträge verwenden den Änderungsfeed, um die Daten zu kopieren und inkrementelle Änderungen aus der Quelltabelle in die Zieltabelle zu replizieren.
- Die Plattform kann die Zuweisung der Instanzen aufheben, wenn sie länger als 15 Minuten inaktiv sind.
Faktoren, die sich auf die Geschwindigkeit der Ausführung von Kopieraufträgen auswirken
Die Geschwindigkeit des Containerkopierauftrags wird durch diese Faktoren bestimmt:
Einstellung des Quellcontainer- oder Datenbankdurchsatzes.
Einstellung des Durchsatzes für den Zielcontainer oder die Datenbank.
Tipp
Legen Sie den Zielcontainerdurchsatz auf mindestens das Doppelte des Quellcontainerdurchsatzes fest.
Serverseitige Computeinstanzen, die dem Azure Cosmos DB-Konto zur Ausführung der Datenübertragung zugeordnet sind.
Wichtig
Die Standard-SKU beinhaltet zwei 4-vCPU 16-GB-serverseitige Instanzen pro Konto.
Einschränkungen
Vorschauberechtigungskriterien
Containerkopieraufträge funktionieren nicht bei Konten, für die die folgenden Funktionen aktiviert sind. Deaktivieren Sie diese Funktionen, bevor Sie Containerkopieraufträge ausführen:
Kontokonfigurationen
Die Einstellung für die Gültigkeitsdauer (Time-to-Live, TTL) wurde im Zielcontainer nicht angepasst. Wenn ein Dokument im Quellcontainer nicht abgelaufen ist, wird der Countdown im Zielcontainer daher neu gestartet.
Häufig gestellte Fragen
Gibt es eine Vereinbarung zum Servicelevel (SLA) für Containerkopieraufträge?
Containerkopieraufträge werden derzeit bestmöglich unterstützt. Wir bieten keine SLA-Garantien für die Zeit, die bis zum Abschluss der Aufträge benötigt wird.
Kann ich mehrere Containerkopieaufträge in einem Konto erstellen?
Ja. Sie können mehrere Aufträge innerhalb desselben Kontos erstellen. Die Aufträge werden nacheinander ausgeführt. Sie können alle in einem Konto erstellten Aufträge auflisten und deren Fortschritt überwachen.
Kann ich eine komplette Datenbank im Azure Cosmos DB-Konto kopieren?
Sie müssen einen Auftrag für jeden Container in der Datenbank erstellen.
Ich habe ein Azure Cosmos DB-Konto mit mehreren Regionen. In welcher Region wird der Containerkopieauftrag ausgeführt?
Der Containerkopierauftrag wird in der Schreibregion ausgeführt. In einem Konto, das mit Schreibvorgängen in mehreren Regionen konfiguriert ist, wird der Auftrag in einer der Regionen in der Liste der Schreibregionen ausgeführt.
Was geschieht mit den Containerkopieraufträgen, wenn sich die Schreibregion des Kontos ändert?
Die Schreibregion des Kontos kann sich im seltenen Szenario des Ausfalls einer Region oder aufgrund eines manuellen Failovers ändern. In diesem Szenario würden nicht abgeschlossene Containerkopieraufträge, die innerhalb des Kontos erstellt wurden, fehlschlagen. In diesem Fall müssten Sie diese fehlgeschlagenen Aufträge neu erstellen. Die neu erstellten Aufträge werden dann in der neuen (aktuellen) Schreibregion ausgeführt.
Unterstützte Regionen
Derzeit wird die Containerkopie nur in den folgenden Regionen unterstützt:
Amerika | Europa und Afrika | Asien-Pazifik |
---|---|---|
Brasilien Süd | Frankreich, Mitte | Australien, Mitte |
Kanada, Mitte | Frankreich, Süden | Australien Zentral 2 |
Kanada, Osten | Deutschland, Norden | Australien (Osten) |
USA (Mitte) | Deutschland, Westen-Mitte | Indien, Mitte |
USA, Mitte EUAP | Nordeuropa | Japan, Osten |
Ostküste der USA | Norwegen, Osten | Korea, Mitte |
USA, Osten 2 | Norwegen, Westen | Asien, Südosten |
USA, Osten 2 EUAP | Schweiz, Norden | VAE Zentrale |
USA Nord Mitte | Schweiz, Westen | Westindien |
USA Süd Mitte | UK, Süden | Asien, Osten |
USA, Westen-Mitte | Westen des Vereinigten Königreichs | Malaysia, Süden |
USA, Westen | Europa, Westen | Japan, Westen |
USA, Westen 2 | Israel, Mitte | Australien, Südosten |
Nicht unterstützt | Südafrika, Norden | Nicht unterstützt |
Bekannte und häufige Probleme
Während der Verwendung der Online-Container-Kopierfunktion, wenn das
id
Feld im Quellcontainer geändert wird, speichert der Zielcontainer zwei separate Dokumente, die jeweils den unterschiedlichenid
Werten entsprechen.Stellen Sie beim Ändern von Partitionsschlüsseln beim Kopieren in den Zielcontainer sicher, dass der neue Partitionsschlüssel und
id
die Kombinationen für den gesamten Container eindeutig sind.Betrachten Sie z. B. das folgende Szenario:
Ursprünglicher Partitionsschlüssel:
/department
Quelldokumente:{ "id": "101", "employeeName": "John Doe", "department": "HR" }, { "id": "101", "employeeName": "John Doe", "department": "Finance" }
Neuer Partitionsschlüssel:
/employeeName
Resultierende Dokumente im Zielcontainer:{ "id": "101", "employeeName": "John Doe", "department": "HR" }, { "id": "101", "employeeName": "John Doe", "department": "Finance" }
In diesem Fall verwenden beide Dokumente jetzt denselben Partitionsschlüssel (
/employeeName
) undid
Kombination ("employeeName": "John Doe", "id": "101"
), was zu einem Konflikt führt. Dieser Konflikt führt zu einem Einfügefehler. Um solche Probleme zu vermeiden, stellen Sie sicher, dass der neue Partitionsschlüssel undid
kombinationen für alle Dokumente im Zielcontainer eindeutig sind.Fehler : Partitionsschlüssel erreichte maximale Größe von 20 GB
Stellen Sie beim Ändern von Partitionsschlüsseln während der Datenkopie in den Zielcontainer sicher, dass der neue Partitionsschlüssel innerhalb des Grenzwerts für die Größe des logischen Partitionsschlüssels von 20 GB verbleibt. Wenn dieser Grenzwert überschritten wird, schlägt der Auftrag mit dem folgenden Fehler fehl:
"code": "403", "message": "Response status code does not indicate success: Forbidden (403); Substatus: 1014; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {"Errors":["Partition key reached maximum size of 20 GB. Learn more: https://aka.ms/CosmosDB/sql/errors/full-pk"]"
Fehler: Besitzerressource ist nicht vorhanden.
Wenn bei der Auftragserstellung ein Fehler auftritt und der Fehler Besitzerressource nicht vorhanden angezeigt wird (Fehlercode 404), wurde entweder der Zielcontainer noch nicht erstellt, oder der Containername, der zum Erstellen des Auftrags verwendet wird, stimmt nicht mit einem tatsächlichen Containernamen überein.
Stellen Sie sicher, dass der Zielcontainer erstellt wird, bevor Sie den Auftrag ausführen, und stellen Sie sicher, dass der Containername im Auftrag mit einem tatsächlichen Containernamen übereinstimmt.
"code": "404", "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
Fehler: Die Anforderung ist nicht autorisiert.
Wenn die Anforderung fehlschlägt und der Fehler Nicht autorisiert angezeigt wird (Fehlercode 401), ist die lokale Autorisierung möglicherweise deaktiviert.
Containerkopieraufträge verwenden Primärschlüssel zur Authentifizierung. Wenn die lokale Autorisierung deaktiviert ist, schlägt die Auftragserstellung fehl. Die lokale Autorisierung muss aktiviert sein, damit Containerkopieraufträge funktionieren.
"code": "401", "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
Fehler: Fehler beim Abrufen von Ressourcen für den Auftrag.
Dieser Fehler kann aufgrund interner Serverprobleme auftreten. Zur Behebung dieses Problems wenden Sie sich an den Microsoft-Support. Erstellen Sie dazu im Azure-Portal eine neue Supportanfrage. Wählen Sie unter Problemtyp die Option Datenmigration aus. Wählen Sie unter Problemuntertyp die Option Kontointerne Containerkopie aus.
"code": "500" "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Nächste Schritte
- Informieren Sie sich über das Erstellen, Überwachen und Verwalten von Containerkopieraufträgen innerhalb eines Azure Cosmos DB-Kontos mithilfe von CLI-Befehlen.