Udostępnij za pośrednictwem


Tworzenie i używanie repliki klastra między regionami w usłudze Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB

W tym przewodniku utworzysz replikę klastra w innym regionie dla klastra rdzeni wirtualnych usługi Azure Cosmos DB dla bazy danych MongoDB na potrzeby odzyskiwania po awarii. Ten klaster repliki przechowuje kopię wszystkich zasobów bazy danych MongoDB — baz danych, kolekcji i dokumentów — w innym regionie świadczenia usługi Azure. Klaster repliki udostępnia unikatowy punkt końcowy dla różnych narzędzi i zestawów SDK, z którymi można nawiązać połączenie i może zostać podwyższony, aby uzyskać dostęp do zapisów, jeśli wystąpi awaria regionu podstawowego.

Wymagania wstępne

Tworzenie nowego klastra i jego repliki w innym regionie

Utwórz klaster Bazy danych MongoDB z repliką do odczytu klastra w innym regionie przy użyciu usługi Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB.

Napiwek

W tym przewodniku zalecamy użycie nazwy msdocs-cosmos-quickstart-rggrupy zasobów .

  1. Zaloguj się w witrynie Azure Portal.

  2. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  3. Na stronie Nowa wyszukaj i wybierz usługę Azure Cosmos DB.

  4. Na stronie Który interfejs API najlepiej odpowiada twojemu obciążeniu? wybierz opcję Utwórz w sekcji Azure Cosmos DB for MongoDB .

    Zrzut ekranu przedstawiający stronę wyboru opcji interfejsu API dla usługi Azure Cosmos DB.

  5. Na stronie Jakiego typu zasobu? wybierz opcję Utwórz w sekcji Klaster rdzeni wirtualnych. Aby uzyskać więcej informacji, zobacz omówienie architektury rdzeni wirtualnych w usłudze Azure Cosmos DB dla bazy danych MongoDB.

    Zrzut ekranu przedstawiający stronę opcji wybierz typ zasobu dla usługi Azure Cosmos DB dla bazy danych MongoDB.

  6. Na stronie Tworzenie klastra usługi Azure Cosmos DB dla bazy danych MongoDB wybierz opcję Konfiguruj w sekcji Warstwa klastra.

    Zrzut ekranu przedstawiający opcję konfiguracji klastra dla nowego klastra usługi Azure Cosmos DB dla bazy danych MongoDB.

  7. Na stronie Skalowanie pozostaw opcje ustawione na wartości domyślne:

    Ustawienie Wartość
    Liczba fragmentów 1 fragment
    Warstwa klastra Warstwa M30, 2 rdzenie wirtualne, 8 GiB RAM
    Storage 128 GiB
  8. Usuń zaznaczenie opcji Wysoka dostępność . W sekcji potwierdzania wysokiej dostępności wybierz pozycję Rozumiem. Na koniec wybierz pozycję Zapisz , aby utrwały zmiany konfiguracji klastra.

    Wysoka dostępność w regionie zapewnia rozwiązanie w regionie, w którym kopia danych z każdego fragmentu w klastrze jest przesyłana strumieniowo do jego odpowiednika rezerwowego znajdującego się w tym samym regionie, ale w innej strefie dostępności (AZ). Wysoka dostępność używa replikacji synchronicznej z zerową utratą danych i automatycznym wykrywaniem awarii i trybem failover, zachowując parametry połączenia nienaruszone po przejściu w tryb failover. Wysoka dostępność może być włączona w klastrze podstawowym w celu uzyskania dodatkowej warstwy ochrony przed awariami.

    Zrzut ekranu przedstawiający opcje warstwy klastra i skalowania klastra.

  9. Po powrocie na stronę klastra wprowadź następujące informacje:

    Ustawienie Wartość Opis
    Subskrypcja Nazwa subskrypcji Wybierz subskrypcję platformy Azure, której chcesz użyć dla tego klastra usługi Azure Cosmos DB dla bazy danych MongoDB i jego klastra repliki.
    Grupa zasobów Nazwa grupy zasobów Wybierz grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź unikatową nazwę nowej grupy zasobów.
    Nazwa klastra Globalnie unikatowa nazwa Wprowadź nazwę, aby zidentyfikować klaster usługi Azure Cosmos DB dla bazy danych MongoDB. Nazwa jest używana jako część w pełni kwalifikowanej nazwy domeny (FQDN) z sufiksem mongodbcluster.cosmos.azure.com, więc nazwa musi być globalnie unikatowa. Nazwa może zawierać tylko małe litery, cyfry i znaki łącznika (-). Nazwa musi również mieć długość od 3 do 40 znaków.
    Lokalizacja Region najbliżej Twoich użytkowników Wybierz lokalizację geograficzną do hostowania klastra usługi Azure Cosmos DB dla bazy danych MongoDB z funkcjami odczytu i zapisu — klastrem podstawowym. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych.
    Wersja bazy danych MongoDB Wersja bazy danych MongoDB do uruchomienia w klastrze Ta wartość jest ustawiona na wartość domyślną najnowszej dostępnej wersji bazy danych MongoDB.
    Nazwa użytkownika administratora Podaj nazwę użytkownika, aby uzyskać dostęp do klastra Ten użytkownik jest tworzony w klastrze jako administrator użytkownika.
    Hasło Używanie unikatowego hasła do parowania z nazwą użytkownika Hasło musi zawierać co najmniej 8 znaków i co najwyżej 128 znaków.

    Zrzut ekranu przedstawiający różne opcje konfiguracji klastra.

  10. Wybierz pozycję Dalej: Dystrybucja globalna.

  11. Na karcie Dystrybucja globalna wybierz pozycję Włącz dla repliki do odczytu w innym regionie, aby utworzyć replikę do odczytu klastra w ramach tej nowej podstawowej aprowizacji klastra.

  12. W polu Nazwa repliki do odczytu wprowadź nazwę repliki do odczytu klastra. Powinna to być globalnie unikatowa nazwa klastra.

  13. Wybierz wartość z listy rozwijanej Region repliki do odczytu.

    Zrzut ekranu przedstawiający kartę dystrybucji globalnej w aprowizowaniu klastra.

  14. Wybierz pozycję Dalej: Sieć.

  15. Na karcie Sieć wybierz pozycję Dodaj bieżący adres IP klienta, aby utworzyć regułę zapory z publicznym adresem IP komputera, postrzeganym przez system platformy Azure.

    Zrzut ekranu przedstawiający ustawienia sieci klastra.

Przed zapisaniem tej konfiguracji sprawdź swój adres IP. W niektórych sytuacjach adres IP obserwowany przez witrynę Azure Portal różni się od adresu IP używanego podczas uzyskiwania dostępu do Internetu i usług platformy Azure. W związku z tym może być konieczne zmianę początkowego adresu IP i końcowego adresu IP, aby reguła działała zgodnie z oczekiwaniami. Użyj wyszukiwarki lub innego narzędzia online, aby sprawdzić własny adres IP. Na przykład wyszukaj mój adres IP.

Zrzut ekranu przedstawiający wynik wyszukiwania w Internecie dla publicznego adresu IP bieżącego hosta.

Możesz również dodać regułę zapory 0.0.0.0-255.255.255.255, aby zezwolić nie tylko na dostęp do twojego adresu IP, ale całego Internetu w celu uzyskania dostępu do klastra. W takiej sytuacji klienci nadal muszą logować się przy użyciu poprawnej nazwy użytkownika i hasła, aby korzystać z klastra. Niemniej jednak najlepiej jest zezwolić na dostęp na całym świecie tylko przez krótki czas i tylko dla nieprodukcyjnych baz danych.

  1. Wybierz pozycję Przejrzyj i utwórz.

  2. Przejrzyj podane ustawienia, a następnie wybierz pozycję Utwórz. Utworzenie klastra trwa kilka minut. Przed przejściem poczekaj na wyświetlenie strony portalu, aby wyświetlić Wdrożenie zostało ukończone .

  3. Wybierz pozycję Przejdź do zasobu , aby przejść do strony klastra usługi Azure Cosmos DB dla bazy danych MongoDB.

    Zrzut ekranu przedstawiający stronę wdrażania klastra.

Nawiązywanie połączenia z klastrem podstawowym i pozyskiwanie danych

Pobierz parametry połączenia musisz połączyć się z klastrem podstawowym (odczyt-zapis) w witrynie Azure Portal.

  1. Na stronie podstawowego klastra podstawowego usługi Azure Cosmos DB for MongoDB wybierz opcję menu nawigacji Parametry połączenia w obszarze Ustawienia.

    Zrzut ekranu przedstawiający stronę parametry połączenia s we właściwościach klastra.

  2. Skopiuj wartość z pola Self (zawsze ten klaster).

  3. W wierszu polecenia użyj powłoki Bazy danych MongoDB, aby nawiązać połączenie z klastrem podstawowym przy użyciu parametry połączenia.

mongosh "mongodb+srv://<user>@<primary_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

Pozyskiwanie danych

Utwórz plik skryptu my_script.js , aby uruchomić go z poziomu powłoki bazy danych MongoDB.

let dogDocs = [
  {
    name: "pooch",
    breed: "poodle",
    weight: "6 lbs"
  },
  {
    name: "mutt",
    breed: "bulldog",
    weight: "10 lbs"
  }
];

let catDocs = [
  {
    name: "minni", 
    breed: "persian",
    color: "white"
  },
  {
    name: "tinkle",
    breed: "bombay",
    color: "black"
  }
];

let dogIndex = { name : 1 };
let catIndex = { name : 1 };

let collInfoObjs = [ 
  { coll: "dogs", data: dogDocs, index: dogIndex }, 
  { coll: "cats", data: catDocs, index: catIndex } 
];

for (obj of collInfoObjs) {
    db[obj.coll].insertMany(obj.data);
    db[obj.coll].createIndex(obj.index);
}

Ten plik skryptu tworzy dwie kolekcje i wstawia dokumenty z danymi do tych kolekcji. Zapisz plik my_script.js w folderze dostępnym dla sesji powłoki Bazy danych MongoDB.

Uruchom skrypt z powłoki MongoDB połączonej z podstawowym klastrem Bazy danych MongoDB.

load(my_script.js);

W powłoce bazy danych MongoDB połączonej z podstawowym klastrem Bazy danych MongoDB odczytuje dane z bazy danych.

db.dogs.find();
db.cats.find();

Włączanie dostępu do klastra repliki

Ważne

Klastry replik są zawsze tworzone z wyłączonym dostępem do sieci. Reguły zapory należy dodać lub utworzyć prywatne punkty końcowe w klastrze repliki po jej utworzeniu w celu włączenia operacji odczytu.

  1. Na stronie klastra podstawowego usługi Azure Cosmos DB dla bazy danych MongoDB wybierz stronę globalnej dystrybucji w obszarze Ustawienia.

    Zrzut ekranu przedstawiający stronę dystrybucji globalnej we właściwościach klastra podstawowego.

  2. Wybierz nazwę repliki klastra w polu Replika do odczytu, aby otworzyć właściwości repliki klastra do odczytu w witrynie Azure Portal.

  3. Na stronie klastra repliki rdzeni wirtualnych bazy danych MongoDB w obszarze Ustawienia wybierz pozycję Sieć.

  4. Na stronie Sieć wybierz pozycję Dodaj bieżący adres IP klienta, aby utworzyć regułę zapory z publicznym adresem IP komputera, co jest postrzegane przez system platformy Azure.

    Zrzut ekranu przedstawiający stronę sieci w klastrze repliki do odczytu.

    Przed zapisaniem tej konfiguracji sprawdź swój adres IP. W niektórych sytuacjach adres IP obserwowany przez witrynę Azure Portal różni się od adresu IP używanego podczas uzyskiwania dostępu do Internetu i usług platformy Azure. Możesz również dodać regułę zapory 0.0.0.0-255.255.255.255, aby zezwolić nie tylko na dostęp do twojego adresu IP, ale całego Internetu w celu uzyskania dostępu do klastra. W takiej sytuacji klienci nadal muszą logować się przy użyciu poprawnej nazwy użytkownika i hasła, aby korzystać z klastra.

  5. Wybierz pozycję Zapisz na pasku narzędzi, aby zapisać ustawienia. Zaktualizowanie ustawień sieci może potrwać kilka minut.

Nawiązywanie połączenia z klastrem repliki do odczytu w innym regionie i odczytywanie danych

Pobierz parametry połączenia repliki klastra do odczytu w innym regionie.

  1. Na pasku bocznym klastra repliki w obszarze Zarządzanie klastrem wybierz pozycję Parametry połączenia.

  2. Skopiuj wartość z pola Parametry połączenia.

    Ważne

    Parametry połączenia klastra repliki do odczytu zawiera unikatową nazwę klastra repliki wybraną podczas tworzenia repliki. Wartości nazwy użytkownika i hasła dla klastra repliki do odczytu są zawsze takie same jak w klastrze podstawowym.

  3. W wierszu polecenia użyj powłoki MongDB, aby nawiązać połączenie z klastrem repliki do odczytu przy użyciu jej parametry połączenia.

    mongosh "mongodb+srv://<user>@<cluster_replica_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

Odczytywanie danych z klastra repliki

W powłoce bazy danych MongoDB połączonej z klastrem repliki odczytuje dane z bazy danych.

db.dogs.find();
db.cats.find();

Podwyższanie poziomu klastra repliki

Aby podwyższyć poziom repliki do odczytu i zapisu klastra, wykonaj następujące kroki:

  1. Wybierz klaster repliki do odczytu w portalu.

  2. Na pasku bocznym klastra w obszarze Zarządzanie klastrem wybierz pozycję Dystrybucja globalna.

  3. Na stronie Dystrybucja globalna wybierz pozycję Podwyższ poziom na pasku narzędzi, aby zainicjować podwyższanie poziomu repliki do odczytu do klastra odczytu i zapisu.

    Zrzut ekranu przedstawiający stronę dystrybucji globalnej klastra repliki do odczytu z przyciskiem podwyższania poziomu.

  4. W oknie podręcznym Podwyższanie poziomu klastra upewnij się, że rozumiesz, jak działa podwyższenie poziomu repliki, a następnie wybierz pozycję Podwyższ poziom. Podwyższenie poziomu repliki może potrwać kilka minut.

    Zrzut ekranu przedstawiający stronę dystrybucji globalnej klastra repliki do odczytu z wyskakującym oknem potwierdzenia podwyższenia poziomu.

Zapis do promowanej repliki klastra

Po zakończeniu podwyższania poziomu repliki promowana replika staje się dostępna dla zapisów, a poprzedni klaster podstawowy jest ustawiony na tylko do odczytu.

Użyj powłoki MongDB w wierszu polecenia, aby nawiązać połączenie z promowanym klastrem repliki przy użyciu jego parametry połączenia.

mongosh "mongodb+srv://<user>@<promoted_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

W sesji powłoki MongoDB wykonaj operację zapisu.

db.createCollection('foxes')

Użyj powłoki MongDB w wierszu polecenia, aby nawiązać połączenie z nowym klastrem repliki (byłym klastrem podstawowym) przy użyciu jego parametry połączenia. Możesz użyć parametry połączenia samodzielnej lub globalnej parametry połączenia odczytu i zapisu.

mongosh "mongodb+srv://<user>@<new_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

W powłoce bazy danych MongoDB upewnij się, że zapisy są teraz wyłączone w nowej repliki (były klaster podstawowy).

db.createCollection('bears')