Para cargar sus propios datos en un clúster de Atlas Infinite, utilice uno de los siguientes métodos:
mongodump y mongorestore:
mongodumpcrea una exportación binaria de los datos desde una instancia independiente o un conjunto de réplicas de MongoDB existente, incluido un clúster Atlas Core, ymongorestorecarga los datos en un clúster Atlas Infinite. Utilice este método cuando sus datos de origen se encuentren en una implementación de MongoDB. Para obtener más información, consulte Restaurar datos desde una implementación de MongoDB.mongoimport:
mongoimportcarga documentos desde un archivoJSONoCSVen un clúster de Atlas Infinite. Utilice este método cuando sus datos de origen se encuentren en un archivo externo a MongoDB. El archivo puede provenir demongoexporto de una herramienta de exportación de terceros. Para obtener más información, consulte Importar datos desde un archivo JSON o CSV.Operaciones de escritura masiva: Los métodos de la base de datos MongoDB escriben lotes de documentos en un clúster de Atlas Infinite. Utilice este método cuando genere o transforme los documentos usted mismo desde una aplicación,
mongosh, la interfaz de usuario de Atlas u otra interfaz. Para obtener más información, consulte Escribir datos generados por usted.
Cada uno de estos métodos consume capacidad de escritura en el clúster Atlas Infinite de destino. Para limitar el impacto en sus aplicaciones, ejecute las cargas de datos grandes durante períodos de baja actividad del sistema o durante una ventana de mantenimiento programada.
Requisitos previos
Complete los siguientes requisitos previos:
Cree un clúster Atlas Infinite de destino. Para obtener más información, consulte Crear un clúster Atlas Infinite o Atlas Core.
Para usar
mongodump,mongorestoreomongoimport, instale la última versión estable de las herramientas de base de datos de MongoDB en ese host. Para obtener más información, consulte la guía de instalación de las herramientas de base de datos de MongoDB.
Restaurar datos desde una implementación de MongoDB
mongodump crea una exportación binaria de una instancia de MongoDB independiente o de un conjunto de réplicas existente, y mongorestore carga dicha exportación en un clúster de Atlas Infinite. La exportación incluye datos, metadatos e índices de la implementación de origen. Para obtener instrucciones sobre cómo copiar datos de un clúster de MongoDB fragmentado existente, consulte la sección "Solicitar asistencia".
También puede usar este procedimiento para migrar datos de un clúster gratuito o flexible en Atlas Core a un clúster dedicado en Atlas Infinite. Para escalar un clúster gratuito o flexible in situ en lugar de migrar los datos, consulte Escalar un clúster gratuito o flexible a un clúster dedicado.
Este procedimiento requiere tiempo de inactividad. Detenga las escrituras en su implementación de origen, ejecute mongodump y mongorestore, y luego migre sus aplicaciones al clúster Atlas Infinite.
Considerations
Antes de ejecutar este procedimiento, tenga en cuenta los siguientes comportamientos:
Consistencia de datos: Para evitar la pérdida de datos, pause las escrituras en su implementación de origen antes de ejecutar
mongodump. Si ejecutamongodumpdesde un miembro secundario, pause las escrituras y espere a que el secundario se sincronice con el principal antes de iniciar el volcado.Usuarios y roles: Atlas administra los usuarios de la base de datos, por lo que
mongorestoreno puede migrar los usuarios ni los roles existentes al clúster de destino. Cree los usuarios de la base de datos que sus aplicaciones necesitan en el clúster Atlas Infinite de destino. Para obtener más información, consulte Configurar usuarios de la base de datos.Espacios de nombres excluidos: Los directorios
adminyconfigen el volcado contienen información de usuario quemongorestoreno puede agregar a un clúster de Atlas Infinite, por lo que el procedimiento excluyeadmin.*yconfig.*.Recursos del host:
mongodumpse ejecuta en un host con acceso de red a la implementación de origen, ymongorestorese ejecuta en un host con acceso al archivo comprimido y acceso de red a la implementación de destino. Ambas herramientas utilizan CPU y memoria del host, lo que puede afectar su rendimiento.
Pasos
Configure un usuario de base de datos en la implementación de origen.
Si la implementación de origen exige autenticación, mongodump debe autenticarse como un usuario de base de datos con permisos de lectura para todas las bases de datos que migre. El rol backup en la base de datos admin otorga estos privilegios.
Si no existe ningún usuario con esas características en su implementación de origen, créelo. Para obtener información sobre cómo crear y administrar usuarios de base de datos, consulte la siguiente página correspondiente a su tipo de implementación:
Para clústeres administrados por Atlas, consulte Configurar usuarios de la base de datos.
Para implementaciones autogestionadas, consulte la sección "Administrar usuarios y roles en implementaciones autogestionadas".
Configure un usuario de base de datos en el clúster Atlas Infinite de destino.
El usuariomongorestore debe autenticarse como un usuario de base de datos con permisos de escritura para todas las bases de datos que migre. El rol Atlas admin en el clúster Atlas Infinite de destino otorga estos privilegios.
Si no existe ningún usuario con esas características en el clúster de Atlas Infinite de destino, créelo. Para obtener información sobre cómo crear y administrar usuarios de base de datos en Atlas, consulte Configurar usuarios de base de datos.
Conceda a su red host acceso a las implementaciones de origen y destino.
Asegúrese de que el host donde ejecuta mongodump y mongorestore pueda acceder a ambas implementaciones:
Agregue el host a la lista de control de acceso IP del proyecto que contiene su clúster Atlas Infinite de destino. Para obtener información sobre cómo agregar un host a una lista de control de acceso IP, consulte Configurar entradas de la lista de control de acceso IP.
Si su implementación de origen es un clúster Atlas Core en un proyecto diferente, agregue también el host a la lista de acceso IP de ese proyecto. Si su implementación de origen es autogestionada, configure su firewall para que acepte conexiones desde el host. Para obtener más información, consulte Refuerzo de la red y la configuración.
Si configura el emparejamiento de VPC, puede agregar el bloque CIDR de la VPC del par, una subred o el grupo de seguridad de la VPC del par a la lista de acceso IP. Para obtener más información, consulte Lista de acceso IP.
Ejecutar mongodump.
Ensamble el comando
mongodump.La siguiente plantilla de comando
mongodumpse conecta a un conjunto de réplicas de origen o a un clúster independiente utilizando su cadena de conexión y genera un archivo comprimido del volcado en un archivo.Copie la plantilla en su editor de texto preferido y reemplace el marcador de posición
<connectionString>con la cadena de conexión para su implementación de origen, y<fileName>con el nombre del archivo de archivo que se creará.mongodump --uri "<connectionString>" --archive=<fileName>.archive Para aprender a construir una cadena de conexión para la implementación de su fuente, consulte la sección Cadenas de conexión.
Nota
Si se usa
mongodumpomongorestoreen Ubuntu 18.04, puede que experimentes un mensaje de errorcannot unmarshal DNSal usar cadenas de conexión SRV (en la formamongodb+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 cual conectarse directamente
Ejecute el comando completado desde una terminal o símbolo del sistema en un host que tenga acceso de red a su implementación de origen.
Ejemplo
El siguiente comando
mongodumpse conecta a un clúster Atlas Core de origen mediante una cadena de conexión SRV, que contiene el nombre de usuario (mySourceUsername) y la contraseña (mySourcePassword) de un usuario de base de datos con el rolbackupen la base de datosadmin. El comando genera un archivo comprimido del volcado en un archivo llamadomongodump.archiveen el directorio de trabajo actual.mongodump --uri "mongodb+srv://mySourceUsername:mySourcePassword@cluster0.example.mongodb.net" \ --archive="mongodump.archive"
Ejecutar mongorestore.
Ensamble el comando
mongorestore.La siguiente plantilla de comando
mongorestorese conecta a su clúster Atlas Infinite de destino utilizando su cadena de conexión y restaura el archivo creado pormongodump. Utiliza--nsExcludepara excluir las bases de datosadminyconfig, que son administradas por Atlas.Copie la plantilla en su editor de texto preferido y reemplace los siguientes marcadores de posición con los valores apropiados:
<connectionString>Sustituya esto por la cadena de conexión SRV de su clúster Atlas Infinite de destino. Para obtener o crear una cadena de conexión para su clúster de destino, consulte Cadenas de conexión.Incluya el nombre de usuario y la contraseña de un usuario de base de datos con el rol
Atlas adminen la cadena de conexión.<filePath>: reemplace esto con la ruta al archivo de archivo creado pormongodump.
Nota
Si el nombre de usuario o la contraseña incluye los siguientes caracteres, deben convertirse mediante la codificación porcentual:
$ : / ? # [ ] @ mongorestore --uri "<connectionString>" \ --archive="<filePath>" \ --nsExclude "admin.*" \ --nsExclude "config.*" Ejecute el comando completado desde una terminal o símbolo del sistema en un host que tenga acceso al archivo de archivo creado por
mongodump.Ejemplo
El siguiente comando
mongorestorese conecta a un clúster de Atlas Infinite mediante una cadena de conexión SRV, que contiene el nombre de usuario (myDestinationUsername) y la contraseña (myDestinationPassword) de un usuario de base de datos con el rolAtlas admin. El comando restaura el archivo ubicado enmongodump.archivecreado pormongodump, excluyendo las bases de datosadminyconfig.mongorestore --uri "mongodb+srv://myDestinationUsername:myDestinationPassword@cluster0.example.mongodb.net" \ --archive="mongodump.archive" \ --nsExclude "admin.*" \ --nsExclude "config.*"
Actualice sus aplicaciones para que apunten al clúster Atlas Infinite.
Tras verificar la migración, actualice sus aplicaciones para que se conecten al clúster de Atlas Infinite en lugar de a la implementación de origen. Asegúrese de utilizar la cadena de conexión y las credenciales correctas para el clúster de Atlas Infinite.
Importar datos desde un archivo JSON o CSV
mongoimport lee un archivo JSON o CSV e inserta cada registro en una colección de un clúster de Atlas Infinite. El archivo puede provenir de una herramienta de exportación de terceros. Para restaurar datos de una implementación de MongoDB en un clúster de Atlas Infinite, consulte Restaurar datos de una implementación de MongoDB.
Considerations
Antes de ejecutar este procedimiento, tenga en cuenta los siguientes comportamientos:
JSON extendido:
mongoimportutiliza la representación en modo estricto para ciertos tipos de BSON.Solo documentos: A diferencia de
mongorestore,mongoimportcarga únicamente documentos, no opciones de colección ni definiciones de índice. Cree índices en el clúster Atlas Infinite de destino una vez finalizada la importación.Recursos del host:
mongoimportse ejecuta en el host que contiene su archivo y utiliza la CPU y la memoria de ese host.Otras interfaces: Para cargar un archivo sin la línea de comandos, utilice MongoDB Compass, que importa archivos
JSONyCSV, o la interfaz de usuario de Atlas, que inserta documentosJSONque usted pega o escribe.
Pasos
En Atlas, ve a la página Database & Network Access de tu 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 de acceso a la base de datos y a la red se mostrará después de completar los pasos anteriores.
Configure un usuario de base de datos en el clúster Atlas de destino.
Para ejecutar mongoimport y escribir en un clúster de Atlas, debe especificar un usuario de base de datos con permisos de lectura y escritura en la base de datos a la que se importarán los datos. Por ejemplo, un usuario con el rol Atlas admin proporciona estos permisos.
Si no existe tal usuario, cree uno:
Si aún no se muestra, haz clic en la pestaña Database Users.
Haga clic en Add New Database User.
Agrega un usuario Atlas admin.
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.
Actualizar la lista de acceso IP.
Si el host donde vas a ejecutar mongoimport no está en la Lista de acceso IP, actualiza la lista. Puedes especificar uno de los dos:
La dirección IP pública del servidor en el que
mongoimportse ejecutará, oSi se configura para el emparejamiento VPC, se necesita el bloque CIDR (o una subred) de VPC del par o el Security Group de VPC del par, si has seleccionado AWS como el proveedor de nube.
Copie la URI del clúster de destino / información del host.
Puedes conectarte a tu clúster de Atlas utilizando su URI de cadena de conexión. En el cuadro de diálogo de conexión, realiza los siguientes pasos:
Haga clic en Drivers.
Copie la cadena de conexión encontrada en el paso 1.
Reemplace PASSWORD por la contraseña del usuario root y DATABASE por el nombre de la base de datos a la que desea conectarse.
Importante
Se debe escapar de cualquier instancia del carácter
@en el<PASSWORD>proporcionado. Por ejemplo,p@ssworddebería serp%40ssword.
Esta cadena de conexión se especifica en mongoimport en la opción --uri.
Cuando se utiliza --host, si el clúster de Atlas es un set de réplicas, también se debe recuperar el nombre del set de réplicas. Por ejemplo:
myAtlasRS/atlas-host1:27017,atlas-host2:27017,atlas-host3:27017
Escribe los datos que generes.
Las operaciones de escritura masiva envían múltiples escrituras a un clúster de Atlas Infinite en una sola solicitud, lo que reduce los viajes de ida y vuelta de la red y aumenta el rendimiento de escritura. Elija este método para escribir los documentos que genere en un clúster de Atlas Infinite, en lugar de copiar datos de una implementación o archivo existente.
Considerations
Antes de ejecutar este procedimiento, tenga en cuenta los siguientes comportamientos:
Comportamiento de escritura masiva: Las operaciones y opciones de escritura que especifique en una solicitud de escritura masiva determinan cómo MongoDB ordena las operaciones de escritura, gestiona los errores e informa los resultados de una solicitud. Para saber cómo afectan estas opciones al comportamiento de escritura masiva, consulte la página de referencia
bulkWrite().Otras interfaces: Para escribir una pequeña cantidad de documentos sin lógica de procesamiento por lotes, utilice
insertMany()oinsertOne()demongosho un controlador de MongoDB, o lainterfaz de usuario de Atlas, que insertaJSONdocumentos que usted pega o escribe.
Pasos
Conéctese a su clúster Atlas Infinite.
Para ejecutar las operaciones de escritura masiva descritas en este procedimiento, conéctese a su clúster mediante mongosh. Para obtener más información, consulte Conectarse a un clúster de Atlas.
También puede ejecutar operaciones de escritura masiva desde el código de la aplicación con un controlador de MongoDB, desde la interfaz de usuario de Atlas o desde cualquier otra interfaz que se conecte a su clúster. Para obtener información sobre las operaciones equivalentes en cada interfaz, consulte Operaciones de escritura masiva.
Ejecutar la operación de escritura masiva.
Para escribir en una sola colección, ejecute bulkWrite(). Para obtener más información sobre los tipos de operaciones de escritura y las opciones de escritura masiva, consulte bulkWrite().
Por ejemplo, el siguiente comando inserta dos documentos en la colección inventory:
db.inventory.bulkWrite( [ { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f1"), item: "notebook", qty: 50 } } }, { insertOne: { document: { _id: ObjectId("68b1c2d3e4f5a6b7c8d9e0f2"), item: "pencil", qty: 100 } } } ] )
Para escribir en varias colecciones o bases de datos en una sola solicitud, ejecute bulkWrite() y especifique el espacio de nombres para cada operación. Por ejemplo, el siguiente comando inserta un documento en la colección sales.inventory y otro en la colección supplies.inventory:
db.getMongo().bulkWrite( [ { namespace: "sales.inventory", name: "insertOne", document: { item: "notebook", qty: 50 } }, { namespace: "supplies.inventory", name: "insertOne", document: { item: "pencil", qty: 100 } } ] )
De forma predeterminada, las operaciones de escritura masiva se ejecutan en orden y se detienen ante el primer error. Para obtener información sobre cómo configurar el orden de ejecución, consulte la sección Ejecución de operaciones.
Verifique los resultados.
Revise los recuentos que devuelve la operación y confirme la cantidad de documentos en cada colección de destino. Para obtener más información, consulte la sección Salida.
Para obtener información sobre cómo gestionar los errores en las operaciones de escritura masiva, consulte la sección Gestión de errores.
Limitaciones
Atlas Infinite tiene una lista completa de limitaciones de la vista previa pública en Disponibilidad de vista previa pública. Las siguientes limitaciones se aplican cuando carga datos en un clúster de Atlas Infinite:
Sin reproducción de oplog: Atlas Infinite no admite la reproducción de oplog. No utilice la opción
mongodump --oplogni la opciónmongorestore --oplogReplaycon clústeres de Atlas Infinite.Cifrado consultable y cifrado de campo del lado del cliente: No puede usar
mongodumpnimongorestorecon una colección que utilice cifrado consultable o cifrado de campo del lado del cliente.Migración y restauración en vivo entre ediciones: Atlas Infinite no admite la migración en vivo ni la copia de seguridad y restauración entre clústeres de Atlas Core y Atlas Infinite. Las diferencias arquitectónicas entre ambas opciones de implementación hacen que las instantáneas y las migraciones en vivo sean incompatibles.