Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
MongoDB Mongosync

Início rápido do Mongosync

O Mongosync replica dados e grava de um cluster para outro até que a sincronização seja finalizada. Você pode usar essa ferramenta para realizar migrações de dados únicas entre clusters MongoDB com o mínimo de tempo de inatividade.

Para obter mais informações sobre mongosync e o comportamento do cluster de destino durante a execução, consulte Considerações durante a sincronização.

O binário mongosync é o principal processo usado no Mongosync.

  • Cada cluster pode ser um conjunto de réplicas ou um cluster fragmentado. Se qualquer um for um cluster fragmentado, consulte as limitações do cluster fragmentado para mongosync.

  • Não é necessário que os clusters fragmentados tenham o mesmo número de shards.

  • O cluster de destino deve ser da mesma versão ou até duas versões à frente do cluster de origem. A versão de patch não é importante, desde que atenda aos requisitos mínimos de versão de patch.

  • O cluster de origem pode permanecer ativo até a confirmação porque mongosync sincroniza as gravações no cluster de origem durante a migração até que a confirmação seja chamada.

Importante

Até que você tenha chamado commit em mongosync e canWrite retorne true com sucesso, o cluster de destino não poderá ser utilizado para aceitar tráfego de leitura ou gravação do aplicativo. Não utilize mongosync para a manutenção de clusters de Recuperação de Desastres.

Siga as instruções abaixo para configurar o Mongosync, conectar seus clusters e sincronizar seus dados.

1

Se você já tem um cluster MongoDB, seja autogerenciado ou hospedado no MongoDB Atlas, use esse cluster como o cluster de origem. Se você não tiver um cluster para trabalhar, será necessário criar um.

Este início rápido funciona quando o cluster de destino e o cluster de origem são conjuntos de réplicas.

Para sincronizar a partir de um conjunto de réplicas para um cluster fragmentado, consulte Sincronizar um conjunto de réplicas para um cluster fragmentado. Para sincronizar entre clusters fragmentados, consulte Sincronizar clusters fragmentados.

Dica

Você pode migrar entre clusters na mesma versão ou em versões diferentes do MongoDB . Para obter mais informações sobre compatibilidade de versão do servidor MongoDB ou migrações entre versões, consulte Compatibilidade de versão do MongoDB Server .

O número de nós no conjunto de réplicas de destino não precisa ser igual ao número de nós no conjunto de réplicas de origem.

Importante

O cluster de destino deve ter armazenamento em disco suficiente para acomodar o tamanho lógico dos dados que estão sendo migrados e as entradas de oplog de destino da sincronização inicial. Por exemplo, para migrar 10 GB de dados, o cluster de destino deve ter pelo menos 10 GB disponíveis para os dados e outro 10 GB para as entradas de oplog de inserção da sincronização inicial.

Para usar a verificação incorporada, você deve ter um oplog maior no destino. Se você habilitar o verificador incorporado e reduzir o tamanho do oplog de destino, o verificador incorporado pode não conseguir acompanhar, causando erro em mongosync.

Se precisar reduzir a sobrecarga das entradas do oplog de destino e o verificador incorporado estiver desativado, você poderá:

  • Use a configuração para reduzir o tamanho do oplog do cluster de oplogSizeMB destino.

  • Use a configuração para reduzir ou remover o período mínimo de retenção de oplog do cluster de oplogMinRetentionHours destino.

Se os seus clusters forem autogerenciados, eles devem ser clusters MongoDB Enterprise . O Mongosync só é suportado no MongoDB Community Edition em um número limitado de casos. Para obter mais informações sobre como usar o Mongosync com o MongoDB Community Edition, entre em contato com um representante de vendas do MongoDB .

A criação de clusters está fora do escopo deste guia. Se precisar de ajuda, consulte a documentação para criar um cluster do Atlas ou para criar um cluster autogerenciado.

2

Se um dos clusters estiver hospedado no Atlas ou se qualquer um deles exigir autenticação, você deverá criar um trigger de reconhecimento de data center que tenha permissões em ambos os clusters.

O usuário de origem deve ter os seguintes roles:

Além disso, o usuário de origem deve ser capaz de:

Se o cluster de origem estiver hospedado no Atlas, o usuário deverá ter a função de administrador do Atlas. O usuário também deve poder ler o fluxo de alterações do cluster.

Se o cluster de destino estiver hospedado no Atlas, o usuário deverá ter a função de administrador do Atlas.

3

mongosync é a ferramenta que conecta os clusters de origem e destino. Você pode hospedar o mongosync em seu próprio hardware, o mongosync não precisa ser executado no hardware que hospeda seus clusters MongodDB.

Para instalar o mongosync:

  1. Localize um servidor host para o executável mongosync que tenha conectividade de rede com seus clusters de origem e destino.

  2. Acesse o Centro de downloads do MongoDB.

  3. Baixe o pacote mongosync para seu sistema host.

  4. Descompacte o pacote mongosync . O executável mongosync está no diretório bin .

Para obter instruções de instalação específicas do sistema operacional, consulte Instalação.

1

Uma string de conexão contém os detalhes de rede e autenticação que o mongosync precisa para se conectar aos clusters de origem e destino.

Determine o nome do host ou o endereço IP e a porta para os clusters de origem e destino. Você usará essas informações e os detalhes de autenticação do usuário para construir as string de conexão.

O esquema de conexão URI padrão tem o formulário:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

Sua string de conexão será semelhante a:

cluster0:
mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020
cluster1:
mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020

Para obter mais detalhes, consulte Conectando mongosync.

2

mongosync deve criar uma conexão inicial com os clusters de origem e destino antes de começar a sincronizar dados. Para criar a conexão inicial, emita o seguinte comando com suas string de conexão em uma única linha (o comando é reformatado aqui para maior clareza):

./bin/mongosync \
--logPath /var/log/mongosync \
--cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \
--cluster1 "mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020"
  • Quando mongosync se conecta pela primeira vez aos clusters de origem e destino, ele está no estado IDLE .

  • mongosync não sincroniza os dados até que receba o comando de inicialização .

  • Designe os clusters de origem e destino com o comando start . "cluster0" e "cluster1" são apenas rótulos, qualquer cluster pode ser cluster0 ou cluster1.

O endpoint inicial inicia a sincronização de dados. Para iniciar a sincronização, use curl ou um programa semelhante para emitir a solicitação de início :

curl localhost:27182/api/v1/start -XPOST \
--data '
{
"source": "cluster0",
"destination": "cluster1"
} '

Se a solicitação de início for bem-sucedida, mongosync retornará { "success": true } e iniciará a sincronização dos dados existentes no cluster de origem com o cluster de destino. Nesse ponto, mongosync entra no estado RUNNING e aplica gravações do cluster de origem subsequentes no cluster de destino.

Para verificar o status da sincronização, ligue para o endpoint de progresso :

curl localhost:27182/api/v1/progress -XGET

Se a resposta progress incluir o campo canCommit: true, você poderá chamar o endpoint /commit . Consulte Finalizar processo de transição.

A interface de comando para mongosync é um servidor HTTP que publica uma API HTTP. Para controlar o mongosync, use os pontos de conexão da API. A documentação da API fornece detalhes sobre como usar os seguintes endpoints:

Endpoint
Descrição

Inicia a sincronização entre um cluster de origem e destino.

Retorna o status do processo de sincronização.

Pausa a operação de sincronização atual.

Retoma uma sessão de sincronização pausada com base nos dados armazenados no cluster de destino.

Confirma a operação de sincronização no cluster de destino.

Inverte a direção de uma operação de sincronização confirmada.

Você pode finalizar uma migração e transferir o volume de trabalho do seu aplicação do cluster de origem para o de destino usando o processo de cutover do mongosync .

Para obter mais informações, consulte Finalizar processo de transferência.

  • A porta padrão para a API HTTP é 27182. Utilize a opção --port com mongosync para configurar outra porta.

  • mongosync pode trocar os clusters de origem e destino para habilitar a sincronização reversa.

    Para obter mais informações, consulte o ponto de extremidade reverse .

  • O usuário especificado na string de conexão mongosync deve ter as permissões necessárias nos clusters de origem e destino. As permissões variam dependendo do seu ambiente e se você deseja executar um bloqueio de gravação ou sincronização reversa.

    Para determinar as permissões de usuário corretas para seu caso de uso, consulte Permissões de Usuário.

  • Talvez seja necessário aumentar o descritor de arquivo ulimits no host que está executando mongosync. Isso se aplica a qualquer sistema do tipo UNIX, mas o macOS em particular tem padrões baixos. Consulte Configurações de ulimit do UNIX.

  • Para estimar o tamanho do oplog necessário para a sincronização inicial, consulte Dimensionamento do oplog.

Voltar

Visão geral

Nesta página