Visão geral da replicação no MongoDB

O MongoDB é um banco de dados orientado a documentos de código aberto, altamente escalável, é um banco de dados NoSQL. Pode ser usado para armazenamento de dados de alto volume.

O MongoDB armazena os dados no formato JSON, que é muito flexível e o modelo de documento é mapeado para os objetos nos códigos dos aplicativos.

O que é a replicação do MongoDB?

Por replicação, entendemos o agrupamento de servidores que executam a mesma funcionalidade. No caso do MongoDB, temos servidores MongoDB para armazenar os dados. O objetivo da replicação é garantir que tenhamos alta disponibilidade de dados. Caso algum servidor seja desativado, sempre devemos ter uma cópia dos dados disponíveis em outro servidor para que a disponibilidade não seja afetada.

Os dados devem ser replicados periodicamente e em intervalos regulares para garantir que não perdemos nenhum dado e, mesmo que o servidor principal seja desativado, o segundo deverá poder atender às solicitações do usuário.

A replicação também é muito eficaz no caso de balanceamento de carga, por exemplo, se houver um número de usuários tentando ler ou gravar dados nos servidores, nesse caso, seria injusto se todas as solicitações fossem enviadas ou recuperadas apenas Em um servidor, deve haver um mecanismo de balanceamento que distribua igualmente a carga para os servidores disponíveis no cluster, para que nenhum servidor fique sem memória ou largura de banda e fique inativo.

Trabalho de replicação no processo MongoDB

A replicação no MongoDB é obtida com a ajuda de conjuntos de réplicas. Conjuntos de réplicas são o agrupamento de servidores MongoDB. Há um servidor primário e é responsável por receber todas as solicitações ou operações de gravação dos clientes e as outras instâncias que serão adicionadas ao conjunto de réplicas serão chamadas como instâncias secundárias que serão responsáveis ​​por todas as operações de leitura.

  • Como ilustrado no diagrama acima, todos os dados replicam o nó primário para nós secundários, haverá apenas um nó primário em qualquer conjunto de réplicas.
  • Sempre que ocorre um failover ou alguma atividade de manutenção é executada, um novo nó primário é eleito.
  • Depois que o failover é recuperado, o nó com falha agora atua como um nó secundário.
  • O aplicativo cliente sempre se comunica com o nó primário, que é seguido pela replicação dos dados para todos os nós secundários.

Conjuntos de réplicas, criação e operações

Para criar uma replicação completa dos servidores MongoDB, primeiro precisamos criar um conjunto de réplicas de instâncias do MongoDB.

Vamos imaginar que temos três servidores, repl1, repl2 e repl3, em que repl1 é o servidor principal e os demais são secundários.

Adicionando replicação de nó primário no MongoDB:

  • Verifique se as instâncias do mongo.exe estão instaladas em todos os servidores fornecidos.
  • Todo o mongod.exe deve poder executar ping um ao outro, isto é, eles são capazes de se comunicar. Para verificar o mesmo, execute os seguintes comandos nos servidores principais (a princípio), isto é, repl1 no nosso caso.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Da mesma forma, também podemos fazer o mesmo teste em outros servidores

  • Usando o comando mongo –replset, poderemos iniciar nossa primeira instância do mongod.exe.
    mongo –replset “Replica_A” Onde Replica_A é o nome do nosso conjunto de réplicas.
  • Por enquanto, adicionamos o primeiro servidor ao nosso conjunto de réplicas; a próxima etapa é iniciar o conjunto de réplicas emitindo o comando rs.initiate ().
  • O próximo passo é a etapa de verificação, na qual garantiremos que tudo o que configuramos até agora esteja correto, podemos fazer isso executando o comando rs.conf ().

Adicionando replicação de nó secundário no MongoDB:

Depois que o servidor principal é adicionado, é fácil adicionar os outros nós secundários, podemos fazer isso emitindo o comando rs.add ().

Portanto, execute o comando abaixo, dado que repl1 é nosso servidor principal e repl2 e repl3 são servidores secundários, respectivamente.

rs.add ("repl2")

rs.add ("repl3")

Remoção de servidores do conjunto de réplicas:

Para remover um servidor de qualquer conjunto de réplicas, isso pode ser feito usando o comando rs.remove ().

Existem certas etapas envolvidas no processo, conforme indicado abaixo:

  • Inicialmente, encerre a instância que precisa ser removida. Isso pode ser feito executando o comando db.shutdownserver via célula mongo.
  • O próximo passo é conectar-se ao servidor principal.
  • Execute o seguinte comando, digamos que temos repl1, repl2 e repl3 como servidores primário e secundário, respectivamente, e queremos remover o repl3, depois executaremos o seguinte comando:

rs.remove ("repl3")

Alguns comandos para solução de problemas

  • Todo o mongod.exe deve poder executar ping um ao outro, isto é, eles são capazes de se comunicar. Para verificar o mesmo, execute os seguintes comandos nos servidores principais (a princípio), isto é, repl1 no nosso caso.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

Da mesma forma, também podemos fazer o mesmo teste em outros servidores

  • O rs.status () fornecerá o status do seu conjunto de réplicas
  • Para verificar o oplog, que é um log para registrar todas as operações de gravação que foram feitas, emita este comando - rs.printReplicationInfo.

Vantagens da replicação no MongoDB

O objetivo da replicação é garantir que tenhamos alta disponibilidade de dados. Caso algum dos servidores seja desativado, sempre devemos ter uma cópia dos dados disponíveis em outro servidor para que a disponibilidade não seja afetada. A replicação também é muito eficaz no caso de balanceamento de carga, por exemplo, se tivermos um número dos usuários de estão tentando ler ou gravar dados nos servidores.

Para encurtar a história, as principais vantagens da replicação atendem ao objetivo abaixo:

  1. Alta disponibilidade
  2. Balanceamento de carga

Conclusão:

Como vimos, a replicação do MongoDB é um processo em que replicamos os dados em mais de um servidor para garantir alta disponibilidade. Isso pode ser feito criando um conjunto de réplicas e adicionando os servidores primário e secundário.

Artigos recomendados:

Este foi um guia para a replicação no MongoDB. Aqui discutimos a criação, operação, Trabalho, vantagens e alguns comandos para solução de problemas. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Ferramentas GUI do MongoDB
  2. Comandos do MongoDB
  3. Alternativas ao MongoDB
  4. Como instalar o MongoDB