Docs Menu
Docs Home
/ /

Restauración de un clúster autogestionado a partir de vaciados de bases de datos

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.

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.

1

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 );
}
2

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> }
)
3

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.

4

Una vez completada la restauración, reinicie el balanceador:

sh.startBalancer()

Para confirmar que el balanceador está ejecutándose:

sh.isBalancerRunning().mode
full
5

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()

Volver

Restaurar un clúster particionado a partir snapshots del sistema de archivos

En esta página