Menu Docs
Página inicial do Docs
/ /

Restaurar um cluster fragmentado autogerenciado a partir de despejos de banco de dados

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.

Certifique-se de ter um backup do seu cluster de origem. Para criar um, consulte Fazer backup mongodump de um cluster fragmentado autogerenciado com um despejo do banco de dados. Se você tiver instantâneos do sistema de arquivos, consulte Restaurar um cluster fragmentado autogerenciado a partir de instantâneos.

1

Para evitar que as migrações de chunks interrompam a restauração, conecte-se ao e interrompa o mongos balanceador:

sh.stopBalancer()

Para verificar se você interrompeu o balanceador, execute:

use config
while( sh.isBalancerRunning().mode != "off" ) {
print( "Waiting for Balancer to stop..." );
sleep( 1000 );
}
2

Para cada coleção fragmentada no cluster de origem, crie a coleção no cluster de destino e fragmente-a usando a mesma chave de fragmento antes de restaurar os dados.

Para encontrar a chave de shard para cada coleção, consulte o cluster de origem ativa:

use config
db.collections.find()

Como alternativa, você pode usar para inspecionar bsondump o config/collections.bson arquivo do diretório de despejo:

bsondump /path/to/dump/config/collections.bson
{
"_id": "<database>.<collection>",
...
"key": { "<shardKeyField>": "<key>" },
...
}

Observação

Os valores de chave de shard válidos são 1 ou "hashed".

Para cada coleção fragmentada, fragmente a coleção no cluster de destino usando a mesma chave de shard:

sh.shardCollection(
"<database-name>.<collection-name>",
{ <shardKeyField>: <key> }
)
3

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.

4

Após a conclusão da restauração, reinicie o balanceador:

sh.startBalancer()

Para confirmar se o balanceador está em execução:

sh.isBalancerRunning().mode
full
5

Conecte ao e mongos sh.status() execute o para verificar o status geral do cluster:

sh.status()

Para confirmar que todos os shards estão acessíveis e comunicados, insira um documento de teste em uma coleção temporária:

db.testRestore.insertOne({ test: 1 })

Em seguida, conecte-se a cada shard primário e execute db.collection.find() para confirmar que o documento está presente:

db.testRestore.find()

Voltar

Restaurar um cluster fragmentado a partir de snapshots do sistema de arquivos

Nesta página