mongorestore es una herramienta que lee exportaciones binarias y restaura los mongodump datos en una implementación de MongoDB. Utilice para restaurar un clúster mongorestore mongodump fragmentado a partir de una copia de seguridad.
Antes de comenzar
Asegúrese de tener una mongodump copia de seguridad de su clúster de origen. Para crear una, consulte Copia de seguridad de un clúster fragmentado autogestionado con un volcado de base de datos. Si tiene 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 mongos y detenga el balanceador:
sh.stopBalancer()
Para verificar que detuvo el balanceador, ejecute:
use config while( sh.isBalancerRunning().mode != "off" ) { print( "Waiting for Balancer to stop..." ); sleep( 1000 ); }
Colecciones de pre-partición en el clúster de destino.
Para cada colección particionada en el clúster de origen, cree la colección en el clúster de destino y particiónela utilizando la misma clave de partición antes de la restauración de los datos.
Para encontrar la clave de partición de cada colección, query 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 de la clave de partición válidos son 1 o "hashed".
Para cada colección particionada, particione la colección en el clúster de destino utilizando la misma clave de partición:
sh.shardCollection( "<database-name>.<collection-name>", { <shardKeyField>: <key> } )
Restauración del 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 ejecute sh.status() para comprobar el estado general del clúster:
sh.status()
Para confirmar que todas las particiones 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 partición primaria y ejecute db.collection.find() para confirmar que el documento está presente:
db.testRestore.find()