Puedes utilizar mongodump y para sembrar el clúster de MongoDB Atlas con datos de un conjunto independiente o de réplica de MongoDB existente. Para obtener instrucciones sobre cómo sembrar datos de un clúster fragmentado de MongoDB existente, contacte con el soporte de mongorestore Atlas:
En Atlas, vaya a la 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 escalar un M0 clúster de nivel gratuito a un M10+ clúster pago mediante la interfaz de usuario Atlas, también puede usar mongodump los mongorestore procedimientos y de esta sección para copiar datos de un M0 clúster de nivel gratuito a un M10+ clúster.
Considerations
Versión recomendada mongodump mongorestore y
Utilice la última versión estable de mongodump y para este mongorestore procedimiento.
Tiempo de inactividad requerido
Para garantizar una migración actualizada, programe una ventana de mantenimiento donde pueda detener todas las escrituras en el clúster de origen. Las operaciones de escritura realizadas en el clúster de origen una vez mongodump finalizada la parte del procedimiento no se migrarán al clúster de destino.
Después de que complete la restauración de datos, debe transferir sus aplicaciones al clúster Atlas de destino antes de reanudar las operaciones de escritura. Para conectarse a un clúster Atlas, consulte Conectarse mongorestorea un clúster 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 desea usar
mongorestorecon la opción, debe eliminar--oplogReplaylosadminconfigdirectorios y deldumpdirectorio creado por.mongodumpLosadminconfigdirectorios y contienen información de usuario de la base de datos que no se puede agregar a un clúster de Atlasmongorestorecon. Use para excluir el espaciomongorestore--nsExcludedeadmin.system.*nombres.
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 en un host del clúster de origen. Estos programas consumen recursos del sistema, como CPU y memoria, y pueden afectar el rendimiento del mongorestore host.
Ejecute este procedimiento durante horas punta o durante una ventana de mantenimiento programada. Si el origen es un conjunto de réplicas, puede ejecutar este procedimiento desde el host de un miembro secundario. Tras detener las escrituras en el clúster, permita que el secundario alcance al principal antes de iniciar este procedimiento.
Comportamiento de las tuberías
Este procedimiento utiliza tuberías de Linux Para transmitir la salida demongodumpamongorestore. Si el procesomongorestoreno puede seguir el ritmo del procesomongodump, podrían aparecer errores de canalización rota.
Para obtener orientación sobre cómo solucionar errores persistentes de tuberías rotas, 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.
Procedimiento
El siguiente tutorial utiliza mongodump y para cargar datos de un clúster MongoDB existente a un clúster mongorestore Atlas:
Cree un usuario de base de datos en el conjunto de réplicas de origen.
Importante
Opcional
Si su clúster de origen no exige la autenticación, omita este paso.
Si la implementación de origen exige autenticación, debe otorgar a un usuario de base de datos privilegios para leer cualquier base de datos como parte de este procedimiento. Para obtener más información sobre los privilegios de usuario de base de datos, consulte Control de acceso basado en roles de MongoDB.
Si no existe dicho usuario, cree un usuario en su conjunto de réplicas MongoDB de origen con la función de respaldo en la admin base de datos.
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 conectarse a los clústeres Atlas, le recomendamos que se conecte con una cadena de conexión de lista de semillas DNS utilizando 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 host con la información de los miembros de su conjunto de réplicas. Reemplace <ReplicaSetName> con el nombre del conjunto de réplicas de origen.
Para implementaciones independientes, excluya replicaSet=<ReplicaSetName> y especifique solo el nombre de host de la implementación independiente. Por ejemplo, --uri "mongodb://standalone-mongod.example.net:27017"
mongodump --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" \ --archive
Nota
Si usa mongodump o en mongorestore Ubuntu,18.04 podría recibir un cannot unmarshal DNS mensaje de error al usar cadenas de conexión SRV (con el mongodb+srv:// formato) con la --uri opción. En ese caso, utilice una de las siguientes opciones:
la
--uriopción con una cadena de conexión que no sea SRV (en elmongodb://formato)la opción
--hostpara especificar el host al que conectarse directamente
Nota
Si su contraseña contiene caracteres especiales, debe estar codificada en porcentaje.
No ejecute este comando todavía. Continúe con el siguiente paso una vez que haya modificado la plantilla.
Configurar el usuario de la base de datos en el clúster Atlas de destino.
Para ejecutar en un clúster Atlas, debe especificar un usuario de mongorestore Atlas admin base de datos en el clúster Atlas que tenga el rol.
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.
Agregar un usuario Atlas admin.
Para obtener más información sobre la administración de usuarios, consulte Configurar 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.
Recupere y modifique la mongorestore plantilla de conexión.
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.
Dependiendo del tipo de cadena de conexión que utilice, su 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.*"
mongodump mongorestoreEjecutar y.
Importante
Asegúrese de que el host donde está ejecutando mongodump y esté en la lista de mongorestoreacceso IP del proyecto.
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 su editor de texto preferido, utilice el operador de barra | vertical para separar los comandos y. Según el tipo de cadena de conexión que utilice, el comando final debería ser similar a uno de los mongodump mongorestore 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.*"
Ejecute el comando completo desde una terminal o shell conectado a una máquina host en su 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.