Dela via


Skapa och använda en klusterreplik mellan regioner i Azure Cosmos DB för MongoDB vCore

I den här guiden skapar du en klusterreplik i en annan region för ett Azure Cosmos DB for MongoDB vCore-kluster för haveriberedskap (DR). Det här replikklustret lagrar en kopia av alla dina MongoDB-resurser – databaser, samlingar och dokument – i en annan Azure-region. Replikklustret ger en unik slutpunkt för olika verktyg och SDK:er att ansluta till och kan höjas upp för att bli tillgängligt för skrivningar om det uppstår ett avbrott i den primära regionen.

Förutsättningar

Skapa ett nytt kluster och dess replik i en annan region

Skapa ett MongoDB-kluster med en klusterläsningsreplik i en annan region med hjälp av Azure Cosmos DB för MongoDB vCore.

Dricks

För den här guiden rekommenderar vi att du använder resursgruppens namn msdocs-cosmos-quickstart-rg.

  1. Logga in på Azure-portalen.

  2. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

  3. På sidan Ny söker du efter och väljer Azure Cosmos DB.

  4. På sidan Vilket API passar bäst för din arbetsbelastning? väljer du alternativet Skapa i avsnittet Azure Cosmos DB for MongoDB .

    Skärmbild av sidan välj API-alternativ för Azure Cosmos DB.

  5. På sidan Vilken typ av resurs? väljer du alternativet Skapa i klustret virtuell kärna. Mer information finns i översikten över arkitekturen för virtuella kärnor i Azure Cosmos DB för MongoDB.

    Skärmbild av alternativsidan välj resurstyp för Azure Cosmos DB för MongoDB.

  6. På sidan Skapa Azure Cosmos DB för MongoDB-kluster väljer du alternativet Konfigurera i avsnittet Klusternivå .

    Skärmbild av konfigurationsalternativet för klustret för ett nytt Azure Cosmos DB för MongoDB-kluster.

  7. På sidan Skala låter du alternativen vara inställda på deras standardvärden:

    Inställning Värde
    Antal fragment 1 shard
    Klusternivå M30-nivå, 2 virtuella kärnor, 8 GiB RAM-minne
    Storage 128 GiB
  8. Avmarkera alternativet Hög tillgänglighet . I avsnittet med hög tillgänglighet (HA) väljer du Jag förstår. Välj slutligen Spara för att spara ändringarna i klusterkonfigurationen.

    Hög tillgänglighet i regionen ger en lösning i regionen där en kopia av data från varje shard i ett kluster strömmas till dess väntelägesmotsvarighet som finns i samma region men i en annan tillgänglighetszon (AZ). Hög tillgänglighet använder synkron replikering utan dataförlust och automatisk felidentifiering och redundans samtidigt som anslutningssträng intakt efter redundansväxling. Hög tillgänglighet kan aktiveras i det primära klustret för ytterligare ett skydd mot fel.

    Skärmbild av klusternivå- och skalningsalternativ för ett kluster.

  9. På klustersidan anger du följande information:

    Inställning Värde beskrivning
    Prenumeration Prenumerationsnamn Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos DB för MongoDB-klustret och dess replikkluster.
    Resursgrupp Namn på resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen.
    Klusternamn Ett globalt unikt namn Ange ett namn för att identifiera ditt Azure Cosmos DB för MongoDB-kluster. Namnet används som en del av ett fullständigt domännamn (FQDN) med suffixet mongodbcluster.cosmos.azure.com, så namnet måste vara globalt unikt. Namnet får endast innehålla gemener, siffror och bindestreck (-). Namnet måste också vara mellan 3 och 40 tecken långt.
    Plats Den region som är närmast dina användare Välj en geografisk plats som värd för ditt Azure Cosmos DB for MongoDB-kluster med läs- och skrivfunktioner, det primära klustret. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
    MongoDB-version Version av MongoDB som ska köras i klustret Det här värdet är inställt på standardvärdet för den senaste tillgängliga MongoDB-versionen.
    Användarnamn för administratör Ange ett användarnamn för att komma åt klustret Den här användaren skapas i klustret som användaradministratör.
    Lösenord Använd ett unikt lösenord för att parkoppla med användarnamnet Lösenordet måste innehålla minst 8 tecken och högst 128 tecken.

    Skärmbild av olika konfigurationsalternativ för ett kluster.

  10. Välj Nästa: Global distribution.

  11. På fliken Global distribution väljer du Aktivera för Läs replik i en annan region för att skapa en klusterläsningsreplik som en del av den här nya primära klusteretablering.

  12. I fältet Skrivskyddat repliknamn anger du ett namn för klusterläsningsrepliken. Det bör vara ett globalt unikt klusternamn.

  13. Välj ett värde i listrutan Läs replikregion .

    Skärmbild av fliken global distribution i klusteretablering.

  14. Välj Nästa: Nätverk.

  15. På fliken Nätverk väljer du Lägg till aktuell klient-IP-adress för att skapa en brandväggsregel med datorns offentliga IP-adress, vilket uppfattas av Azure-systemet.

    Skärmbild av nätverksinställningarna för ett kluster.

Kontrollera DIN IP-adress innan du sparar den här konfigurationen. I vissa situationer skiljer sig IP-adressen som observeras av Azure Portal från DEN IP-adress som används vid åtkomst till Internet och Azure-tjänster. Därför kan du behöva ändra start-IP och slut-IP för att regeln ska fungera som förväntat. Använd en sökmotor eller ett annat onlineverktyg för att kontrollera din egen IP-adress. Sök till exempel efter vad som är min IP-adress.

Skärmbild av ett webbsökningsresultat för den aktuella värdens offentliga IP-adress.

Du kan också välja lägg till 0.0.0.0 – 255.255.255.255.255 brandväggsregel för att tillåta inte bara din IP-adress, utan hela Internet för att komma åt klustret. I det här fallet måste klienter fortfarande logga in med rätt användarnamn och lösenord för att använda klustret. Det är dock bäst att endast tillåta global åtkomst under korta tidsperioder och endast för icke-produktionsdatabaser.

  1. Välj Granska + skapa.

  2. Granska de inställningar du angav och välj sedan Skapa. Det tar några minuter att skapa klustret. Vänta tills portalsidan visas Distributionen är klar innan du går vidare.

  3. Välj Gå till resurs för att gå till azure Cosmos DB för MongoDB-klustersidan.

    Skärmbild av distributionssidan för ett kluster.

Ansluta till primärt kluster och mata in data

Hämta anslutningssträng du behöver för att ansluta till det primära klustret (läs-och-skriv)-klustret i Azure Portal.

  1. Från den primära klustersidan för Azure Cosmos DB for MongoDB vCore väljer du navigeringsmenyn Anslutningssträngar under Inställningar.

    Skärmbild av sidan anslutningssträng s i klusteregenskaperna.

  2. Kopiera värdet från fältet Self (alltid det här klustret).

  3. Använd MongoDB-gränssnittet på kommandoraden för att ansluta till det primära klustret med hjälp av anslutningssträng.

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

Mata in data

Skapa en my_script.js skriptfil för att köra den från MongoDB-gränssnittet.

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);
}

Den här skriptfilen skapar två samlingar och infogar dokument med data i dessa samlingar. Spara my_script.js fil i en mapp som är tillgänglig för MongoDB-gränssnittet.

Kör skriptet från MongoDB-gränssnittet som är anslutet till det primära MongoDB-klustret.

load(my_script.js);

I MongoDB-gränssnittet som är anslutet till det primära MongoDB-klustret läser du data från databasen.

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

Aktivera åtkomst till replikkluster

Viktigt!

Replikkluster skapas alltid med nätverksåtkomst inaktiverad. Du bör lägga till brandväggsregler eller skapa privata slutpunkter i replikklustret när det har skapats för att aktivera läsåtgärder.

  1. Från den primära klustersidan för Azure Cosmos DB for MongoDB vCore väljer du sidan Global distribution under Inställningar.

    Skärmbild av den globala distributionssidan i egenskaperna för det primära klustret.

  2. Välj klusterrepliknamn i fältet Läs replik för att öppna egenskaperna för skrivskyddade klusterrepliker i Azure Portal.

  3. På replikkklustret MongoDB vCore går du till Inställningar och väljer Nätverk.

  4. På sidan Nätverk väljer du Lägg till aktuell klient-IP-adress för att skapa en brandväggsregel med datorns offentliga IP-adress, vilket uppfattas av Azure-systemet.

    Skärmbild av nätverkssidan i skrivskyddat replikkluster.

    Kontrollera DIN IP-adress innan du sparar den här konfigurationen. I vissa situationer skiljer sig IP-adressen som observeras av Azure Portal från DEN IP-adress som används vid åtkomst till Internet och Azure-tjänster. Du kan också välja lägg till 0.0.0.0 – 255.255.255.255.255 brandväggsregel för att tillåta inte bara din IP-adress, utan hela Internet för att komma åt klustret. I det här fallet måste klienter fortfarande logga in med rätt användarnamn och lösenord för att använda klustret.

  5. Spara inställningarna genom att välja Spara i verktygsfältet. Det kan ta några minuter innan de uppdaterade nätverksinställningarna börjar gälla.

Ansluta till skrivskyddat replikkluster i en annan region och läsa data

Hämta anslutningssträng för skrivskyddade klusterrepliker i en annan region.

  1. I sidofältet för replikkluster går du till Klusterhantering och väljer Anslutningssträngar.

  2. Kopiera värdet från fältet Anslutningssträng .

    Viktigt!

    Anslutningssträng för det lästa replikklustret innehåller det unika replikkklusternamn som du valde när repliken skapades. Värdena för användarnamn och lösenord för det lästa replikklustret är alltid desamma som i det primära klustret.

  3. Använd MongDB-gränssnittet på kommandoraden för att ansluta till läsreplikklustret med dess anslutningssträng.

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

Läsa data från replikkluster

I MongoDB-gränssnittet som är anslutet till replikklustret läser du data från databasen.

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

Flytta upp replikkluster

Följ dessa steg om du vill höja upp en klusterläsningsreplik till ett skrivskyddat kluster:

  1. Välj skrivskyddat replikkluster i portalen.

  2. I sidofältet för klustret går du till Klusterhantering och väljer Global distribution.

  3. På sidan Global distribution väljer du Höj upp i verktygsfältet för att initiera upphöjning av läsreplik till skrivskyddat kluster.

    Skärmbild av den globala distributionssidan för skrivskyddat replikkkluster med knappen Flytta upp.

  4. I popup-fönstret Höj upp kluster bekräftar du att du förstår hur replikhöjning fungerar och väljer Höj upp. Det kan ta några minuter att slutföra replikhöjningen.

    Skärmbild av den globala distributionssidan för skrivskyddat replikkkluster med popup-fönstret Förbekräftelsebekräftelse.

Skriva till upphöjd klusterreplik

När replikhöjningen har slutförts blir den upphöjda repliken tillgänglig för skrivningar och det tidigare primära klustret är skrivskyddat.

Använd MongDB-gränssnittet på kommandoraden för att ansluta till det upphöjda replikklustret med dess anslutningssträng.

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

I MongoDB-gränssnittet utför du en skrivåtgärd.

db.createCollection('foxes')

Använd MongDB-gränssnittet på kommandoraden för att ansluta till det nya replikklustret (tidigare primärt kluster) med dess anslutningssträng. Du kan använda själv anslutningssträng eller globala anslutningssträng.

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

I MongoDB-gränssnittet bekräftar du att skrivningar nu är inaktiverade på den nya repliken (tidigare primärt kluster).

db.createCollection('bears')