Docs Menu
Docs Home
/ /

Restaurar un clúster fragmentado autogestionado a partir de volcados de base de datos

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.

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.

1

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

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

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.

4

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

sh.startBalancer()

Para confirmar que el balanceador está en funcionamiento:

sh.isBalancerRunning().mode
full
5

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

Volver

Restaurar un clúster fragmentado a partir de instantáneas del sistema de archivos

En esta página