Compartilhar via


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

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.

  1. Entre no portal do Azure.

  2. No menu do portal do Azure ou na Home page, selecione Criar um recurso.

  3. Na página Novo, pesquise pelo Azure Cosmos DB e selecione-o.

  4. Na página Qual API melhor se adapta à sua carga de trabalho?, selecione Criar na caixa Azure Cosmos DB for MongoDB.

    Captura de tela da página Selecionar opção de API do banco de dados do Azure Cosmos DB.

  5. 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.

    Captura de tela da página selecionar opção de tipo de recurso do Azure Cosmos DB for MongoDB.

  6. Na página Criar cluster do Azure Cosmos DB for MongoDB, selecione a opçãoConfigurar na seção Camada de cluster.

    Captura de tela da opção configurar cluster para um novo cluster do Azure Cosmos DB for MongoDB.

  7. 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
  8. 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.

    Captura de tela das opções de camada de cluster e escala para um cluster.

  9. 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.

    Captura de tela de várias opções de configuração para um cluster.

  10. Selecione Avançar: Distribuição Globa.

  11. 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.

  12. 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.

  13. Selecione um valor na lista suspensa Região de réplica de leitura.

    Captura de tela da guia distribuição global no provisionamento de cluster.

  14. Selecione Avançar: Rede.

  15. 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.

    Captura de tela das configurações de rede de um cluster.

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.

Captura de tela de um resultado de pesquisa na Web para o endereço IP público do host atual.

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.

  1. Selecione Examinar + criar.

  2. 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.

  3. Selecione Ir para recurso para ir para a página do cluster do Azure Cosmos DB for MongoDB.

    Captura de tela da página de implantação de um cluster.

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.

  1. 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.

    Captura de tela da página cadeias de conexão nas propriedades do cluster.

  2. Copie o valor do campo Self (sempre este cluster).

  3. 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.

  1. 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.

    Captura de tela da página de visualização de distribuição global nas propriedades do cluster primário.

  2. 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.

  3. Na página do cluster de réplica do MongoDB vCore, em Configurações, selecione Rede.

  4. 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.

    Captura de tela da página de rede no cluster de réplica de leitura.

    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.

  5. 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.

  1. Na barra lateral do cluster de réplica, em Gerenciamento de cluster, selecione Cadeias de conexão.

  2. 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.

  3. 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:

  1. Selecione o cluster de réplica de leitura no portal.

  2. Na barra lateral do cluster, em Gerenciamento de cCuster, selecione Distribuição Global (versão prévia).

  3. 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.

    Captura de tela da página de visualização de distribuição global do cluster de réplica de leitura com o botão promover.

  4. 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.

    Captura de tela da página de visualização de distribuição global do cluster de réplica de leitura com a janela pop-up de confirmação de promoção.

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')