MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Entendendo as opções de backup do MongoDB


Os fluxos de trabalho de backup e restauração são extremamente importantes para qualquer cluster MongoDB de produção. Além da funcionalidade real de backup e restauração, você também deve considerar outros não funcionais, como a disponibilidade de backups, segurança, tempo de recuperação, granularidade de recuperação etc. Em um nível alto, você tem três opções para fazer backup do seu servidor MongoDB:


  1. Mongodump / Mongorestore
  2. Gerenciador de Nuvem MongoDB
  3. Instantâneos do disco

Cada uma das três técnicas acima tem seus próprios prós e contras. Leia abaixo para entender com mais detalhes.

1. Mongodump /Mongorestore


Mongodump é a ferramenta de backup de “introdução” para a maioria dos desenvolvedores do MongoDB. Provavelmente é assim que a maioria dos desenvolvedores começa a fazer backup de seu banco de dados MongoDB. A ferramenta Mongodump é realmente simples de usar e despeja todos os dados do banco de dados em formato binário (BSON) que você pode armazenar em um local de sua escolha.

Prós:

  1. Simples de usar.
  2. Flexibilidade de onde o backup é armazenado - quando o despejo estiver concluído, você poderá movê-lo para qualquer local de sua escolha - compartilhamentos NFS, AWS S3 etc.

Contra:

  1. Backup completo, sempre – é um backup completo, não uma diferença do seu backup anterior. Portanto, à medida que seu banco de dados fica grande, pode levar horas para concluir o backup e é difícil de armazenar.
  2. Não é um momento pontual – O backup criado pelo mongodump não é um instantâneo pontual por padrão. Portanto, se seus dados estiverem mudando durante o backup, você poderá acabar com um mongodump inconsistente do ponto de vista do aplicativo. Você pode remediar isso usando a opção “–oplog” que tira um instantâneo no final do processo mongodump. No entanto, esta opção não está disponível para bancos de dados independentes

2. Gerenciador de nuvem MongoDB


O Cloud Manager é um serviço de nuvem fornecido pela equipe do MongoDB para ajudar você a fazer backup do cluster do MongoDB.

Prós:

  1. Simples de usar – Instale o agente MongoDB Cloud Manager para gerenciar o backup/restauração do seu cluster. É um pouco mais complicado do que usar o mongodump, mas não muito.
  2. Backup contínuo – O Cloud Manager consulta e faz backup continuamente do seu oplog. Portanto, isso permite que você restaure para qualquer ponto do tempo em vez de horários específicos em que o backup foi feito, o que minimiza sua exposição à perda de dados.

Contra:

  1. Controle de dados – Os dados de backup são armazenados no datacenter do MongoDB fora de seu controle. Em algumas partes do mundo (por exemplo, Europa) e dependendo das suas necessidades de segurança, isso pode ser um grande problema.
  2. Despesa extra – Você está pagando pelo tamanho dos dados e pela quantidade de alterações de oplog. Se você tiver um banco de dados grande ou um grande número de gravações, esse custo pode aumentar.
  3. Restaurações lentas – Para restaurar seus dados do MongoDB Cloud Manager, os dados precisam ser baixados fisicamente do data center do Cloud Manager. Essa pode ser uma operação muito demorada se você tiver um banco de dados grande, por exemplo, se seus dados tiverem 1 TB, pode levar várias horas para fazer o download e usar os dados.

3. Instantâneos de disco


Os instantâneos podem estar no nível da nuvem (por exemplo, instantâneos de disco do AWS EBS) ou no nível do sistema operacional (instantâneos do LVM). Os instantâneos do LVM, embora convenientes, não são facilmente portáteis fora da máquina. Portanto, para o restante desta discussão, vamos nos concentrar em instantâneos de disco em nuvem, como instantâneos do AWS EBS.

Prós:

  1. Simples e fácil de usar – Relativamente trivial para acionar um instantâneo de um disco do EBS.
  2. Portabilidade – Você pode mover seus snapshots para outros data centers se precisar de maior disponibilidade para seus backups.
  3. Diferenças de instantâneos – Os instantâneos são instantâneos diff, portanto, eles armazenam apenas as alterações do seu instantâneo anterior. Isso reduz a quantidade de armazenamento necessária para seu backup.
  4. Nenhuma cópia de dados – Não há cópia de dados envolvida para restaurar seus dados. Por exemplo. Se você deseja restaurar um instantâneo de 1 TB, basta criar um novo volume a partir do instantâneo e isso não resultará em nenhuma cópia de dados real. Este é um * grande problema *  ao lidar com grandes quantidades de dados.
  5. Controle de backup – Os backups permanecem no mesmo datacenter que seus dados primários e são protegidos pelos mesmos mecanismos de autenticação que seus servidores de dados primários.

Contra:

  1. Não é um backup contínuo – É um backup pontual e só pode ser recuperado nos pontos de backup.
  2. Máquinas físicas - Não é possível fazer backup de máquinas físicas no local usando essa técnica.

No final do dia, se seus dados forem pequenos, todas as três opções funcionarão bem. Quando você começar a ter grandes quantidades de dados, terá que gastar tempo e escolher a opção que funciona melhor para o seu cenário.