Partilhar via


Criar e usar uma réplica de cluster entre regiões no Azure Cosmos DB para MongoDB vCore

Neste guia, você cria uma réplica de cluster em outra região para um cluster vCore do Azure Cosmos DB para MongoDB para fins de recuperação de desastres (DR). Esse cluster de réplica armazena uma cópia de todos os seus recursos do MongoDB - 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 pode ser promovido para ficar disponível para gravações se houver uma interrupção da região primária.

Pré-requisitos

Criar um novo cluster e sua réplica em outra região

Crie um cluster MongoDB com uma réplica de leitura de cluster em outra região usando o Azure Cosmos DB para MongoDB vCore.

Gorjeta

Para este guia, recomendamos o uso do nome msdocs-cosmos-quickstart-rgdo grupo de recursos .

  1. Inicie sessão no portal do Azure.

  2. A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.

  3. Na página Novo, procure e selecione Azure Cosmos DB.

  4. Na página Qual API melhor se adapta à sua carga de trabalho?, selecione a opção Criar na seção Azure Cosmos DB para MongoDB.

    Captura de tela da página de opção de seleção de API para o Azure Cosmos DB.

  5. Na página Que tipo de recurso?, selecione a opção Criar na seção cluster vCore. Para obter mais informações, consulte Visão geral da arquitetura vCore no Azure Cosmos DB para MongoDB.

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

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

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

  7. Na página Escala, deixe as opções definidas com seus valores padrão:

    Definição Value
    Contagem de estilhaços 1 estilhaço
    Camada de cluster Nível M30, 2 vCores, 8 GiB RAM
    Armazenamento 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 configuração do cluster.

    A alta disponibilidade na região fornece uma solução na região em que uma cópia dos dados de cada fragmento em um cluster é transmitida para sua contraparte em espera localizada na mesma região, mas em uma zona de disponibilidade (AZ) diferente. A alta disponibilidade usa replicação síncrona sem perda de dados e deteção automática de falhas e failover, preservando a cadeia de conexão intacta após o failover. A alta disponibilidade pode ser habilitada no cluster primário para uma camada adicional de proteção contra falhas.

    Captura de ecrã das opções de escalonamento e camada de cluster para um cluster.

  9. De volta à página do cluster, insira as seguintes informações:

    Definição valor Description
    Subscrição Nome da subscrição Selecione a assinatura do Azure que você deseja usar para este cluster do Azure Cosmos DB para MongoDB e seu cluster de réplica.
    Grupo de recursos Nome do grupo de recursos Selecione um grupo de recursos ou selecione Criar novo e, em seguida, introduza um nome exclusivo para o novo grupo de recursos.
    Nome do cluster Um nome único globalmente Insira um nome para identificar seu cluster do Azure Cosmos DB para MongoDB. O nome é usado como parte de um nome de domínio totalmente qualificado (FQDN) com um sufixo de mongodbcluster.cosmos.azure.com, portanto, o nome deve ser globalmente exclusivo. O nome só pode conter letras minúsculas, números e o caráter de hífen (-). O nome também deve ter entre 3 e 40 caracteres.
    Location A região mais próxima dos seus utilizadores Selecione um local geográfico para hospedar seu cluster do Azure Cosmos DB para MongoDB com recursos de leitura e gravação, o cluster primário. Utilize a localização mais próxima dos utilizadores para lhes dar o acesso mais rápido aos dados.
    Versão do MongoDB Versão do MongoDB para execução no cluster Esse valor é definido como padrão da versão mais recente disponível do MongoDB.
    Nome de utilizador de administrador Fornecer um nome de usuário para acessar o cluster Esse usuário é criado no cluster como administrador de usuário.
    Palavra-passe Use uma senha exclusiva para emparelhar com o nome de usuário A palavra-passe deve ter no mínimo 8 caracteres e no máximo 128 caracteres.

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

  10. Selecione Next: Distribuição global.

  11. Na guia Distribuição global, selecione Habilitar réplica de leitura em outra região 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. Deve ser um nome de cluster globalmente exclusivo.

  13. Selecione um valor na lista suspensa Ler região da réplica.

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

  14. Selecione Next: Networking.

  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 seu computador, conforme percebido pelo sistema do Azure.

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

Verifique o seu endereço IP antes de guardar esta configuração. Em algumas situações, o endereço IP observado pelo portal do Azure difere do endereço IP usado ao acessar a Internet e os serviços do Azure. Assim, talvez seja necessário alterar o IP inicial e o IP final para fazer com que a regra funcione conforme o esperado. Use um motor de busca ou outra ferramenta online para verificar o seu próprio endereço IP. Por exemplo, procure qual é o meu IP.

Captura de ecrã do resultado de uma pesquisa na Web para o endereço IP público do anfitrião atual.

Você também pode selecionar adicionar a regra de firewall 0.0.0.0 - 255.255.255.255 para permitir que não apenas seu IP, mas toda a Internet acesse o cluster. Nessa situação, os clientes ainda devem fazer login com o nome de usuário e senha corretos para usar o cluster. No entanto, é melhor permitir o acesso mundial apenas por curtos períodos de tempo e apenas para bancos de dados que não sejam de produção.

  1. Selecione Rever + criar.

  2. Reveja as definições fornecidas e, em seguida, selecione Criar. A criação do cluster demora alguns minutos. Aguarde até que a página do portal seja exibida Sua implantação foi concluída antes de prosseguir.

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

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

Conectar-se 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 do cluster primário vCore do Azure Cosmos DB para MongoDB, selecione a opção do menu de navegação Cadeias de conexão em Configurações.

    Captura de tela da página de 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 a partir do 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 my_script.js arquivo em uma pasta acessível à sessão de shell do MongoDB.

Execute o script a partir do shell do MongoDB conectado ao cluster primário do MongoDB.

load(my_script.js);

No shell do MongoDB conectado ao cluster primário do MongoDB, leia os dados do banco de dados.

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

Habilitar o acesso ao cluster de réplica

Importante

Os clusters de réplica são sempre criados com o acesso à rede desativado. Você deve adicionar regras de firewall ou criar pontos de extremidade privados no cluster de réplica depois que ele for criado para habilitar operações de leitura.

  1. Na página do cluster primário vCore do Azure Cosmos DB para MongoDB, selecione a página Distribuição global em Configurações.

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

  2. Selecione o nome da réplica de cluster no campo Réplica de leitura para abrir as propriedades da 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 seu computador, conforme percebido pelo sistema do Azure.

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

    Verifique o seu endereço IP antes de guardar esta configuração. Em algumas situações, o endereço IP observado pelo portal do Azure difere do endereço IP usado ao acessar a Internet e os serviços do Azure. Você também pode selecionar adicionar a regra de firewall 0.0.0.0 - 255.255.255.255 para permitir que não apenas seu IP, mas toda a Internet acesse o cluster. Nessa situação, os clientes ainda devem fazer login com o nome de usuário e senha corretos para usar o cluster.

  5. Selecione Salvar na barra de ferramentas para salvar as configurações. Pode levar alguns minutos para que as configurações de rede atualizadas entrem em vigor.

Conectar-se para ler cluster de réplica 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 que você selecionou durante a criação da réplica. Os valores de nome de usuário e senha para o cluster de réplica de leitura são sempre os mesmos do cluster principal.

  3. Na linha de comando, use o shell do 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"
    

Ler 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 de 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 cluster, selecione Distribuição global.

  3. Na página Distribuição global, selecione Promover na barra de ferramentas para iniciar a promoção de réplica de leitura para cluster de leitura-gravação.

    Captura de tela da página 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 funciona a promoção de réplica e selecione Promover. A promoção da réplica pode levar alguns minutos para ser concluída.

    Captura de tela da página 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

Quando a promoção da réplica é concluída, a réplica promovida 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 conexão automática ou a cadeia de conexão global de leitura-gravação.

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 as gravações agora estão desabilitadas na nova réplica (antigo cluster primário).

db.createCollection('bears')