mongorestore es una herramienta que lee las exportaciones binarias de mongodump y restaura los datos en una implementación de MongoDB. Utilice mongorestore para restaurar un clúster particionado a partir de una copia de seguridad de mongodump.
Antes de comenzar
Asegúrese de tener una copia de seguridad del clúster de mongodump origen. Para crear uno, consulta Realiza un respaldo de un clúster particionado autogestionado con un vaciado de la base de datos. Si tienes snapshot del sistema de archivos, consulta Restaura un clúster particionado autogestionado a partir de snapshot.
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 utilizar bsondump para inspeccionar el archivo config/collections.bson de su directorio de vaciado:
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.
Utilice mongorestore para conectarse a mongos y realizar la restauración del 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 opción --drop descarta la colección antes de la restauración. Si utilizas --drop después de preparticionar colecciones, mongorestore remueve la configuración de particionado.
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()