Creare e usare una replica cluster tra aree in Azure Cosmos DB per MongoDB vCore
In questa guida viene creata una replica cluster in un'altra area per un cluster vCore di Azure Cosmos DB per MongoDB a scopo di ripristino di emergenza. Questo cluster di replica archivia una copia di tutte le risorse MongoDB, ovvero database, raccolte e documenti, in un'altra area di Azure. Il cluster di replica fornisce un endpoint univoco per vari strumenti e SDK a cui connettersi e potrebbe essere alzato di livello per diventare disponibile per le scritture in caso di interruzione di un'area primaria.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Shell MongoDB
Creare un nuovo cluster e la relativa replica in un'altra area
Creare un cluster MongoDB con una replica in lettura cluster in un'altra area usando vCore di Azure Cosmos DB for MongoDB.
Suggerimento
Per questa guida, si consiglia di utilizzare il nome del gruppo di risorse msdocs-cosmos-quickstart-rg
.
Accedere al portale di Azure.
Nel menu del portale di Azure o dalla pagina Home selezionare Crea una risorsa.
Nella pagina Nuovo cercare e selezionare Azure Cosmos DB.
Nella pagina Quale API è più adatta al carico di lavoro? selezionare l'opzione Crea nella sezione Azure Cosmos DB for MongoDB.
Nella pagina Quale tipo di risorsa? selezionare l'opzione Crea nella sezione Cluster vCore. Per altre informazioni, vedere panoramica dell'architettura vCore in Azure Cosmos DB for MongoDB.
Nella paginaCrea cluster Azure Cosmos DB per MongoDB selezionare l'opzione Configura all'interno della sezione Livello cluster.
Nella pagina Scala lasciare le opzioni impostate sui valori predefiniti:
Impostazione Valore Numero di partizioni 1 shard Livello cluster Livello M30, 2 vCore, 8 GiB RAM Storage 128 GiB Deselezionare l'opzione Disponibilità elevata. Nella sezione del riconoscimento a disponibilità elevata selezionare Accetto. Infine, selezionare Salva per conservare le modifiche apportate al livello del cluster.
La disponibilità elevata nell'area offre una soluzione in-region in cui una copia di dati da ogni partizione in un cluster viene trasmessa alla controparte standby che si trova nella stessa area, ma in una zona di disponibilità diversa (AZ). La disponibilità elevata usa la replica sincrona senza perdita di dati e il rilevamento automatico degli errori e il failover mantenendo intatta la stringa di connessione dopo il failover. La disponibilità elevata potrebbe essere abilitata nel cluster primario per un ulteriore livello di protezione da errori.
Tornando alla pagina del cluster, immettere le informazioni seguenti:
Impostazione valore Descrizione Abbonamento Nome della sottoscrizione Selezionare la sottoscrizione di Azure che si desidera usare per questo cluster Azure Cosmos DB for MongoDB e per la sua replica. Gruppo di risorse Nome gruppo di risorse Selezionare un gruppo di risorse oppure fare clic su Crea nuovo, quindi immettere un nome univoco per il nuovo gruppo di risorse. Nome cluster Nome globalmente univoco Immettere un nome per identificare il cluster Azure Cosmos DB for MongoDB. Il nome verrà utilizzato come parte di un nome di dominio completo (FQDN) con suffisso mongodbcluster.cosmos.azure.com; pertanto, il nome deve essere globalmente univoco. Il nome può contenere solo lettere minuscole, numeri e il segno meno (-). Il nome deve avere una lunghezza compresa tra 3 e 40 caratteri. Ufficio Area più vicina ai propri utenti Selezionare una posizione geografica per ospitare il cluster Azure Cosmos DB for MongoDB con funzionalità di lettura e scrittura, il cluster primario. Usare la località più vicina agli utenti per offrire loro la massima velocità di accesso ai dati. Versione di MongoDB Versione di MongoDB da eseguire nel cluster Questo valore è impostato su un valore predefinito della versione più recente di MongoDB disponibile. Nome utente amministratore Fornire un nome utente per accedere al cluster Questo utente viene creato nel cluster con il ruolo di amministratore. Password Usare una password univoca per associare il nome utente La password deve avere una lunghezza minima di 8 caratteri, fino a un massimo di 128. Selezionare Avanti: Distribuzione globale.
Nella scheda Distribuzione globale selezionare Abilita per Replica in lettura in un'altra area per creare una replica in lettura cluster come parte del nuovo provisioning del cluster primario.
Nel campo Nome replica di lettura immettere un nome per la replica in lettura cluster. Deve essere un nome univoco globale del cluster.
Selezionare un valore nell'elenco a discesa Area replica di lettura.
Selezionare Avanti: Rete.
Nel scheda Rete, selezionare Aggiungi indirizzo IP del client corrente per creare una regola del firewall con l'indirizzo IP pubblico del computer rilevato dal sistema Azure.
Verificare l'indirizzo IP prima di salvare questa configurazione. In alcuni casi, l'indirizzo IP individuato dal portale di Azure è diverso da quello usato per l'accesso a Internet e ai servizi di Azure. Quindi potrebbe essere necessario modificare l'indirizzo IP iniziale e l'indirizzo IP finale per fare in modo che la regola funzioni come previsto. Usare un motore di ricerca o un altro strumento online per controllare l'indirizzo IP. Ad esempio, cercare qual è il mio indirizzo IP.
È anche possibile selezionare Aggiungi regola di firewall 0.0.0.0 - 255.255.255.255 per permettere non solo il proprio IP, ma l'accesso a Internet completo per il cluster. In questa situazione, i client devono ancora accedere con il nome utente e la password corretti per usare il cluster. Tuttavia, si consiglia di consentire l'accesso a livello globale solo per brevi periodi di tempo e solo per i database non di produzione.
Selezionare Rivedi e crea.
Esaminare le impostazioni specificate e quindi selezionare Crea. La creazione del cluster richiede alcuni minuti. Attendere che la pagina del portale mostri il messaggio La distribuzione è stata completata prima di continuare.
Selezionare Vai alla risorsa per passare alla pagina del cluster Azure Cosmos DB per MongoDB.
Connettersi al cluster primario e inserire dati
Ottenere la stringa di connessione necessaria per connettersi al cluster primario (lettura/scrittura) nel portale di Azure.
Nella pagina del cluster primario Azure Cosmos DB for MongoDB vCore selezionare l'opzione del menu di spostamento Stringhe di connessione in Impostazioni.
Copiare il valore dal campo Self (sempre questo cluster).
Nella riga di comando usare la shell MongoDB per connettersi al cluster primario usando la stringa di connessione.
mongosh "mongodb+srv://<user>@<primary_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Inserire i dati
Creare un file di script my_script.js per eseguirlo dalla shell 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);
}
Questo file di script crea due raccolte e inserisce documenti con dati in tali raccolte. Salvare my_script.js file in una cartella accessibile alla sessione di Shell MongoDB.
Eseguire lo script dalla shell MongoDB connessa al cluster MongoDB primario.
load(my_script.js);
Nella shell MongoDB connessa al cluster MongoDB primario leggere i dati dal database.
db.dogs.find();
db.cats.find();
Abilitare l'accesso al cluster di replica
Importante
I cluster di replica vengono sempre creati con l'accesso alla rete disabilitato. È necessario aggiungere regole del firewall o creare endpoint privati nel cluster di replica dopo la creazione per abilitare le operazioni di lettura.
Nella pagina cluster primario vCore di Azure Cosmos DB per MongoDB selezionare la pagina Distribuzione globale in Impostazioni.
Selezionare il nome della replica cluster nel campo Replica in lettura per aprire le proprietà di replica cluster di lettura nel portale di Azure.
Nella pagina Cluster di replica vCore MongoDB, in Impostazioni, selezionare Rete.
Nella pagina Rete, selezionare Aggiungi indirizzo IP del client corrente per creare una regola del firewall con l'indirizzo IP pubblico del computer rilevato dal sistema Azure.
Verificare l'indirizzo IP prima di salvare questa configurazione. In alcuni casi, l'indirizzo IP individuato dal portale di Azure è diverso da quello usato per l'accesso a Internet e ai servizi di Azure. È anche possibile selezionare Aggiungi regola di firewall 0.0.0.0 - 255.255.255.255 per permettere non solo il proprio IP, ma l'accesso a Internet completo per il cluster. In questa situazione, i client devono ancora accedere con il nome utente e la password corretti per usare il cluster.
Selezionare Salva sulla barra degli strumenti per salvare le impostazioni. Potrebbero essere necessari alcuni minuti prima che le impostazioni di rete aggiornate diventino effettive.
Connettersi al cluster di replica in lettura in un'altra area e leggere i dati
Ottenere la stringa di connessione per la replica cluster di lettura in un'altra area.
Nella barra laterale del cluster di replica, in Gestione cluster selezionare Stringhe di connessione.
Copiare il valore dal campo Stringa di connessione.
Importante
La stringa di connessione del cluster di replica in lettura contiene il nome univoco del cluster di replica selezionato durante la creazione della replica. I valori di nome utente e password per il cluster di replica in lettura sono sempre uguali a quelli nel cluster primario.
Nella riga di comando usare la shell MongDB per connettersi al cluster di replica in lettura usando la stringa di connessione.
mongosh "mongodb+srv://<user>@<cluster_replica_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Leggere i dati dal cluster di replica
Nella shell MongoDB connessa al cluster di replica leggere i dati dal database.
db.dogs.find();
db.cats.find();
Alzare di livello il cluster di replica
Per alzare di livello una replica cluster a un cluster di lettura/scrittura, procedere come segue:
Selezionare il cluster di replica in lettura nel portale.
Nella barra laterale del cluster, in Gestione cluster selezionare Distribuzione globale.
Nella pagina Distribuzione globale selezionare Alza di livello sulla barra degli strumenti per avviare l'innalzamento di livello di replica di lettura al cluster di lettura/scrittura.
Nella finestra popup Alza di livello cluster, verificare il funzionamento dell'innalzamento di livello della replica e selezionare Alza di livello. Il completamento della promozione della replica potrebbe richiedere alcuni minuti.
Scrivere nella replica cluster alzata di livello
Al termine dell'innalzamento di livello della replica, la replica alzata di livello diventa disponibile per le scritture e il cluster primario precedente è impostato su sola lettura.
Usare la shell MongoDB nella riga di comando per connettersi al cluster di replica alzato di livello usando la stringa di connessione.
mongosh "mongodb+srv://<user>@<promoted_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Nella sessione della shell MongoDB, eseguire un'operazione di scrittura.
db.createCollection('foxes')
Usare la shell MongDB nella riga di comando per connettersi al nuovo cluster di replica (precedente cluster primario) usando la relativa stringa di connessione. È possibile usare stringa di connessione self-stringa di connessione o l'stringa di connessione di lettura/scrittura globale.
mongosh "mongodb+srv://<user>@<new_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Nella shell MongoDB verificare che le scritture siano ora disabilitate nella nuova replica (precedente cluster primario).
db.createCollection('bears')