O que é replicação do MongoDB?
A replicação se refere ao processo de garantir que os mesmos dados estejam disponíveis em mais de um Mongo DB Server. Isso às vezes é necessário para aumentar a disponibilidade de dados.
Porque se o seu servidor MongoDB principal cair por qualquer motivo, não haverá acesso aos dados. Mas se os dados forem replicados para outro servidor em intervalos regulares, você poderá acessar os dados de outro servidor mesmo se o servidor primário falhar.
Outra finalidade da replicação é a possibilidade de balanceamento de carga. Se houver muitos usuários se conectando ao sistema, em vez de todos se conectarem a um sistema, os usuários podem ser conectados a vários servidores para que haja uma distribuição igual da carga.
No MongoDB, vários servidores MongDB são agrupados em conjuntos chamados conjuntos de réplicas. O conjunto de réplicas terá um servidor primário que aceitará todas as operações de gravação dos clientes. Todas as outras instâncias adicionadas ao conjunto depois disso serão chamadas de instâncias secundárias, que podem ser usadas principalmente para todas as operações de leitura.
Neste tutorial, você aprenderá -
- Conjunto de réplicas: adicionando o primeiro membro usando rs.initiate ()
- Conjunto de réplicas: adicionando um secundário usando rs.add ()
- Conjunto de réplicas: reconfigurando ou removendo usando rs.remove ()
- Solução de problemas de conjuntos de réplicas
Conjunto de réplicas: adicionando o primeiro membro usando rs.initiate ()
Conforme mencionado na seção anterior, para habilitar a replicação, primeiro precisamos criar um conjunto de réplicas de instâncias do MongoDB.
Vamos supor que, para nosso exemplo, temos 3 servidores chamados ServerA, ServerB e ServerC. Nesta configuração, ServerA será nosso servidor primário e ServerB e ServerC serão nossos servidores secundários. A captura de tela abaixo dará uma ideia melhor sobre isso.
Abaixo estão as etapas que precisam ser seguidas para criar o conjunto de réplicas junto com a adição do primeiro membro ao conjunto.
Etapa 1) Certifique-se de que todas as instâncias mongod.exe que serão adicionadas ao conjunto de réplicas estejam instaladas em servidores diferentes. Isso é para garantir que, mesmo se um servidor cair, os outros estarão disponíveis e, portanto, outras instâncias do MongoDB estarão disponíveis.
Etapa 2) Certifique-se de que todas as instâncias de mongo.exe podem se conectar umas às outras. No ServerA, emita os 2 comandos abaixo
mongo -host ServerB -port 27017
mongo -host ServerC -port 27017
Da mesma forma, faça a mesma coisa com os servidores restantes.
Etapa 3) Inicie a primeira instância mongod.exe com a opção replSet. Esta opção fornece um agrupamento para todos os servidores que farão parte deste conjunto de réplicas.
mongo -replSet "Replica1"
Onde "Replica1" é o nome do seu conjunto de réplicas. Você pode escolher qualquer nome significativo para o nome do conjunto de réplicas.
Etapa 4) Agora que o primeiro servidor foi adicionado ao conjunto de réplicas, a próxima etapa é iniciar o conjunto de réplicas emitindo o seguinte comando rs.initiate ()
Etapa 5) Verifique o conjunto de réplicas emitindo o comando rs.conf () para garantir que a réplica seja configurada corretamente
Conjunto de réplicas: adicionando um secundário usando rs.add ()
Os servidores secundários podem ser adicionados ao conjunto de réplicas usando apenas o comando rs.add. Este comando obtém o nome dos servidores secundários e os adiciona ao conjunto de replicação.
Etapa 1) Suponha que se você tiver ServerA, ServerB e ServerC, que devem fazer parte de seu conjunto de réplicas, e ServerA, está definido como o servidor primário no conjunto de réplicas.
Para adicionar ServerB e ServerC ao conjunto de réplicas, emita os comandos
rs.add("ServerB")rs.add("ServerC")
Conjunto de réplicas: reconfigurando ou removendo usando rs.remove ()
Para remover um servidor do conjunto de configurações, precisamos usar o comando "rs.remove"
Etapa 1) Primeiro, desligue a instância que deseja remover. Pode-se fazer isso emitindo o comando db.shutdownserver a partir do shell mongo.
Etapa 2) Conecte-se ao servidor primário
Etapa 3) Use o comando rs.remove para remover o servidor necessário do conjunto de réplicas. Então, suponha que se você tem um conjunto de réplicas com ServerA, ServerB e ServerC, e deseja remover ServerC do conjunto de réplicas, emita o comando
rs.remove("ServerC")
Solução de problemas de conjuntos de réplicas
As etapas a seguir são as mesmas maneiras de solucionar problemas quando são encontrados problemas com o uso de conjuntos de réplicas.
- Certifique-se de que todas as instâncias do mongo.exe podem se conectar umas às outras. Suponha que você tenha 3 servidores chamados ServerA, ServerB e ServerC. No Servidor A, emita os 2 comandos abaixo
mongo -host ServerB -port 27017mongo -host ServerC -port 27017
- Execute o comando rs.status. Este comando fornece o status do conjunto de réplicas. Por padrão, cada membro enviará mensagens entre si chamadas de mensagens de "pulsação", que apenas indicam que o servidor está ativo e funcionando. O comando "status" obtém o status dessas mensagens e mostra se há algum problema com algum membro do conjunto de réplicas.
- Verifique o tamanho do Oplog - O Oplog é uma coleção no MongoDB que armazena o histórico de gravações que foram feitas no banco de dados MongoDB. O MongoDB então usa este Oplog para replicar as gravações para os outros membros no conjunto de réplicas. Para verificar o Oplog, conecte-se à instância do membro necessária e execute o comando rs.printReplicationInfo. Este comando mostrará o tamanho do log e por quanto tempo ele pode manter as transações em seu arquivo de log antes de ficar cheio.
Resumo: