Como fazer backup e migrar um banco de dados MongoDB

A migração de bancos de dados é algo que todo administrador de sistema terá que fazer em algum momento. Felizmente, o MongoDB fornece comandos integrados para criar e restaurar de backups, facilitando a migração para um novo servidor.
Usando mongodump para criar um backup
mongodump é um comando simples que criará um arquivo de backup de um banco de dados e suas coleções que você pode restaurar. Isso exigirá algum tempo de inatividade enquanto o backup é feito e o novo servidor é ativado.
Se você não quiser tempo de inatividade, pode fazer uma migração de cluster adicionando um novo nó ao seu cluster, definindo-o como a fonte de gravação primária e, em seguida, trocando a quente para o novo nó. Isso será muito mais fácil se você estiver usando o MongoDB Atlas, seu serviço de banco de dados gerenciado.
mongodump é muito mais simples. Você &’ precisará criar um diretório para os backups:
sudo mkdir / var / backups / mongobackups
E, em seguida, execute o mongodump, passando-o em um parâmetro de banco de dados e um local de saída:
sudo mongodump --db databasename --out / var / backups / mongobackups / backup
Você também pode despejar manualmente coleções específicas com o sinalizador --collection.
O Mongodump pode ser executado em um banco de dados ativo e leva apenas alguns segundos para criar o backup. No entanto, todas as gravações no banco de dados serão efetivamente perdidas, já que você está movendo os servidores. Por isso, você deseja desativar o tráfego antes de criar o despejo.
Restaurando do backup
Você precisará transferir o arquivo de backup do servidor antigo para o novo. Isso pode ser feito baixando-o por FTP e, em seguida, enviando-o para o novo servidor, mas para backups grandes, é melhor estabelecer uma conexão direta e transferi-la usando scp.
Você pode usar o seguinte comando, substituindo os nomes de usuário e nomes de host por valores para seus servidores.
usuário scp @ SRC_HOST: / var / backups / mongobackups / FILENAME usuário @ DEST_HOST: ~ / FILENAME
Então, assim que tiver o backup no novo servidor, você pode carregar a partir do backup. É claro que você precisará do MongoDB instalado no novo servidor.
Para fazer isso, você pode usar o comando mongorestore:
mongorestore < options > < string de conexão > < arquivo para restaurar >
Você deve ver imediatamente a nova tabela disponível no novo banco de dados.
Depois de verificar se tudo foi transferido corretamente, você &’ precisará trocar o tráfego para o novo servidor, provavelmente atualizando seus registros DNS. Se você estiver na AWS ou em um provedor semelhante com endereços Elastic IP, poderá trocar o endereço para apontar para o novo servidor, que não exigirá uma atualização de DNS.

Transferência de todo o disco (opcional)
Opcionalmente, se você estiver apenas mudando para um servidor mais poderoso, poderá transferir toda a unidade de inicialização, que deve copiar o banco de dados junto com o resto da configuração do servidor.
Neste caso, você &’ vai querer usar o comando rsync para enviar diretamente os dados para o servidor de destino. O rsync se conectará usando SSH e sincronizará as duas pastas; neste caso, queremos enviar a pasta local para o servidor remoto:
sudo rsync -azAP / --exclude = {"/ dev / *", "/ proc / *", "/ sys / *", "/ tmp / *", "/ run / *" , "/ mnt / *", "/ media / *", "/ lost + found"} nome de usuário @ remote_host: / Esse é o comando completo. Você deve ver uma barra de progresso à medida que a transferência é concluída (usando compactação com o sinalizador -z) e, quando terminar, você verá os arquivos na pasta de destino no novo servidor. Pode ser necessário executar isso várias vezes para copiar cada pasta; você pode usar este gerador de comando rsync online para gerar o comando para cada execução.
Nenhum comentário