Udostępnij za pośrednictwem


Kopiowanie zadań w usłudze Azure Cosmos DB (wersja zapoznawcza)

Kopiowanie danych w usłudze Azure Cosmos DB można wykonać przy użyciu zadań kopiowania kontenerów.

Jeśli chcesz osiągnąć dowolny z następujących scenariuszy, może być konieczne skopiowanie danych z konta usługi Azure Cosmos DB:

Zadania kopiowania można tworzyć i zarządzać przy użyciu poleceń interfejsu wiersza polecenia platformy Azure.

Rozpocznij

Aby rozpocząć pracę z kopią kontenera online dla kont interfejsu API NoSQL w usłudze Azure Cosmos DB, zarejestruj się na potrzeby flagi funkcji kopiowania kontenera online (NoSQL) w obszarze Funkcje w wersji zapoznawczej w witrynie Azure Portal. Po zakończeniu rejestracji wersja zapoznawcza będzie obowiązywać dla wszystkich kont interfejsu API NoSQL w subskrypcji.

Wymagania wstępne

  1. Włącz ciągłą kopię zapasową na źródłowym koncie usługi Azure Cosmos DB.
  2. Zarejestruj się w obszarze Wszystkie wersje i usuń funkcję trybu zestawienia zmian w wersji zapoznawczej w subskrypcji konta źródłowego.

Ważne

Wszystkie operacje zapisu w kontenerze źródłowym będą naliczane dwukrotnie jednostki RU w celu zachowania zarówno poprzednich, jak i bieżących wersji zmian w elementach w kontenerze. Ten wzrost opłat za jednostki RU może ulec zmianie w przyszłości.

Kopiowanie danych kontenera

  1. Utwórz docelowy kontener usługi Azure Cosmos DB przy użyciu ustawień, których chcesz użyć (klucz partycji, stopień szczegółowości przepływności, jednostki żądania, unikatowy klucz itd.).
  2. Utwórz zadanie kopiowania kontenera.
  3. Monitoruj postęp zadania kopiowania.
  4. Po skopiowaniu wszystkich dokumentów zatrzymaj aktualizacje w kontenerze źródłowym, a następnie wywołaj interfejs API uzupełniania, aby oznaczyć zadanie jako ukończone.
  5. Wznów operacje, odpowiednio wskazując aplikację lub klienta na źródłowy lub docelowy kontener zgodnie z oczekiwaniami.

Jak działa kopiowanie kontenerów?

  1. Platforma przydziela wystąpienia obliczeniowe po stronie serwera dla docelowego konta usługi Azure Cosmos DB w celu uruchamiania zadań kopiowania kontenera.
  2. Pojedyncze zadanie jest wykonywane we wszystkich wystąpieniach w dowolnym momencie.
  3. Zadania kopiowania online korzystają ze wszystkich wersji i usuwania trybu zestawienia zmian, aby skopiować dane i replikować zmiany przyrostowe z kontenera źródłowego do kontenera docelowego.
  4. Po zakończeniu zadania platforma anuluje przydzielanie tych wystąpień po 15 minutach braku aktywności.

Możesz wykonać zadania kopiowania kolekcji w trybie offline, aby skopiować dane w ramach tego samego konta usługi Azure Cosmos DB dla bazy danych Mongo DB.

Kopiowanie danych kolekcji

  1. Utwórz docelową kolekcję usługi Azure Cosmos DB przy użyciu ustawień, których chcesz użyć (klucz partycji, stopień szczegółowości przepływności, jednostki żądania, unikatowy klucz itd.).
  2. Zatrzymaj operacje w kolekcji źródłowej, wstrzymując wystąpienia aplikacji lub wszystkich klientów łączących się z nią.
  3. Utwórz zadanie kopiowania.
  4. Monitoruj postęp zadania kopiowania i poczekaj na jego ukończenie.
  5. Wznów operacje, wskazując odpowiednio aplikację lub klienta do źródłowej lub docelowej kolekcji zgodnie z oczekiwaniami.

Uwaga

Zdecydowanie zalecamy zaprzestanie wykonywania jakichkolwiek operacji w kolekcji źródłowej przed rozpoczęciem zadania kopiowania kolekcji w trybie offline. Usunięcie elementów i aktualizacje wykonywane w kolekcji źródłowej po uruchomieniu zadania kopiowania mogą nie zostać przechwycone. Jeśli nadal wykonujesz operacje na kolekcji źródłowej, gdy zadanie kopiowania jest w toku, być może brakuje zduplikowanych lub brakujących danych w kolekcji docelowej.

Jak działa kopiowanie kolekcji?

  1. Platforma przydziela wystąpienia obliczeniowe po stronie serwera dla docelowego konta usługi Azure Cosmos DB.
  2. Te wystąpienia są przydzielane po utworzeniu co najmniej jednego zadania kopiowania kolekcji w ramach konta.
  3. Zadania kopiowania są uruchamiane w tych wystąpieniach.
  4. Pojedyncze zadanie jest wykonywane we wszystkich wystąpieniach w dowolnym momencie.
  5. Wystąpienia są współużytkowane przez wszystkie zadania kopiowania, które są uruchomione na tym samym koncie.
  6. Zadania kopiowania w trybie offline używają strumieni zmiany zmiany w trybie offline, aby skopiować dane i replikować zmiany przyrostowe z kolekcji źródłowej do kolekcji docelowej.
  7. Platforma może anulować przydzielanie wystąpień, jeśli są bezczynne przez dłużej niż 15 minut.

Możesz wykonać kopiowanie tabeli w trybie offline, aby skopiować dane jednej tabeli do innej tabeli w ramach tego samego konta usługi Azure Cosmos DB dla bazy danych Apache Cassandra.

Kopiowanie danych tabeli

  1. Utwórz docelową tabelę usługi Azure Cosmos DB przy użyciu ustawień, których chcesz użyć (klucz partycji, stopień szczegółowości przepływności, jednostki żądań itd.).
  2. Zatrzymaj operacje w tabeli źródłowej, wstrzymując wystąpienia aplikacji lub wszystkich klientów łączących się z nią.
  3. Utwórz zadanie kopiowania.
  4. Monitoruj postęp zadania kopiowania i poczekaj na jego ukończenie.
  5. Wznów operacje, odpowiednio wskazując aplikację lub klienta na tabelę źródłową lub docelową zgodnie z oczekiwaniami.

Uwaga

Zdecydowanie zalecamy zaprzestanie wykonywania jakichkolwiek operacji w tabeli źródłowej przed rozpoczęciem zadania kopiowania tabeli w trybie offline. Usunięcie elementów i aktualizacje wykonywane w tabeli źródłowej po uruchomieniu zadania kopiowania mogą nie zostać przechwycone. Jeśli nadal wykonujesz operacje w tabeli źródłowej, gdy zadanie kopiowania jest w toku, możesz mieć zduplikowane lub brakujące dane w tabeli docelowej.

Jak działa kopiowanie tabeli?

  1. Platforma przydziela wystąpienia obliczeniowe po stronie serwera dla docelowego konta usługi Azure Cosmos DB.
  2. Te wystąpienia są przydzielane podczas tworzenia co najmniej jednego zadania kopiowania w ramach konta.
  3. Zadania kopiowania są uruchamiane w tych wystąpieniach.
  4. Pojedyncze zadanie jest wykonywane we wszystkich wystąpieniach w dowolnym momencie.
  5. Wystąpienia są współużytkowane przez wszystkie zadania kopiowania, które są uruchomione na tym samym koncie.
  6. Zadania kopiowania w trybie offline używają zestawienia zmian, aby skopiować dane i replikować zmiany przyrostowe z tabeli źródłowej do tabeli docelowej.
  7. Platforma może anulować przydzielanie wystąpień, jeśli są bezczynne przez dłużej niż 15 minut.

Czynniki wpływające na szybkość zadania kopiowania

Szybkość postępu zadania kopiowania kontenera jest określana przez następujące czynniki:

  • Ustawienie przepływności źródłowego kontenera lub bazy danych.

  • Ustawienie przepływności kontenera docelowego lub bazy danych.

    Napiwek

    Ustaw przepływność kontenera docelowego na co najmniej dwa razy przepływność kontenera źródłowego.

  • Wystąpienia obliczeniowe po stronie serwera przydzielone do konta usługi Azure Cosmos DB na potrzeby przeprowadzania transferu danych.

    Ważne

    Domyślna jednostka SKU oferuje dwa wystąpienia po stronie serwera 4-vCPU 16 GB na konto.

Ograniczenia

Kryteria uprawnień wersji zapoznawczej

Zadania kopiowania kontenerów nie działają z kontami, które mają włączone następujące możliwości. Wyłącz te funkcje przed uruchomieniem zadań kopiowania kontenerów:

Konfiguracje kont

Ustawienie Czas wygaśnięcia (TTL) nie jest dostosowywane w kontenerze docelowym. W związku z tym, jeśli dokument nie wygasł w kontenerze źródłowym, uruchamia odliczanie w kontenerze docelowym.

Często zadawane pytania

Czy istnieje umowa dotycząca poziomu usług dla zadań kopiowania kontenerów?

Zadania kopiowania kontenerów są obecnie obsługiwane w sposób optymalny. Nie zapewniamy żadnych gwarancji dotyczących poziomu usług (SLA, Service Level Agreement) na czas potrzebny na zakończenie zadań.

Czy mogę utworzyć wiele zadań kopiowania kontenerów na koncie?

Tak, można utworzyć wiele zadań na tym samym koncie. Zadania są uruchamiane kolejno. Możesz wyświetlić listę wszystkich zadań utworzonych na koncie i monitorować ich postęp.

Czy mogę skopiować całą bazę danych na koncie usługi Azure Cosmos DB?

Musisz utworzyć zadanie dla każdego kontenera w bazie danych.

Mam konto usługi Azure Cosmos DB z wieloma regionami. W którym regionie zostanie uruchomione zadanie kopiowania kontenera?

Zadanie kopiowania kontenera jest uruchamiane w regionie zapisu. Na koncie skonfigurowanym z zapisami w wielu regionach zadanie jest uruchamiane w jednym z regionów na liście regionów zapisu.

Co się stanie z zadaniami kopiowania kontenera, gdy zmieni się region zapisu konta?

Region zapisu konta może ulec zmianie w rzadkim scenariuszu awarii regionu lub z powodu ręcznego przejścia w tryb failover. W tym scenariuszu niekompletne zadania kopiowania kontenera utworzone w ramach konta kończą się niepowodzeniem. Należy ponownie utworzyć te zadania, które zakończyły się niepowodzeniem. Ponownie utworzone zadania zostaną uruchomione w nowym (bieżącym) regionie zapisu.

Obsługiwane regiony

Obecnie kopiowanie kontenera jest obsługiwane w następujących regionach:

Ameryka Północna i Południowa Europa i Afryka Azja i Pacyfik
Brazylia Południowa Francja Środkowa Australia Środkowa
Kanada Środkowa Francja Południowa Australia Środkowa 2
Kanada Wschodnia Niemcy Północne Australia Wschodnia
Central US Niemcy Środkowo-Zachodnie Indie Środkowe
Środkowe stany USA — EUAP Europa Północna Japonia Wschodnia
Wschodnie stany USA Norwegia Wschodnia Korea Środkowa
Wschodnie stany USA 2 Norwegia Zachodnia Southeast Asia
Wschodnie stany USA 2 — EUAP Szwajcaria Północna Środkowe Zjednoczone Emiraty Arabskie
Północno-środkowe stany USA Szwajcaria Zachodnia Indie Zachodnie
South Central US Południowe Zjednoczone Królestwo Azja Wschodnia
Zachodnio-środkowe stany USA Zachodnie Zjednoczone Królestwo Malezja Południowa
Zachodnie stany USA West Europe Japonia Zachodnia
Zachodnie stany USA 2 Izrael Centralny Australia Południowo-Wschodnia
Nieobsługiwane Północna Republika Południowej Afryki Nieobsługiwane

Znane i typowe problemy

  • Błąd — zasób właściciela nie istnieje.

    Jeśli tworzenie zadania zakończy się niepowodzeniem i zostanie wyświetlony błąd Właściciel zasobu nie istnieje (kod błędu 404), kontener docelowy nie został jeszcze utworzony lub nazwa kontenera użyta do utworzenia zadania nie jest zgodna z rzeczywistą nazwą kontenera.

    Przed uruchomieniem zadania upewnij się, że kontener docelowy został utworzony i upewnij się, że nazwa kontenera w zadaniu jest zgodna z rzeczywistą nazwą kontenera.

    "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\"]
    
  • Błąd — żądanie jest nieautoryzowane.

    Jeśli żądanie zakończy się niepowodzeniem i zostanie wyświetlony błąd Brak autoryzacji (kod błędu 401), autoryzacja lokalna może być wyłączona.

    Zadania kopiowania kontenerów używają kluczy podstawowych do uwierzytelniania. Jeśli autoryzacja lokalna jest wyłączona, tworzenie zadania zakończy się niepowodzeniem. Aby zadania kopiowania kontenerów działały, należy włączyć autoryzację lokalną.

    "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."
    
  • Błąd — błąd podczas pobierania zasobów dla zadania.

    Ten błąd może wystąpić z powodu wewnętrznych problemów z serwerem. Aby rozwiązać ten problem, skontaktuj się z pomoc techniczna firmy Microsoft, otwierając nowe żądanie pomocy technicznej w witrynie Azure Portal. W polu Typ problemu wybierz pozycję Migracja danych. W obszarze Podtyp problemu wybierz pozycję Kopiowanie kontenera wewnątrz konta.

    "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
    

Następne kroki