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.

El tiempo de inactividad total requerido depende de factores como el tamaño de los datos que se migran y la conexión de red entre el clúster de origen y Atlas. Si tiene alguna pregunta o inquietud sobre un tiempo de inactividad prolongado, comuníquese con el 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 la base de datos. Si el clúster de origen exige autenticación:

  • Permitir acceso de lectura al servidor principal.

  • 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, cree los usuarios de base de datos adecuados para los patrones de uso de su aplicación. Actualice sus aplicaciones como parte del proceso de migración para usar los nuevos usuarios de base de datos. Para obtener más información, consulte 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 tuberías 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

Ejecute el siguiente comando en para crear mongosh el mySourceUser en la admin base de datos y asignarle el backup rol. Para los conjuntos de réplicas, debe ejecutar este comando en la base de datos principal.

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

Según el tipo de cadena de conexión que utilice, copie una de las siguientes plantillas en su 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 Binary Import and Export Tools sección de la Command Line Tools pestaña muestra una plantilla copiable con las opciones mínimas requeridas para conectar a su clúster mongorestore Atlas.

La plantilla incluye valores de marcador de posición para ciertas opciones. Copie y pegue la plantilla en su editor de texto preferido y realice 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.

  • Agregue y establezca su --nsExclude valor "admin.system.*" en.

  • 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 su proyecto, haga clic Network Access en en la Security sección de la barra lateral. Se IP Access List mostrará la pestaña. 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.

Tras completar el procedimiento correctamente, conéctese a su clúster Atlas mediante y verifique el resultado. Para saber cómo,mongosh consulte Conectarse a un clúster mediante Mongosh.

Debe actualizar sus aplicaciones para que apunten al clúster Atlas antes de reanudar las operaciones de escritura. Para saber cómo conectar aplicaciones a Atlas, consulte Conectarse a un clúster mediante bibliotecas cliente.

Tip