mongorestoreé uma ferramenta que lêmongodumpexportações binárias e restaura os dados em uma implantação do MongoDB . Usemongorestorepara restaurar um cluster fragmentado a partir de um backupmongodump.
Antes de começar
Certifique-se de ter um mongodump backup do cluster de origem. Para criar um, consulte Fazer backup de um cluster fragmentado autogerenciado com um despejo de banco de dados. Se você tiver instantâneos do sistema de arquivos, consulte Restaurar um cluster fragmentado autogerenciado a partir de instantâneos.
Passos
Pare o balanceador.
Para evitar que as migrações de partes atrapalhem a restauração, conecte-se a mongos e interrompa o balanceador:
sh.stopBalancer()
Para verificar se você parou o balanceador, execute:
use config while( sh.isBalancerRunning().mode != "off" ) { print( "Waiting for Balancer to stop..." ); sleep( 1000 ); }
Coleções pré-shard no cluster de destino.
Para cada coleção fragmentada no cluster de origem, crie a coleção no cluster de destino e shard-a usando a mesma chave de shard com hash antes de restaurar os dados.
Para encontrar a chave de shard com hash para cada coleção, query o cluster de origem ativo:
use config db.collections.find()
Como alternativa, você pode usar para inspecionar bsondump o config/collections.bson arquivo do seu diretório de despejo:
bsondump /path/to/dump/config/collections.bson
{ "_id": "<database>.<collection>", ... "key": { "<shardKeyField>": "<key>" }, ... }
Observação
Os valores válidos da chave de shard são 1 ou "hashed".
Para cada coleção fragmentada, shard a coleção no cluster de destino usando a mesma chave de shard com hash:
sh.shardCollection( "<database-name>.<collection-name>", { <shardKeyField>: <key> } )
Restaurar o cluster.
Usemongorestorepara se conectar aomongose restaurar o cluster. Exclua o banco de dados config para preservar a configuração existente do cluster de destino:
mongorestore \ --host <host> \ --port 27017 \ --username <username> \ --password "<password>" \ --authenticationDatabase admin \ --nsExclude='config.*' \ /path/to/backup
Importante
A --drop opção descarta a coleção antes de restaurar. Se você usar --drop após a pré-fragmentação das collections, omongorestore removerá a configuração de fragmentação.
Validar acessibilidade do cluster.
Conecte-se a mongos e execute sh.status() para verificar o status geral do cluster:
sh.status()
Para confirmar que todos os shards estão acessíveis e comunicando, insira um documento de teste em uma coleção temporária:
db.testRestore.insertOne({ test: 1 })
Em seguida, conecte-se a cada primário de shard e execute db.collection.find() para confirmar que o documento está presente:
db.testRestore.find()