MongoDB Replicação: como criar MongoDB Conjunto de réplicas
⚡ Resumo Inteligente
MongoDB A replicação mantém dados idênticos em mais de uma instância. MongoDB Servidor, protegendo contra falhas do servidor e permitindo balanceamento de carga. Agrupado. MongoDB As instâncias formam um conjunto de réplicas com uma instância primária que aceita gravações e instâncias secundárias que lidam com operações de leitura e failover.
O que é a MongoDB Replicação?
A replicação é o processo de garantir que os mesmos dados estejam disponíveis em mais de um local. MongoDB Servidor. Isso às vezes é necessário para aumentar a disponibilidade de dados.
Porque se o seu principal MongoDB O servidor fica inativo por qualquer motivo, não haverá acesso aos dados. Mas se você tiver replicado os dados para outro servidor em intervalos regulares, 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 conectados ao sistema, em vez de todos se conectarem a um sistema, os usuários poderão se conectar a vários servidores para que haja uma distribuição igual da carga.
In MongoDB, múltiplo MongoDB Os servidores 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 após este serão chamadas de instâncias secundárias, que podem ser usadas principalmente para todas as operações de leitura.
Como criar um conjunto de réplicas em MongoDB Adicionando o primeiro membro usando rs.initiate()
Conforme mencionado na seção anterior, para ativar a replicação, primeiro precisamos criar um conjunto de réplicas de MongoDB instâncias.
Vamos supor que, para o nosso exemplo, temos 3 servidores chamados ServidorA, ServidorB e ServidorC. Nessa configuração, o ServidorA será o nosso servidor primário, e os ServidoresB e C serão os nossos servidores secundários. A captura de tela abaixo dará uma ideia melhor disso.
Abaixo estão as etapas que precisam ser seguidas para criar o MongoDB conjunto de réplicas junto com a adição do primeiro membro ao conjunto.
Passo 1) Certifique-se de que todas as instâncias do mongod.exe foram adicionadas.
Certifique-se de que todas as instâncias do mongod.exe que serão adicionadas ao conjunto de réplicas estejam instaladas em servidores diferentes. Isso garante que, mesmo se um servidor falhar, os outros permanecerão disponíveis e, consequentemente, outras instâncias do mongod.exe também. MongoDB esteja disponível.
Etapa 2) Todas as instâncias do mongo.exe se conectam entre si.
Certifique-se de que todas as instâncias mongo.exe possam se conectar entre si. 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 nos servidores restantes.
Passo 3) Inicie a primeira instância do mongod.exe
Inicie a primeira instância do mongod.exe com a opção replSet. Essa opção fornece um grupoping 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) O primeiro servidor é adicionado ao conjunto de réplicas.
Agora que o primeiro servidor foi adicionado ao conjunto de réplicas, o próximo passo é iniciar o conjunto de réplicas emitindo o seguinte comando: rs.initiate().
Etapa 5) Verificar o conjunto de réplicas
Verifique o conjunto de réplicas executando o comando rs.conf() para garantir que ele esteja configurado 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 utiliza o nome dos servidores secundários e adiciona os servidores ao conjunto de replicação.
Passo 1) Suponha que você tenha o ServidorA, o ServidorB e o ServidorC, que precisam fazer parte do seu conjunto de réplicas, e que o ServidorA esteja definido como o servidor primário no conjunto de réplicas.
Para adicionar o ServerB e o ServerC ao conjunto de réplicas, execute os seguintes 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ção, precisamos usar o comando “rs.remove”.
Passo 1) Primeiro, desligue a instância que deseja remover. Isso pode ser feito executando o comando db.shutdownServer no shell do MongoDB.
Passo 2) Conecte-se ao servidor principal.
Passo 3) Use o comando `rs.remove` para remover o servidor desejado do conjunto de réplicas. Suponha que você tenha um conjunto de réplicas com os servidores A, B e C, e queira remover o servidor C. Para isso, execute o comando:
rs.remove("ServerC")
Solução de problemas de conjuntos de réplicas
A seguir, apresentamos as mesmas maneiras de solucionar problemas encontrados ao usar conjuntos de réplicas.
- Certifique-se de que todas as instâncias do mongo.exe consigam se conectar entre si. Suponha que você tenha 3 servidores chamados ServerA, ServerB e ServerC. No ServerA, execute os 2 comandos abaixo:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Execute o comando `rs.status`. Este comando exibe o status do conjunto de réplicas. Por padrão, cada membro envia mensagens aos outros, chamadas de mensagens de "batimento cardíaco", que simplesmente 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 dos membros do conjunto de réplicas.
- Verifique o tamanho do Oplog. O Oplog é uma coleção em MongoDB que armazena o histórico de gravações que foram feitas no MongoDB base de dados. MongoDB em seguida, usa esse 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 conter transações em seu arquivo de log antes que fique cheio.


