mongorestorees una herramienta que lee exportaciones binariasmongodumpy restaura los datos en una implementación de MongoDB. Usemongorestorepara restaurar un clúster fragmentado desde una copia de seguridadmongodump.
Antes de comenzar
Asegúrese de tener una mongodump copia de seguridad de su clúster de origen. Para crear una, consulte Realice una copia de seguridad de un clúster fragmentado autogestionado mediante un volcado de base de datos. Si dispone de instantáneas del sistema de archivos, consulte Restaurar un clúster fragmentado autogestionado a partir de instantáneas.
Pasos
Detén el balanceador.
Para evitar que las migraciones de fragmentos interrumpan la restauración, conéctese a y detenga el mongos balanceador:
sh.stopBalancer()
Para verificar que detuviste el balanceador, ejecuta:
use config while( sh.isBalancerRunning().mode != "off" ) { print( "Waiting for Balancer to stop..." ); sleep( 1000 ); }
Colecciones previas al fragmentado en el clúster de destino.
Para cada colección fragmentada en el clúster de origen, cree la colección en el clúster de destino y fragmente utilizando la misma clave de fragmentación antes de restaurar los datos.
Para encontrar la clave de fragmentación para cada colección, consulte el clúster de origen en vivo:
use config db.collections.find()
Alternativamente, puede usar para inspeccionar bsondump el config/collections.bson archivo de su directorio de volcado:
bsondump /path/to/dump/config/collections.bson
{ "_id": "<database>.<collection>", ... "key": { "<shardKeyField>": "<key>" }, ... }
Nota
Los valores válidos de la clave de fragmentación son 1 o "hashed".
Para cada colección fragmentada, fragmente la colección en el clúster de destino utilizando la misma clave de fragmentación:
sh.shardCollection( "<database-name>.<collection-name>", { <shardKeyField>: <key> } )
Restaurar el clúster.
Utilicemongorestorepara conectarse amongosy restaurar el clúster. Excluya la base de datos config para preservar la configuración existente del clúster de destino:
mongorestore \ --host <host> \ --port 27017 \ --username <username> \ --password "<password>" \ --authenticationDatabase admin \ --nsExclude='config.*' \ /path/to/backup
Importante
La --drop opción elimina la colección antes de restaurarla. Si utiliza --drop después de pre-fragmentar las colecciones, elimina la configuración demongorestore fragmentación.
Validar la accesibilidad del clúster.
Conéctese a mongos y sh.status() ejecute para comprobar el estado general del clúster:
sh.status()
Para confirmar que todos los fragmentos son accesibles y se comunican entre sí, inserte un documento de prueba en una colección temporal:
db.testRestore.insertOne({ test: 1 })
Luego, conéctese a cada nodo primario db.collection.find() de fragmento y ejecute para confirmar que el documento está presente:
db.testRestore.find()