Compartir a través de


Creación y uso de una réplica de clúster entre regiones en Azure Cosmos DB for MongoDB para núcleo virtual

En esta guía, creará una réplica de clúster en otra región para un clúster de núcleo virtual de Azure Cosmos DB for MongoDB con fines de recuperación ante desastres (DR). Este clúster de réplica almacena una copia de todos los recursos de MongoDB (bases de datos, colecciones y documentos) en otra región de Azure. El clúster de réplica proporciona un punto de conexión único para que varias herramientas y SDK se conecten a y se puedan promover para que estén disponibles para escrituras si hay una interrupción de la región primaria.

Requisitos previos

Creación de un nuevo clúster y su réplica en otra región

Cree un clúster de MongoDB con una réplica de lectura de clúster en otra región mediante Azure Cosmos DB para un núcleo virtual de MongoDB.

Sugerencia

Para esta guía, se recomienda usar el nombre del grupo de recursos msdocs-cosmos-quickstart-rg.

  1. Inicie sesión en Azure Portal.

  2. En el menú de Azure Portal o en la página principal, seleccione Crear un recurso.

  3. En la página Nuevos, busque y seleccione Azure Cosmos DB.

  4. En la página ¿Qué API resulta más adecuada para la carga de trabajo?, seleccione la opción Crear en la sección Azure Cosmos DB for MongoDB.

    Captura de pantalla de la página de selección de opciones de API para Azure Cosmos DB.

  5. En la página ¿Qué tipo de recurso?, seleccione la opción Crear en la sección Clúster de núcleo virtual. Para más información, consulte Información general sobre la arquitectura de núcleo virtual en Azure Cosmos DB for MongoDB.

    Captura de pantalla de la página de opciones de selección de tipo de recurso para Azure Cosmos DB for MongoDB.

  6. En la página Crear clúster de Azure Cosmos DB for MongoDB, seleccione la opción Configurar en la sección Nivel de clúster.

    Captura de pantalla de la opción de configuración del clúster para un nuevo clúster de Azure Cosmos DB for MongoDB.

  7. En la página Escala, deje las opciones establecidas en sus valores predeterminados:

    Configuración Valor
    Recuento de particiones 1 partición
    Nivel de clúster Nivel M30, 2 núcleos virtuales, 8 GiB de RAM
    Storage 128 GB
  8. Anule la selección de la opción Alta disponibilidad. En la sección de confirmación de alta disponibilidad (HA), seleccione Comprendo. Por último, seleccione Guardar para conservar los cambios en la configuración de clúster.

    La alta disponibilidad en la región proporciona una solución en la región en la que se transmite una copia de datos de cada partición de un clúster a su homólogo en espera ubicado en la misma región, pero en una zona de disponibilidad diferente (AZ). La alta disponibilidad usa la replicación sincrónica con cero pérdida de datos y detección automática de errores y conmutación por error, a la vez que conserva la cadena de conexión intacta después de la conmutación por error. Es posible que la alta disponibilidad esté habilitada en el clúster principal para una capa adicional de protección frente a errores.

    Captura de pantalla de las opciones de nivel de clúster y escala de un clúster.

  9. De nuevo en la página del clúster, escriba la siguiente información:

    Configuración valor Descripción
    Subscription Nombre de suscripción Seleccione la suscripción de Azure que quiera usar para este clúster de Azure Cosmos DB for MongoDB y su clúster de réplica.
    Resource group Definición de un nombre de grupo de recursos Seleccione un grupo de recursos o seleccione Crear nuevo y escriba un nombre único para el grupo de recursos nuevo.
    Nombre del clúster Un nombre único global Escriba un nombre para identificar su clúster de Azure Cosmos DB for MongoDB. El nombre se usará como parte de un nombre de dominio completo (FQDN) con el sufijo mongodbcluster.cosmos.azure.com, por lo que el nombre debe ser único a nivel global. El nombre solo puede contener letras minúsculas, números y el carácter de guion (-). El nombre también debe tener entre 3 y 40 caracteres de longitud.
    Location Región más cercana a los usuarios Seleccione una ubicación geográfica para hospedar el clúster de Azure Cosmos DB for MongoDB con funcionalidades de lectura y escritura, el clúster principal. Use la ubicación más cercana a los usuarios para que puedan acceder de la forma más rápida posible a los datos.
    Versión de MongoDB Versión de MongoDB para ejecutarse en el clúster Este valor se establece en un valor predeterminado de la versión más reciente de MongoDB disponible.
    Nombre de usuario administrador Proporcione un nombre de usuario para acceder al clúster Este usuario se crea en el clúster como administrador de usuarios.
    Contraseña Use una contraseña única para emparejar con el nombre de usuario La contraseña debe tener al menos 8 caracteres y, como máximo, 128 caracteres.

    Captura de pantalla de varias opciones de configuración para un clúster.

  10. Seleccione Siguiente: Distribución global.

  11. En la pestaña Distribución global, seleccione Habilitar para Réplica de lectura en otra región para crear una réplica de lectura de clúster como parte de este nuevo aprovisionamiento de clúster principal.

  12. En el campo Nombre de réplica de lectura, escriba un nombre para la réplica de lectura del clúster. Debe ser un nombre de clúster único global.

  13. Seleccione un valor de la lista desplegable Región de réplica de lectura.

    Recorte de pantalla de la pestaña de distribución global en el aprovisionamiento de clústeres.

  14. Seleccione Siguiente: Redes.

  15. En la pestaña Redes, seleccione Agregar la dirección IP actual del cliente para crear una regla de firewall con la IP pública del equipo, según la percibe el sistema de Azure.

    Captura de pantalla de la configuración de red de un clúster.

Compruebe la dirección IP antes de guardar esta configuración. En algunos casos, la dirección IP observada por Azure Portal difiere de la dirección IP utilizada para acceder a Internet y a los servicios de Azure. Así, puede que necesite cambiar las direcciones IP inicial y final para que la regla funcione según lo previsto. Use un motor de búsqueda u otra herramienta en línea para comprobar su propia dirección IP. Por ejemplo, busque ¿cuál es mi IP?.

Captura de pantalla de un resultado de búsqueda web para la dirección IP pública del host actual.

También puede agregar una regla de firewall 0.0.0.0 - 255.255.255.255 para permitir que no solo su IP, sino todo Internet acceda al clúster. En esta situación, los clientes todavía deben iniciar sesión con el nombre de usuario y la contraseña correctos para usar el clúster. No obstante, se recomienda permitir el acceso global solo durante breves períodos y solo para bases de datos que no sean de producción.

  1. Seleccione Revisar + crear.

  2. Revise la configuración proporcionada y, a continuación, seleccione Crear. La operación de creación del clúster tarda unos minutos. Antes de avanzar, espere a que la página del portal muestre Se completó la implementación.

  3. Seleccione Ir al recurso para ir a la página del clúster de Azure Cosmos DB for MongoDB.

    Captura de pantalla de la página de implementación de un clúster.

Conexión al clúster principal e ingesta de datos

Obtenga la cadena de conexión que necesita para conectarse al clúster principal (lectura y escritura) en Azure Portal.

  1. En la página del clúster principal del núcleo virtual de Azure Cosmos DB for MongoDB, seleccione la opción de menú de navegación Cadenas de conexión en Configuración.

    Recorte de pantalla de la página cadenas de conexión en las propiedades del clúster.

  2. Copie el valor del campo Self (siempre este clúster).

  3. En la línea de comandos, use el shell de MongoDB para conectarse al clúster principal mediante la cadena de conexión.

mongosh "mongodb+srv://<user>@<primary_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

Ingerir datos

Cree un archivo de script my_script.js para ejecutarlo desde el shell de MongoDB.

let dogDocs = [
  {
    name: "pooch",
    breed: "poodle",
    weight: "6 lbs"
  },
  {
    name: "mutt",
    breed: "bulldog",
    weight: "10 lbs"
  }
];

let catDocs = [
  {
    name: "minni", 
    breed: "persian",
    color: "white"
  },
  {
    name: "tinkle",
    breed: "bombay",
    color: "black"
  }
];

let dogIndex = { name : 1 };
let catIndex = { name : 1 };

let collInfoObjs = [ 
  { coll: "dogs", data: dogDocs, index: dogIndex }, 
  { coll: "cats", data: catDocs, index: catIndex } 
];

for (obj of collInfoObjs) {
    db[obj.coll].insertMany(obj.data);
    db[obj.coll].createIndex(obj.index);
}

Este archivo de script crea dos colecciones e inserta documentos con datos en esas colecciones. Guarde el archivo my_script.js en una carpeta accesible para la sesión de shell de MongoDB.

Ejecute el script desde el shell de MongoDB conectado al clúster de MongoDB principal.

load(my_script.js);

En el shell de MongoDB conectado al clúster de MongoDB principal, lea los datos de la base de datos.

db.dogs.find();
db.cats.find();

Habilitación del acceso al clúster de réplica

Importante

Los clústeres de réplica siempre se crean con el acceso a redes deshabilitado. Debe agregar reglas de firewall o crear puntos de conexión privados en el clúster de réplica una vez creado para habilitar las operaciones de lectura.

  1. En la página del clúster principal del núcleo virtual de Azure Cosmos DB for MongoDB, seleccione la página Distribución global en Configuración.

    Recorte de pantalla de la página de distribución global en las propiedades del clúster principal.

  2. Seleccione Nombre de réplica de clúster en el campo Réplica de lectura para abrir las propiedades de réplica de clúster de lectura en Azure Portal.

  3. En la página del clúster de réplica de núcleo virtual de MongoDB, en Configuración, seleccione Redes.

  4. En la página Redes, seleccione Agregar la dirección IP actual del cliente para crear una regla de firewall con la IP pública del equipo, según la percibe el sistema de Azure.

    Recorte de pantalla de la página de redes en el clúster de réplica de lectura.

    Compruebe la dirección IP antes de guardar esta configuración. En algunos casos, la dirección IP observada por Azure Portal difiere de la dirección IP utilizada para acceder a Internet y a los servicios de Azure. También puede agregar una regla de firewall 0.0.0.0 - 255.255.255.255 para permitir que no solo su IP, sino todo Internet acceda al clúster. En esta situación, los clientes todavía deben iniciar sesión con el nombre de usuario y la contraseña correctos para usar el clúster.

  5. Seleccione Guardar en la barra de herramientas para guardar la configuración. La configuración de red actualizada puede tardar unos minutos en ser efectiva.

Conexión al clúster de réplica de lectura en otra región y lectura de datos

Obtenga la cadena de conexión de la réplica de clúster de lectura en otra región.

  1. En la barra lateral del clúster de réplica, en Administración de clústeres, seleccione Cadenas de conexión.

  2. Copie el valor del campo Cadena de conexión.

    Importante

    La cadena de conexión del clúster de réplica de lectura contiene el nombre de clúster de réplica único que seleccionó durante la creación de la réplica. Los valores de nombre de usuario y contraseña del clúster de réplica de lectura siempre son los mismos que los de su clúster principal.

  3. En la línea de comandos, use el shell de MongDB para conectarse al clúster de réplica de lectura mediante su cadena de conexión.

    mongosh "mongodb+srv://<user>@<cluster_replica_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

Lectura de datos del clúster de réplica

En el shell de MongoDB conectado al clúster de réplica, lea los datos de la base de datos.

db.dogs.find();
db.cats.find();

Promoción del clúster de réplica

Para promover una réplica de lectura de clúster a un clúster de lectura y escritura, siga estos pasos:

  1. Seleccione el clúster de réplica de lectura en el portal.

  2. En la barra lateral del clúster, en Administración de clústeres, seleccione distribución global.

  3. En la página Distribución global, seleccione Promover en la barra de herramientas para iniciar la promoción de réplica de lectura al clúster de lectura y escritura.

    Recorte de pantalla de la página de distribución global del clúster de réplica de lectura con el botón Promover.

  4. En la ventana emergente Promover clúster, confirme que comprende cómo funciona la promoción de réplica y seleccione Promover. La promoción de réplica puede tardar unos minutos en completarse.

    Recorte de pantalla de la página de distribución global del clúster de réplica de lectura con la ventana emergente de confirmación de promoción.

Escritura en la réplica de clúster promocionada

Una vez completada la promoción de la réplica, la réplica promocionada está disponible para escrituras y el clúster principal anterior está establecido en de solo lectura.

Use el shell de MongDB en la línea de comandos para conectarse al clúster de réplica promocionado mediante su cadena de conexión.

mongosh "mongodb+srv://<user>@<promoted_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

En la sesión de shell de MongoDB, realice una operación de escritura.

db.createCollection('foxes')

Use el shell de MongDB en la línea de comandos para conectarse al nuevo clúster de réplica (antiguo clúster principal) mediante su cadena de conexión. Puede usar la cadena de conexión automática o la cadena de conexión global de lectura y escritura.

mongosh "mongodb+srv://<user>@<new_replica_cluster_name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"

En el shell de MongoDB, confirme que las escrituras ahora están deshabilitadas en la nueva réplica (antiguo clúster principal).

db.createCollection('bears')