Reubicación de una cuenta noSQL de Azure Cosmos DB en otra región
Hay varias razones por las que puede desear mover los recursos de Azure existentes de una región a otra. Quizá también desea:
- Aproveche las ventajas de una nueva región de Azure.
- Implemente características o servicios que solo están disponibles en regiones determinadas.
- Cumpla requisitos internos de gobernanza y directivas.
- Alineación con fusiones y adquisiciones de la empresa
- Cumpla los requisitos de planeamiento de capacidad.
En este artículo se describe cómo:
- Reubique una región en la que se replican los datos en Azure Cosmos DB.
- Migrar los metadatos y los datos de la cuenta (Azure Resource Manager) de una región a otra.
Requisitos previos
Se debe crear un registro de aplicación con permiso delegado para la instancia del grupo de recursos de origen y destino y "el permiso de API" para "User.ReadBasic.All".
La API de Cosmos DB seleccionada debe permanecer igual de origen a destino. Este documento utiliza la API de SQL DB.
Los nombres de cuenta están limitados a 44 caracteres, todo en minúsculas.
Cuando agrega o quita ubicaciones en una cuenta de Azure Cosmos, no puede modificar otras propiedades simultáneamente.
Identifique todos los recursos dependientes de Cosmos DB.
Tiempo de inactividad
Consideraciones sobre los puntos de conexión de servicio
Los puntos de conexión de servicio de red virtual para Azure Cosmos DB restringen el acceso a una red virtual especificada. También permiten restringir el acceso a una lista de intervalos de direcciones IPv4 (protocolo de Internet, versión 4). Se deniega el acceso a cualquier usuario que se conecte a Event Hubs desde fuera de esos orígenes. Si los puntos de conexión de servicio se configuraron en la región de origen del recurso de Event Hubs, tendría que hacerse lo mismo en el destino.
Para una recreación correcta de Azure Cosmos DB en la región de destino, la red virtual y la subred deben crearse de antemano. En caso de que el traslado de estos dos recursos se realice con la herramienta Azure Resource Mover, los puntos de conexión de servicio no se configurarán automáticamente. Por lo tanto, deben configurarse manualmente. Puede hacerlo a través del Azure Portal, la CLI de Azure o Azure PowerShell.
Reimplementación sin datos
En los casos en los que la instancia de Cosmos DB debe reubicarse sola sin la configuración y los datos del cliente, la propia instancia se puede crear mediante Microsoft.DocumentDB databaseAccounts
Reimplementación con datos
Azure Cosmos DB admite la replicación de datos de forma nativa, por lo que es sencillo trasladar los datos de una región a otra. Para hacer esto, puede usar Azure Portal, Azure PowerShell o la CLI de Azure. Es necesario seguir estos pasos:
Agregue una nueva región a la cuenta.
Para agregar una nueva región a una cuenta de Azure Cosmos DB, vea Incorporación o eliminación de regiones en una cuenta de Azure Cosmos DB.
Realice una conmutación por error manual en la nueva región.
Cuando la región que se va a quitar es actualmente la región de escritura de la cuenta, debe iniciar una conmutación por error en la nueva región agregada en el paso anterior. Se trata de una operación sin ningún tiempo de inactividad. Si va a mover una región de lectura en una cuenta de varias regiones, puede omitir este paso.
Para iniciar una conmutación por error, vea Realización de una conmutación por error manual en una cuenta de Azure Cosmos DB.
Quite la región original.
Para quitar una región de una cuenta de Azure Cosmos DB, vea Incorporación o eliminación de regiones en una cuenta de Azure Cosmos DB.
Nota
Si realiza una operación de conmutación por error o agrega o quita una nueva región mientras hay una operación asincrónica de escalado del rendimiento en curso, la operación de escalado vertical del rendimiento se pausa. Se reanudará automáticamente cuando se complete la operación de conmutación por error o de agregar o quitar región.
Reimplementación de los metadatos de una cuenta de Azure Cosmos DB
Azure Cosmos DB no admite de forma nativa la migración de los metadatos de la cuenta de una región a otra. Para migrar los metadatos de la cuenta y los datos del cliente de una región a otra, debe crear una cuenta en la región deseada y, a continuación, copiar los datos manualmente.
Importante
No es necesario migrar los metadatos de la cuenta si los datos se almacenan o mueven a otra región. La región en la que residen los metadatos de la cuenta no tiene ningún impacto en el rendimiento, la seguridad ni ningún otro aspecto operativo de la cuenta de Azure Cosmos DB.
Una migración casi sin tiempo de inactividad de la API para NoSQL requiere el uso de la fuente de cambios o una herramienta que la use.
En los pasos siguientes se muestra cómo migrar una cuenta de Azure Cosmos DB para la API para NoSQL y sus datos de una región a otra:
Cree una cuenta de Azure Cosmos DB en la región deseada.
Para crear una cuenta con Azure Portal, PowerShell o la CLI de Azure, vea Creación de una cuenta de Azure Cosmos DB.
Cree una base de datos y un contenedor.
Para crear una base de datos y un contenedor, vea Creación de un contenedor de Azure Cosmos DB.
Migración de datos mediante el ejemplo de migración en vivo del conector Spark de Azure Cosmos DB.
Para migrar datos con casi cero tiempo de inactividad, consulte Migración en vivo de datos de contenedores de la API de SQL de Azure Cosmos DB con el conector de Spark.
Actualice la cadena de conexión de la aplicación.
Con la muestra de Live Data Migration todavía en ejecución, actualice la información de conexión en la nueva implementación de la aplicación. Puede recuperar los puntos de conexión y las claves de la aplicación desde Azure Portal.
Redirija las solicitudes a la nueva aplicación.
Una vez que la nueva aplicación se conecta a Azure Cosmos DB, puede redirigir las solicitudes de cliente a la nueva implementación.
Elimine los recursos que ya no necesita.
Con las solicitudes ahora redirigidas por completo a la nueva instancia, puede eliminar la cuenta de Azure Cosmos DB anterior y detener la muestra de Live Data Migrator.
Pasos siguientes
Para más información y ejemplos sobre cómo administrar la cuenta de Azure Cosmos DB, así como las bases de datos y los contenedores, lea estos artículos: