mongorestore es una herramienta que lee las exportaciones binarias de mongodump y realiza la restauración de 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 mongodump copia de seguridad de su clúster de origen. Para crear uno, consulte Realice una copia de seguridad de un clúster particionado autogestionado con un vaciado de base de datos. Si tiene snapshots del sistema de archivos, consulte Restauración de un clúster autogestionado a partir de snapshots.
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()