MongoDB Replicação: como criar MongoDB Conjunto de réplicas
O que é o MongoDB Replicação?
A replicação refere-se ao processo de garantir que os mesmos dados estejam disponíveis em mais de um servidor Mongo DB. Às vezes, isso é necessário para aumentar a disponibilidade dos 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 depois disso 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 nosso exemplo, tenhamos 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 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 mongod.exe foram adicionadas
Certifique-se de que todas as instâncias mongod.exe que serão adicionadas ao conjunto de réplicas estejam instaladas em servidores diferentes. Isto é para garantir que, mesmo que um servidor fique inativo, os outros estarão disponíveis e, portanto, outras instâncias de MongoDB esteja disponível.
Passo 2) Todas as instâncias 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 mongod.exe
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.
Passo 4) O primeiro servidor é adicionado ao conjunto de réplicas
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().
Passo 5) Verifique o conjunto de réplicas
Verifique o conjunto de réplicas emitindo o comando rs.conf() para garantir que a réplica esteja 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 utiliza o nome dos servidores secundários e adiciona os servidores ao conjunto de replicação.
Passo 1) Suponha que você tenha ServerA, ServerB e ServerC, que são necessários para fazer parte de seu conjunto de réplicas e ServerA, esteja 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”
Passo 1) Primeiro execute um encerramento da instância que você deseja remover. Pode-se fazer isso emitindo o comando db.shutdownserver no shell do mongo.
Passo 2) Conecte-se ao servidor primário
Passo 3) Use o comando rs.remove para remover o servidor necessário do conjunto de réplicas. Então, suponha que você tenha um conjunto de réplicas com ServerA, ServerB e ServerC e queira 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 mongo.exe possam se conectar entre si. Suponha que você tenha 3 servidores chamados ServerA, ServerB e ServerC. No Servidor A, emita os 2 comandos abaixo
mongo –host ServerB –port 27017 mongo –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 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 no 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.
Resumo
Replicação em MongoDB refere-se ao processo de garantir que os mesmos dados estejam disponíveis em mais de um servidor Mongo DB. Muitos membros (MongoDB instâncias) podem ser adicionadas ao conjunto de réplicas dependendo dos requisitos.