Perguntas frequentes
Como fazer backup de um banco de dados MongoDB em produção sem tempo de inatividade?
Para servidores autônomos e conjuntos de réplicas, o plug-in Bacula Enterprise MongoDB executa o mongodump em um banco de dados em produção sem interromper as leituras ou gravações, e o banco de dados permanece totalmente operacional durante as tarefas de backup. No entanto, a garantia de ausência de tempo de inatividade não se aplica a backups de clusters fragmentados, uma vez que esses backups exigem (1) interromper o balanceador de fragmentos por meio de sh.stopBalancer(), (2) desativar as migrações programadas de fragmentos e (3) impedir gravações e transformações de esquema durante o período do dump. É de se esperar que as gravações sejam interrompidas durante a janela de backup. Faça o backup do conjunto de réplicas do servidor de configuração primeiro e, em seguida, capture cada conjunto de réplicas de fragmento o mais próximo possível em termos de tempo.
Qual é a diferença entre um backup lógico e um físico no MongoDB?
Um backup lógico usa o `mongodump` para exportar os documentos, índices e esquemas do banco de dados para arquivos BSON portáteis. Esses arquivos são independentes do mecanismo de armazenamento subjacente e geralmente podem ser restaurados em um servidor diferente, embora as restaurações entre versões dependam da compatibilidade entre as versões do MongoDB, da versão das Ferramentas de Banco de Dados e da Versão de Compatibilidade de Recursos (FCV). Portanto, nem todas as combinações têm garantia de funcionamento. Um backup físico, por outro lado, copia os arquivos de dados brutos do disco, o que é muito mais rápido para conjuntos de dados muito grandes, mas vincula o artefato ao mecanismo de armazenamento e à versão originais.
Como funciona a recuperação em um ponto no tempo (PITR) para conjuntos de réplicas do MongoDB?
A recuperação em um ponto no tempo está disponível exclusivamente para conjuntos de réplicas. Quando é necessária uma restauração, o parâmetro `replay_to` interrompe a reprodução do oplog em qualquer ponto dentro da janela de oplog disponível e recupera o conjunto de réplicas para o estado protegido mais próximo dentro dessa janela antes que um incidente ocorra. Servidores autônomos e clusters fragmentados não oferecem suporte à PITR por meio deste plug-in, pois não fornecem uma cadeia de recuperação do oplog da mesma forma que os conjuntos de réplicas. Se você precisar recuperar uma coleção específica para um ponto no tempo, o caminho recomendado é restaurar primeiro a cadeia completa do conjunto de réplicas em um destino que não seja de produção e, em seguida, extrair e reconciliar os dados necessários no nível do aplicativo.
É possível restaurar uma única coleção do MongoDB sem recuperar todo o banco de dados?
Sim. O plug-in MongoDB do Bacula suporta filtros de inclusão e exclusão no nível do banco de dados e da coleção, de modo que uma tarefa de restauração possa ter como alvo uma coleção específica sem afetar o restante do banco de dados. Isso mantém as janelas de restauração curtas e minimiza o risco de sobrescrever dados íntegros junto com os dados danificados que você precisa substituir. Uma restauração completa do banco de dados está disponível quando necessário, mas nunca é a única opção.
Além disso, observe que a restauração granular no nível da coleção se aplica a artefatos lógicos completos e não pode ser combinada com a reprodução do oplog, o que significa que a recuperação em um ponto no tempo opera sempre no escopo completo do conjunto de réplicas. Se você precisar de ambas as opções, certifique-se de restaurar primeiro a cadeia completa do conjunto de réplicas em um destino fora de produção e, em seguida, extrair os dados necessários no nível da aplicação.
Por que usar o plug-in MongoDB do Bacula em vez de executar o mongodump manualmente?
O mongodump, por si só, é uma ferramenta capaz para uma única exportação lógica. Dito isso, sua limitação é que ele não oferece tudo (agendamento centralizado, retenção automatizada, validação de checksum, metadados da cadeia de recuperação e a lista continua) o que vem após o dump. O plug-in MongoDB do Bacula Enterprise integra o mongodump e o mongorestore ao mecanismo de políticas do Bacula, de modo que cada tarefa de backup do MongoDB seja adequadamente agendada, catalogada, validada e recuperável a partir do mesmo console que gerencia o restante da sua infraestrutura.