Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home

Inicia con mongorestore

Puede usar mongodump y mongorestore para iniciar un clúster de MongoDB Atlas con datos de un MongoDB autónomo o set de réplicas existente. Para obtener orientación sobre cómo importar datos desde un clúster de segmentado MongoDB existente, contacta con soporte de Atlas:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. Haga clic en el icono Support en la barra de navegación.

  3. Haga clic en View plan.

Aparece la página de soporte.

2

Mientras puedas escale un clúster Free (anteriormente conocido como M0) a un clúster M10+ de pago usando la Interfaz de Usuario de Atlas, también puedes usar mongodump y mongorestore los procedimientos en esta sección para copiar los datos de un clúster Free a un clúster M10+.

Utiliza la última versión estable de mongodump y mongorestore para este procedimiento.

Para garantizar una migración actualizada, programa un periodo de mantenimiento en el que puedas detener todas las escrituras en tu clúster de origen. Cualquier operación de escritura que se emita al clúster de origen después de que se complete la parte mongodump del procedimiento no se migrará al clúster de destino.

Una vez que mongorestore complete la restauración de datos, deberás traspasar tus aplicaciones al clúster de destino de Atlas antes de reanudar las operaciones de escritura. Para conectarse a un clúster de Atlas, consulte Conéctese a un clúster de Atlas.

La cantidad total de tiempo de inactividad requerido depende de factores como el tamaño de los datos que se están migrando y la conexión de red entre tu clúster de origen y Atlas. Si tienes preguntas o inquietudes sobre un periodo de inactividad prolongado, contacta al soporte de Atlas:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. Haga clic en el icono Support en la barra de navegación.

  3. Haga clic en View plan.

Aparece la página de soporte.

2

Atlas gestiona la creación de usuarios de bases de datos. Si el clúster de origen aplica la autenticación:

  • Permitir acceso de solo lectura al primario.

  • Si quieres utilizar mongorestore con la opción --oplogReplay, debes borrar los directorios admin y config del directorio dump que crea mongodump. Los directorios admin y config contienen información de usuarios de la base de datos que no se puede agregar a un clúster de Atlas con mongorestore. Utiliza la mongorestore --nsExclude para excluir el admin.system.* namespace.

No se puede migrar ninguna información de usuario o rol existente a Atlas. Para el clúster de Atlas de destino, crea los usuarios de base de datos apropiados para admitir los patrones de uso de tu aplicación. Actualiza tus aplicaciones como parte del procedimiento de cambio para usar los nuevos usuarios de base de datos. Para obtener más información, consulta Configurar usuarios de base de datos.

Este procedimiento requiere ejecutar mongodump y mongorestore en un host en el clúster de origen. Estos programas utilizan recursos del sistema, como CPU y memoria, y pueden afectar el rendimiento del host.

Ejecute este procedimiento durante un período de baja actividad del sistema o durante un periodo de mantenimiento programado. Si la fuente es un set de réplicas, puedes ejecutar este procedimiento desde el host de un secundario. Después de detener las escrituras en el clúster, permita que el secundario se ponga al día con el primario antes de comenzar este procedimiento.

Este procedimiento utiliza pipes de Linux para transmitir la salida de mongodump a mongorestore. Si el proceso mongorestore no puede seguir el ritmo del proceso mongodump, es posible que vea errores de pipe roto.

Para obtener orientación sobre cómo abordar los errores persistentes de pipe rota, contacta al soporte de Atlas:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. Haga clic en el icono Support en la barra de navegación.

  3. Haga clic en View plan.

Aparece la página de soporte.

2

El siguiente tutorial utiliza mongodump y mongorestore para cargar datos de un clúster existente de MongoDB a un clúster de Atlas:

1

Importante

Opcional

Si tu clúster de origen no aplica autenticación, omite este paso.

Si la implementación de origen aplica una autenticación, debe proporcionar un usuario de base de datos con privilegios para leer cualquier base de datos como parte de este procedimiento. Para obtener más información sobre los privilegios de los usuarios de bases de datos, consulte Control de acceso basado en roles de MongoDB.

Si no existe dicho usuario, cree un usuario en su set de réplicas fuente de MongoDB con el rol de copia de seguridad en la base de datos admin.

Ejemplo

Ejecuta el siguiente comando en mongosh para crear el mySourceUser en la base de datos admin y asignarle el rol backup. Para los set de réplicas, debes ejecutar este comando en el primario.

use admin
db.createUser(
{
user: "<mySourceUser>",
pwd: "<mySourcePassword>",
roles: [ "backup" ]
}
)
2

Dependiendo del tipo de cadena de conexión que uses, copia una de las siguientes plantillas en tu editor de texto preferido:

Nota

Para conectarte a los clústeres de Atlas, se recomienda usar una cadena de conexión de lista de nodos iniciales DNS usando la opción --uri.

mongodump --uri "mongodb://username:password@mongodb0.example.com:<Port>,mongodb1.example.com:<Port1>,mongodb2.example.com:<Port2>/?replicaSet=<ReplicaSetName>&authSource=admin" \
--archive

Reemplace los ejemplos de hosts con la información de los miembros de su conjunto de réplicas. Reemplaza <ReplicaSetName> con el nombre del set de réplicas de origen.

Para implementaciones autónomas, excluye replicaSet=<ReplicaSetName> y especifica únicamente el nombre de host de la implementación autónoma. Por ejemplo, --uri "mongodb://standalone-mongod.example.net:27017"

mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \
--archive

Nota

Si se usa mongodump o mongorestore en Ubuntu 18.04, puede que experimentes un mensaje de error cannot unmarshal DNS al usar cadenas de conexión SRV (en la forma mongodb+srv://) con la opción --uri. En ese caso, utiliza una de las siguientes opciones en su lugar:

Nota

Si tu contraseña contiene caracteres especiales, deben estar codificados en porcentaje.

No ejecute este comando todavía. Continúe al siguiente paso una vez que haya modificado la plantilla.

3

Para ejecutar mongorestore en un clúster de Atlas, debe especificar un usuario de base de datos en el clúster de Atlas que tenga el rol Atlas admin.

Si no existe tal usuario, cree uno:

  1. En Atlas, se debe ir a la página Database Access del proyecto.

    1. Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.

    2. Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.

    3. En la barra lateral, haz clic en Database & Network Access en la sección Security.

      La página Acceso a la base de datos y a la red se muestra.

  2. Haga clic en Add New Database User.

  3. Agrega un usuario Atlas admin.

Para obtener más información sobre la gestión de usuarios, consulta Configura usuarios de base de datos.

4
  1. Si aún no se muestra, seleccione la organización que contiene su proyecto deseado en el menú Organizations de la barra de navegación.

  2. Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.

  3. En la barra lateral, haz clic en Clusters en la sección Database.

La página de clústeres se muestra.

5

En el menú para el clúster, haz clic en Command Line Tools.

6

La sección Binary Import and Export Tools de la pestaña Command Line Tools muestra una plantilla copiable con las opciones mínimas necesarias para conectar mongorestore a su clúster Atlas.

La plantilla incluye valores de marcador de posición para ciertas opciones. Copia y pega la plantilla en tu editor de texto preferido y realiza las siguientes modificaciones:

  • password: reemplaza esto con la contraseña para el usuario especificado en username. La plantilla incluye un usuario de base de datos para el proyecto como el username. Si deseas autenticarte como un usuario diferente, reemplaza el valor de username y especifica la contraseña para ese usuario en password.

  • Añade --nsExclude y establece su valor a "admin.system.*".

  • Add --archive.

Según el tipo de cadena de conexión que utilices, tu plantilla debería parecerse a uno de los siguientes comandos:

mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myRepl&authSource=admin" \
--archive \
--ssl \
--nsExclude "admin.system.*"
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \
--archive \
--nsExclude "admin.system.*"
7

Importante

Asegúrese de que el host donde está ejecutando mongodump y mongorestore esté en el proyecto Lista de Acceso IP.

Para revisar la lista de acceso IP de tu proyecto, haz clic en Network Access en la sección Security de la barra lateral. La pestaña IP Access List se muestra. Para obtener más información, consulte Lista de acceso IP.

En tu editor de texto preferido, utiliza el operador | para separar los comandos mongodump y mongorestore. Según el tipo de cadena de conexión que utilices, el comando final debería semejarse a uno de los siguientes:

mongodump --uri "mongodb://username:password@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=sourceRS&authSource=admin" \
--archive \
| \
mongorestore --uri "mongodb://username:password@00.foo.mongodb.net:27017,01.foo.mongodb.net:27017,02.foo.mongodb.net:27017/?replicaSet=myAtlasRS&authSource=admin" \
--archive \
--ssl \
--nsExclude "admin.system.*"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \
--archive \
| \
mongorestore --uri "mongodb+srv://username:password@cluster1.example.mongodb.net" \
--archive \
--nsExclude "admin.system.*"

Ejecuta el comando completo desde una terminal o shell conectada a un host en tu clúster de origen.

Una vez completado el procedimiento con éxito, conéctese al clúster de Atlas usando mongosh y verifique el resultado del procedimiento. Para aprender cómo, consulte Conectarse a un clúster a través de mongosh.

Se debe actualizar las aplicaciones para que apunten al clúster Atlas antes de reanudar las operaciones de guardado. Para aprender a conectar aplicaciones a Atlas, consulta Conectar a un clúster mediante Librerías de clientes.

Tip