Criar e usar uma réplica de cluster entre regiões no Azure Cosmos DB for MongoDB vCore
Neste guia, você cria uma réplica de cluster em outra região para um cluster do Azure Cosmos DB for MongoDB vCore a fim obter a DR. Esse cluster de réplica armazena uma cópia de todos os recursos do MongoDB, como bancos de dados, coleções e documentos, em outra região do Azure. O cluster de réplica fornece um ponto de extremidade exclusivo para várias ferramentas e SDKs se conectarem e podem ser promovidos para ficarem disponíveis para gravações se houver uma interrupção de região primária.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- MongoDB Shell
Criar um novo cluster e sua réplica em outra região
Crie um cluster do MongoDB com uma réplica de leitura de cluster em outra região usando o Azure Cosmos DB for MongoDB vCore.
Dica
Para este guia, é recomendável usar o nome do grupo de recursos msdocs-cosmos-quickstart-rg
.
Entre no portal do Azure.
No menu do portal do Azure ou na Home page, selecione Criar um recurso.
Na página Novo, pesquise pelo Azure Cosmos DB e selecione-o.
Na página Qual API melhor se adapta à sua carga de trabalho?, selecione Criar na caixa Azure Cosmos DB for MongoDB.
Na página Qual tipo de recurso?, selecione a opção Criar na seção cluster do vCore. Para obter mais informações, consulte Visão geral da arquitetura do vCore no Azure Cosmos DB for MongoDB.
Na página Criar cluster do Azure Cosmos DB for MongoDB, selecione a opçãoConfigurar na seção Camada de cluster.
Na página Escala, deixe as opções definidas com seus valores padrão:
Configuração Valor Contagem de fragmentos shard 1 Nível do cluster Camada M30, 2 vCores, 8 GiB de RAM Storage 128 GiB Desmarque a opção Alta disponibilidade. Na seção de confirmação de alta disponibilidade (HA), selecione Eu entendo. Por fim, selecione Salvar para manter as alterações na camada de cluster.
A alta disponibilidade na região fornece uma solução na região em que uma cópia de dados de cada fragmento em um cluster é transmitida para o equivalente em espera localizado na mesma região, mas em uma zona de disponibilidade diferente (AZ). A alta disponibilidade usa a replicação síncrona com perda de dados zero e detecção e failover de falha automática, preservando a cadeia de conexão intacta após o failover. A alta disponibilidade pode estar habilitada no cluster primário para uma camada adicional de proteção contra falhas.
De volta à página do cluster, insira as seguintes informações:
Configuração Valor Descrição Subscription Nome da assinatura Selecione a assinatura do Azure que deseja usar para este cluster do Azure Cosmos DB for MongoDB e sua réplica de cluster. Grupo de recursos Nome do grupo de recursos Selecione um grupo de recursos ou selecione Criar novo, então insira um nome exclusivo para o novo grupo de recursos. Nome do cluster Um nome globalmente exclusivo Insira um nome para identificar o cluster do Azure Cosmos DB for MongoDB. O nome será usado como parte de um nome de domínio totalmente qualificado (FQDN) com um sufixo mongodbcluster.cosmos.azure.com, portanto, o nome deve ser exclusivo globalmente. O nome pode conter apenas letras minúsculas, números e o caractere de hífen (-). O nome também deve ter entre 3 e 40 caracteres. Location A região mais próxima dos usuários Selecionar uma localização geográfica para hospedar o cluster do Azure Cosmos DB for MongoDB com recursos de leitura e gravação, o cluster primário. Use a localização mais próxima dos usuários para fornecer a eles acesso mais rápido aos dados. Versão do MongoDB Versão do MongoDB a ser executada no cluster Esse valor é definido como um padrão da versão mais recente do MongoDB disponível. Nome de usuário do administrador O nome de usuário para acessar o cluster. Esse usuário é criado no cluster como um administrador de usuários. Senha Usar uma senha exclusiva para emparelhar com o nome de usuário A senha precisa ter no mínimo 8 e no máximo 128 caracteres. Selecione Avançar: Distribuição Globa.
Na guia Distribuição Global selecione Habilitar PARAS Réplica de leitura em outra região (versão prévia) para criar uma réplica de leitura de cluster como parte desse novo provisionamento de cluster primário.
No campo Nome da réplica de leitura, insira um nome para a réplica de leitura do cluster. Ele deve ser um nome de cluster globalmente exclusivo.
Selecione um valor na lista suspensa Região de réplica de leitura.
Selecione Avançar: Rede.
Na guia Rede, selecione Adicionar endereço IP do cliente atual para criar uma regra de firewall com o endereço IP público do computador, conforme percebido pelo sistema do Azure.
Verifique seu endereço IP antes de salvar essa configuração. Em algumas situações, o endereço IP observado pelo portal do Azure é diferente do endereço IP usado ao acessar a Internet e os servidores do Azure. Assim, talvez seja necessário alterar o IP inicial e o IP final para fazer a regra funcionar conforme o esperado. Use um mecanismo de pesquisa ou outra ferramenta online para verificar seu próprio endereço IP. Por exemplo, pesquise qual é meu IP.
Você também pode selecionar adicionar a regra de firewall 0.0.0.0 - 255.255.255.255 para permitir não apenas seu IP, mas toda a Internet acessar o cluster. Nessa situação, os clientes ainda precisarão fazer logon com o nome de usuário e a senha corretos para usar o cluster. No entanto, é melhor permitir acesso mundial apenas por períodos curtos e somente para bancos de dados que não são de produção.
Selecione Examinar + criar.
Examine as configurações fornecidas e selecione Criar. São necessários alguns minutos para criar o cluster. Aguarde até que a página do portal exiba Sua implantação está concluída antes de continuar.
Selecione Ir para recurso para ir para a página do cluster do Azure Cosmos DB for MongoDB.
Conectar ao cluster primário e ingerir dados
Obtenha a cadeia de conexão necessária para se conectar ao cluster primário (leitura/gravação) no portal do Azure.
Na página de cluster primário do Azure Cosmos DB for MongoDB vCore, selecione a opção do menu de navegação Cadeia de conexão em Configurações.
Copie o valor do campo Self (sempre este cluster).
Na linha de comando, use o shell do MongoDB para se conectar ao cluster primário usando a cadeia de conexão.
mongosh "mongodb+srv://<user>@<primary_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Ingerir dados
Crie um arquivo de script my_script.js para executá-lo no shell do 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);
}
Esse arquivo de script cria duas coleções e insere documentos com dados nessas coleções. Salve o arquivo my_script.js em uma pasta acessível à sessão de shell do MongoDB.
Execute o script do shell do MongoDB conectado ao cluster primário do MongoDB.
load(my_script.js);
No shell do MongoDB conectado ao cluster principal do MongoDB, leia os dados do banco de dados.
db.dogs.find();
db.cats.find();
Habilitar acesso ao cluster de réplica
Importante
Os clusters de réplica sempre são criados com o acesso à rede desabilitado. Você deve adicionar regras de firewall ou criar pontos de extremidades privados ao cluster de réplica depois dele ser criado a fim de habilitar operações de leitura.
Na página do cluster primário da vCore do Azure Cosmos DB for MongoDB, selecione a página Distribuição Global (versão prévia) em Configurações.
Selecione nome da réplica do cluster no campo Réplica de leitura para abrir as propriedades de réplica de cluster de leitura no portal do Azure.
Na página do cluster de réplica do MongoDB vCore, em Configurações, selecione Rede.
Na página Rede, selecione Adicionar endereço IP do cliente atual para criar uma regra de firewall com o endereço IP público do computador, conforme percebido pelo sistema do Azure.
Verifique seu endereço IP antes de salvar essa configuração. Em algumas situações, o endereço IP observado pelo portal do Azure é diferente do endereço IP usado ao acessar a Internet e os servidores do Azure. Você também pode selecionar adicionar a regra de firewall 0.0.0.0 - 255.255.255.255 para permitir não apenas seu IP, mas toda a Internet acessar o cluster. Nessa situação, os clientes ainda precisarão fazer logon com o nome de usuário e a senha corretos para usar o cluster.
Selecione Salvar na barra de ferramentas para salvar as configurações. As configurações de rede atualizadas podem levar alguns minutos para entrar em vigor.
Conectar ao cluster de réplica de leitura em outra região e ler dados
Obtenha a cadeia de conexão para a réplica de cluster de leitura em outra região.
Na barra lateral do cluster de réplica, em Gerenciamento de cluster, selecione Cadeias de conexão.
Copie o valor do campo Cadeia de conexão.
Importante
A cadeia de conexão do cluster de réplica de leitura contém o nome exclusivo do cluster de réplica selecionado durante a criação da réplica. Os valores de nome de usuário e senha do cluster de réplica de leitura são sempre os mesmos do cluster primário.
Na linha de comando, use o shell MongDB para se conectar ao cluster de réplica de leitura usando sua cadeia de conexão.
mongosh "mongodb+srv://<user>@<cluster_replica_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Leitura de dados do cluster de réplica
No shell do MongoDB conectado ao cluster de réplica, leia os dados do banco de dados.
db.dogs.find();
db.cats.find();
Promover cluster de réplica
Para promover uma réplica de leitura do cluster para um cluster de leitura/gravação, siga estas etapas:
Selecione o cluster de réplica de leitura no portal.
Na barra lateral do cluster, em Gerenciamento de cCuster, selecione Distribuição Global (versão prévia).
Na página Distribuição Global (versão prévia), selecione Promover na barra de ferramentas para iniciar a promoção de réplica de leitura para o cluster de leitura/gravação.
Na janela pop-up Promover cluster, confirme se você entende como a promoção de réplica funciona e selecione Promover. A promoção de réplica pode levar alguns minutos para ser concluída.
Gravar na réplica de cluster promovida
Depois que a promoção de réplica é concluída, ela fica disponível para gravações e o cluster primário anterior é definido como somente leitura.
Use o shell MongDB na linha de comando para se conectar ao cluster de réplica promovido usando sua cadeia de conexão.
mongosh "mongodb+srv://<user>@<promoted_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
Na sessão de shell do MongoDB, execute uma operação de gravação.
db.createCollection('foxes')
Use o shell do MongDB na linha de comando para se conectar ao novo cluster de réplica (antigo cluster primário) usando sua cadeia de conexão. Você pode usar a cadeia de caracteres de autocons conexão ou a cadeia de conexão de leitura/gravação global.
mongosh "mongodb+srv://<user>@<new_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
No shell do MongoDB, confirme se agora as gravações estão desabilitadas na nova réplica (antigo cluster primário).
db.createCollection('bears')