English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Replicação (Replicado) MongoDB

A replicação do MongoDB é o processo de sincronização de dados em vários servidores.

A replicação fornece cópias de segurança de dados, armazenando cópias de dados em vários servidores, aumentando a disponibilidade dos dados. E pode garantir a segurança dos dados.

A replicação também permite que você recupere dados de falhas de hardware e interrupções de serviços.

O que é replicação?

  • Garantir a segurança dos dados
  • Disponibilidade de dados alta (24*7)
  • Recuperação de desastres
  • Manutenção sem interrupção (como backup, reconstrução de índices, compressão)
  • Leitura de dados distribuída

Princípio de replicação do MongoDB

A replicação do MongoDB pelo menos precisa de dois nós. Um deles é o nó mestre, responsável por lidar com solicitações do cliente, e os outros são nós escravos, responsáveis por copiar os dados do nó mestre.

As combinações comuns dos nós do MongoDB são: um mestre e um escravo, um mestre e vários escravos.

O nó mestre registra todas as operações em seu oplog, e os nós escravos polling regularmente o nó mestre para obter essas operações, então executam essas operações em suas cópias de dados, garantindo que os dados do nó escravo sejam consistentes com o nó mestre.

O diagrama de estrutura de replicação do MongoDB é mostrado a seguir:

No diagrama de estrutura acima, o cliente lê dados do nó mestre, e quando o cliente escreve dados no nó mestre, O nó mestre e o nó escravo se comunicam para garantir a consistência dos dados.

Características do conjunto de cópias:

  • Cluster de N nós
  • Qualquer nó pode ser o nó mestre
  • Todas as operações de escrita estão no nó mestre
  • Transferência de falha automática
  • Recuperação automática

Configuração de conjunto de cópias do MongoDB

Neste tutorial, usamos o mesmo MongoDB para fazer o experimento de MongoDB mestre-esclavo. Os passos a seguir são:

1e feche o servidor MongoDB em execução.

Agora, especificamos --Usar a opção replSet para inicializar o mongoDB.--A sintaxe básica do replSet é a seguinte:

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

Exemplo Online

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0

O exemplo acima inicializará um exemplo MongoDB chamado rs0, cujo número de porta é27017

Depois de inicializado, abra a janela de prompt de comando e conecte-se ao serviço mongoDB.

No cliente MongoDB, use o comando rs.initiate() para inicializar um novo conjunto de cópias.

Podemos usar rs.conf() para verificar a configuração do conjunto de cópias

Ver o estado do conjunto de cópias usando o comando rs.status()

Adicionar membro ao conjunto de cópias

Para adicionar membros ao replicado, precisamos usar vários servidores para iniciar o serviço mongo. Acesse o cliente MongoDB e use o método rs.add() para adicionar membros ao replicado.

Sintaxe

A sintaxe básica do comando rs.add() é a seguinte:
>rs.add(HOST_NAME:PORT)

Exemplo Online

Suponha que você já tenha iniciado um mongod1.net, porta27017do serviço MongoDB. No prompt de comando do cliente, use o comando rs.add() para adicioná-lo ao replicado, conforme mostrado a seguir:

>rs.add("mongod1.net:27017")
>

No MongoDB, você só pode adicionar o serviço MongoDB ao replicado através do nó mestre. Para determinar se o serviço MongoDB em execução é o nó mestre, você pode usar o comando db.isMaster().

Os replicados do MongoDB são diferentes dos comuns mestre-esclavo, onde no caso de falha do mestre todos os serviços param, enquanto no replicado, após a falha do mestre, o replicado assume o nó mestre, não ocorrendo falha.