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:
En Atlas, ve a Support página.
Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.
Haga clic en el icono Support en la barra de navegación.
Haga clic en View plan.
Aparece la página de soporte.
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+.
Considerations
Versión recomendada de mongodump y mongorestore
Utiliza la última versión estable de mongodump y mongorestore para este procedimiento.
Tiempo de inactividad requerido
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:
En Atlas, diríjase a la página Support.
Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.
Haga clic en el icono Support en la barra de navegación.
Haga clic en View plan.
Aparece la página de soporte.
Seguridad del clúster
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
mongorestorecon la opción--oplogReplay, debes borrar los directoriosadminyconfigdel directoriodumpque creamongodump. Los directoriosadminyconfigcontienen información de usuarios de la base de datos que no se puede agregar a un clúster de Atlas conmongorestore. Utiliza lamongorestore--nsExcludepara excluir eladmin.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.
Rendimiento
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.
Comportamiento del pipe
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:
En Atlas, diríjase a la página Support.
Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.
Haga clic en el icono Support en la barra de navegación.
Haga clic en View plan.
Aparece la página de soporte.
Procedimiento
El siguiente tutorial utiliza mongodump y mongorestore para cargar datos de un clúster existente de MongoDB a un clúster de Atlas:
Creá un usuario de base de datos en el set de réplicas de origen.
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" ] } )
Ensamble el mongodump comando.
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:
la opción
--uricon una cadena de conexión que no sea SRV (en el formatomongodb://)la opción
--hostpara especificar el host al que conectarse directamente
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.
Configura un usuario de base de datos en el clúster objetivo de Atlas.
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:
En Atlas, se debe ir a la página Database Access del proyecto.
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.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
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.
Haga clic en Add New Database User.
Agrega un usuario Atlas admin.
Para obtener más información sobre la gestión de usuarios, consulta Configura usuarios de base de datos.
En Atlas, ve a la página Clusters de tu proyecto.
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.
Si aún no aparece, selecciona el proyecto deseado en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Clusters en la sección Database.
La página de clústeres se muestra.
Recupera y modifica la plantilla de conexión mongorestore.
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 enusername. La plantilla incluye un usuario de base de datos para el proyecto como elusername. Si deseas autenticarte como un usuario diferente, reemplaza el valor deusernamey especifica la contraseña para ese usuario enpassword.Agregue y establezca su
--nsExcludevalor"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.*"
Ejecute mongodump y mongorestore.
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.