Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Restaurar um conjunto de réplicas de backups do MongoDB

Nesta página

  • Restaurar banco de dados em um conjunto de réplicas de nó único
  • Adicionar membros ao conjunto de réplicas

Este procedimento descreve o processo de obtenção de dados do MongoDB e restauração desses dados em um novo conjunto de réplicas. Use essa abordagem para semear implantações de teste a partir de backups de produção ou como parte da recuperação de desastres.

Importante

Você também pode utilizar o mongorestore para restaurar arquivos do banco de dados utilizando dados criados com mongodump. Consulte Fazer backup e restaurar com as ferramentas do MongoDB para obter mais informações.

1

Os arquivos de backup podem vir de um snapshot do sistema de arquivos. O MongoDB Cloud Manager produz arquivos de banco de dados MongoDB para instantâneos armazenados e instantâneos point-in-time. Para o Ops Manager, uma solução local disponível no MongoDB Enterprise Advanced, consulte também a visão geral do Ops Manager Backup.

Considerações para mecanismos de armazenamento criptografados
Para mecanismos de armazenamento criptografados que usam AES256-GCM modo de criptografia, AES256-GCM exige que cada processo use um valor de bloqueio de contador exclusivo com a chave. Para mecanismo de armazenamento criptografado configurado com AES256-GCM cifra:
  • Restauração a partir de um hot backup
    A partir da versão 4.2, se você restaurar a partir de arquivos obtidos via backup "quente" (ou seja, o mongod está em execução), o MongoDB pode detectar chaves "sujas" na inicialização e rolar automaticamente a chave do banco de dados para evitar a reutilização IV (Initialization Vector).
  • Restaurando a partir do Cold Backup

    No entanto, se você restaurar a partir de arquivos obtidos via backup "frio" (ou seja, o mongod não está em execução), o MongoDB não poderá detectar chaves "sujas" na inicialização, e a reutilização do IV anulará as garantias de confidencialidade e integridade.

    A partir do 4,2, para evitar a reutilização das chaves após restaurar de um snapshot de sistema de arquivos frio, o MongoDB adiciona uma nova opção de linha de comando --eseDatabaseKeyRollover. Quando iniciada com a opção --eseDatabaseKeyRollover, a instância mongod rola as chaves de banco de dados configuradas com AES256-GCM cifra e sai.

Dica

  • Em geral, se estiver usando backups baseados em sistema de arquivos para o MongoDB Enterprise 4.2+, use o recurso de backup "hot", se possível.

  • Para as versões 4.0 e anteriores do MongoDB Enterprise, se você usar AES256-GCM modo de criptografia, não faça cópias de seus arquivos de dados ou restaure a partir de snapshots do sistema de arquivos ("quente" ou "frio").

2

Se você estiver restaurando de uma cópia de segurança do sistema de arquivos (ou qualquer cópia de segurança com o banco de dados do local), solte o banco de dados do local.

Você também deve especificar as mesmas opções de inicialização que foram usadas quando o snapshot foi criado.

mongod --dbpath /data/db <startup options>

Conecte mongosh à instância mongod e remova o banco de dados local .

use local
db.dropDatabase()

Desligue o standalone.

3

Inicie uma instância do mongod como um novo conjunto de réplica de nó único. Especifique o caminho para os arquivos de dados da cópia de segurança com a opção --dbpath e o nome do conjunto de réplica com a opção --replSet . Para conjunto de réplica do servidor de configuração (CSRS), inclua a opção --configsvr. Inclua quaisquer outras opções conforme apropriado para sua implantação.

Você também deve especificar as mesmas opções de inicialização que foram usadas quando o snapshot foi criado.

Observação

Se os membros do seu conjunto de réplicas forem executados em hosts diferentes ou se você desejar que os clientes remotos se conectem à sua instância, você deverá definir a configuração net.bindIp (ou --bind_ip).

Aviso

Antes de vincular a um endereço IP não localhost (por exemplo, acessível publicamente), certifique-se de proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte Lista de verificação de segurança. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

mongod --dbpath /data/db --replSet <replName> <startup options>

Observação

Novo na versão 3,6:

Todas as coleções MongoDB têm UUIDs por padrão. Quando o MongoDB restaura as coleções, as coleções restauradas retêm seus UUIDs originais. Ao restaurar uma coleção onde nenhum UUID estava presente, o MongoDB gera um UUID para a coleção restaurada.

Para obter mais informações sobre collections UUIDs, consulte Collections.

4

Na mesma máquina em que um dos mongod está em execução (neste tutorial, mongodb0.example.net), inicie mongosh. Para se conectar ao mongod escutando localhost na porta padrão do 27017, basta emitir:

mongosh

Dependendo do seu caminho, talvez seja necessário especificar o caminho para o binário mongosh .

Se o seu mongod não estiver executando na porta padrão, especifique a opção --port para mongosh.

5

Use rs.initiate() em um e apenas um membro do conjunto de réplicas:

rs.initiate( {
_id : <replName>,
members: [ { _id : 0, host : <host:port> } ]
})

O MongoDB inicia um conjunto que consiste no membro atual e que utiliza a configuração padrão do conjunto de réplicas.

O MongoDB oferece duas opções para restaurar membros secundários de um conjunto de réplicas:

Observação

Se o seu banco de dados for grande, a sincronização inicial pode levar muito tempo para ser concluída. Para bancos de dados grandes, pode ser preferível copiar os arquivos do banco de dados em cada host.

Use a seguinte sequência de operações para " semear " membros adicionais do conjunto de réplicas com os dados restaurados, copiando os arquivos de dados do MongoDB diretamente.

1

Utilize --shutdown ou db.shutdownServer() para garantir um desligamento limpo.

2

Copie o diretório de dados do primário para o dos outros membros do conjunto de réplicas dbPath.

3
4

Em uma sessão do mongosh que está conectada ao primário, adicione os segundos no conjunto de réplica utilizando o método rs.add() . Consulte Implantar um conjunto de réplicas para mais informações sobre a implantação de um conjunto de réplicas.

Use a seguinte sequência de operações para "compartilhar" membros adicionais do conjunto de réplicas definido com os dados restaurados usando a operação de sincronização inicial padrão.

1

Por exemplo, se o membro do conjunto de réplicas tiver uma storage.dbPath ou --dbpath de /data/db, você deverá garantir que o diretório exista e esteja vazio.

2
3

Conecte-se ao primário usando o shell mongo e adicione cada secundário ao conjunto de réplicas usando rs.add().

Quando você adiciona um membro ao conjunto de réplicas, a Sincronização inicial copia os dados do primário para o novo membro.

← Faça backup e restauração com as ferramentas MongoDB