Copia de trabajos en Azure Cosmos DB (versión preliminar)

Puede realizar la copia de datos en Azure Cosmos DB mediante trabajos de copia de contenedor.

Es posible que tenga que copiar datos de la cuenta de Azure Cosmos DB si desea lograr cualquiera de estos escenarios:

Los trabajos de copia se pueden crear y administrar mediante comandos de la CLI de Azure.

Introducción

Para empezar a trabajar con la copia de contenedor en línea para cuentas de API de Azure Cosmos DB for NoSQL, regístrese para la Copia de contenedor en línea (NoSQL) marca de característica en vista previa características en versión preliminar en Azure Portal. Una vez completado el registro, la versión preliminar es efectiva para todas las cuentas de API de NoSQL de la suscripción.

Requisitos previos

  1. Habilite la copia de seguridad continua en la cuenta de Azure Cosmos DB de origen.
  2. Regístrese para Todas las versiones y elimine el modo de fuente de cambios característica en vista previa en la suscripción de la cuenta de origen.

Importante

Todas las operaciones de escritura en el contenedor de origen se cobrarán doble RU para conservar las versiones anteriores y actuales de los cambios en los elementos del contenedor. Este aumento del cargo de RU está sujeto a cambios en el futuro.

Copia de los datos de un contenedor

  1. Cree el contenedor de Azure Cosmos DB de destino mediante la configuración que desea usar (clave de partición, granularidad del rendimiento, unidades de solicitud, clave única, etc.).
  2. Cree el trabajo de copia del contenedor.
  3. Supervisar el progreso del trabajo de copia.
  4. Una vez copiados todos los documentos, detenga las actualizaciones en el contenedor de origen y, a continuación, llame a la API de finalización para marcar el trabajo como completado.
  5. Reanude las operaciones apuntando adecuadamente la aplicación o el cliente al contenedor de origen o de destino según lo previsto.

¿Cómo funciona la copia del contenedor?

  1. La plataforma asigna instancias de proceso del lado servidor para la cuenta de Azure Cosmos DB de destino para ejecutar los trabajos de copia del contenedor.
  2. En cualquier momento, se ejecuta un único trabajo en todas las instancias.
  3. Los trabajos de copia en línea usan todas las versiones y eliminan el modo de fuente de cambios para copiar los datos y replicar los cambios incrementales del contenedor de origen en el contenedor de destino.
  4. Una vez completado el trabajo, la plataforma desasigna estas instancias después de 15 minutos de inactividad.

Puede realizar trabajos de copia de recopilación sin conexión para copiar datos dentro de la misma cuenta de Azure Cosmos DB para Mongo DB.

Copiar los datos de una colección

  1. Cree la colección de Azure Cosmos DB de destino mediante la configuración que desea usar (clave de partición, granularidad de rendimiento, unidades de solicitud, clave única, etc.).
  2. Detenga las operaciones en la colección de origen pausando las instancias de la aplicación o los clientes que se conectan a ella.
  3. Crear el trabajo de copia.
  4. Supervisar el progreso del trabajo de copia y esperar hasta que se complete.
  5. Reanude las operaciones apuntando adecuadamente la aplicación o el cliente a la colección de origen o de destino según lo previsto.

Nota:

Se recomienda encarecidamente dejar de realizar cualquier operación en la colección de origen antes de comenzar el trabajo de copia de recopilación sin conexión. Es posible que no se capturen las eliminaciones y actualizaciones de elementos que se realizan en la colección de origen después de iniciar el trabajo de copia. Si sigue realizando operaciones en la colección de origen mientras el trabajo de copia está en curso, es posible que tenga datos duplicados o que falten en la colección de destino.

¿Cómo funciona la copia de la colección?

  1. La plataforma asigna instancias de proceso del servidor para la cuenta de Azure Cosmos DB de destino.
  2. Estas instancias se asignan cuando se crean uno o varios trabajos de copia de recopilación dentro de la cuenta.
  3. Los trabajos de copia se ejecutan en estas instancias.
  4. En cualquier momento, se ejecuta un único trabajo en todas las instancias.
  5. Todas las instancias se comparten en todos los trabajos de copia que se ejecutan dentro de la misma cuenta.
  6. Los trabajos de copia sin conexión usan Secuencias de cambio para copiar los datos y replicar los cambios incrementales de la colección de origen en la colección de destino.
  7. La plataforma podría desasignar las instancias si están inactivas durante más de 15 minutos.

Puede realizar una copia de tabla sin conexión para copiar datos de una tabla en otra tabla dentro de la misma cuenta de Azure Cosmos DB for Apache Cassandra.

Copia de los datos de una tabla

  1. Cree la tabla de Azure Cosmos DB de destino mediante la configuración que desea usar (clave de partición, granularidad de rendimiento, unidades de solicitud, etc.).
  2. Detenga las operaciones en la tabla de origen pausando las instancias de aplicación o los clientes que se conectan a ella.
  3. Crear el trabajo de copia.
  4. Supervisar el progreso del trabajo de copia y esperar hasta que se complete.
  5. Reanude las operaciones apuntando adecuadamente la aplicación o el cliente a la tabla de origen o destino según lo previsto.

Nota:

Se recomienda encarecidamente dejar de realizar cualquier operación en la tabla de origen antes de comenzar el trabajo de copia de la tabla sin conexión. Es posible que no se capturen las eliminaciones y actualizaciones de elementos que se realizan en la tabla de origen después de iniciar el trabajo de copia. Si sigue realizando operaciones en la tabla de origen mientras el trabajo de copia está en curso, es posible que tenga datos duplicados o que falten en la tabla de destino.

¿Cómo funciona la copia de tablas?

  1. La plataforma asigna instancias de proceso del servidor para la cuenta de Azure Cosmos DB de destino.
  2. Estas instancias se asignan cuando se crean uno o varios trabajos de copia dentro de la cuenta.
  3. Los trabajos de copia se ejecutan en estas instancias.
  4. En cualquier momento, se ejecuta un único trabajo en todas las instancias.
  5. Todas las instancias se comparten en todos los trabajos de copia que se ejecutan dentro de la misma cuenta.
  6. Los trabajos de copia sin conexión usan Fuente de cambios para copiar los datos y replicar los cambios incrementales de la tabla de origen en la tabla de destino.
  7. La plataforma podría desasignar las instancias si están inactivas durante más de 15 minutos.

Factores que afectan a la tasa de un trabajo de copia

La tasa de progreso del trabajo de copia de contenedor viene determinada por estos factores:

  • Configuración de rendimiento del contenedor o la base de datos de origen.

  • Configuración de rendimiento de contenedor o base de datos de destino.

    Sugerencia

    Establezca el rendimiento del contenedor de destino en al menos dos veces el rendimiento del contenedor de origen.

  • Instancias de proceso del servidor asignadas a la cuenta de Azure Cosmos DB para realizar la transferencia de datos.

    Importante

    La SKU predeterminada ofrece dos instancias del lado servidor de 4 vCPU de 16 GB por cuenta.

Limitaciones

Criterios de elegibilidad para la versión preliminar

Los trabajos de copia de contenedor no funcionan con cuentas con las siguientes capacidades habilitadas. Deshabilite estas características antes de ejecutar trabajos de copia de contenedor:

Configuraciones de cuenta

La configuración del tiempo de vida (TTL) no se ajusta en el contenedor de destino. Como resultado, si un documento no ha expirado en el contenedor de origen, iniciará su cuenta atrás de nuevo en el contenedor de destino.

Preguntas más frecuentes

¿Hay un contrato de nivel de servicio para los trabajos de copia de contenedor?

Actualmente, los trabajos de copia de contenedor se admiten en la medida de lo posible. No proporcionamos garantías de contrato de nivel de servicio (SLA) durante el tiempo que se tarda en finalizar los trabajos.

¿Puedo crear varios trabajos de copia de contenedor dentro de una cuenta?

Sí, puede crear varios trabajos dentro de la misma cuenta. Los trabajos se ejecutan de forma consecutiva. Puede enumerar todos los trabajos creados dentro de una cuenta y supervisar su progreso.

¿Puedo copiar una base de datos completa dentro de la cuenta de Azure Cosmos DB?

Tiene que crear un trabajo para cada contenedor de la base de datos.

Tengo una cuenta de Azure Cosmos DB con varias regiones. ¿En qué región se ejecutará el trabajo de copia del contenedor?

El trabajo de copia de contenedor se ejecuta en la región de escritura. En una cuenta configurada con escrituras en varias regiones, el trabajo se ejecuta en una de las regiones de la lista de regiones de escritura.

¿Qué ocurre con los trabajos de copia del contenedor cuando cambia la región de escritura de la cuenta?

La región de escritura de la cuenta puede cambiar en el escenario poco frecuente de una interrupción de servicio de la región o debido a la conmutación por error manual. En este escenario, se producirá un error en los trabajos de copia de contenedores que no estén completos y se hayan creado en la cuenta. Tendría que volver a crear estos trabajos erróneos. Los trabajos recreados se ejecutarían en la nueva región de escritura (actual).

Regiones admitidas

Actualmente, la copia de contenedor solo se admite en las siguientes regiones:

América Europa y África Asia Pacífico
Sur de Brasil Centro de Francia Centro de Australia
Centro de Canadá Sur de Francia Centro de Australia 2
Este de Canadá Norte de Alemania Este de Australia
Centro de EE. UU. Centro-oeste de Alemania Centro de la India
EUAP del centro de EE. UU. Norte de Europa Japón Oriental
Este de EE. UU. Este de Noruega Centro de Corea del Sur
Este de EE. UU. 2 Oeste de Noruega Sudeste de Asia
EUAP de Este de EE. UU. 2 Norte de Suiza Centro de Emiratos Árabes Unidos
Centro-Norte de EE. UU Oeste de Suiza Oeste de la India
Centro-sur de EE. UU. Sur de Reino Unido Este de Asia
Centro-Oeste de EE. UU. Oeste de Reino Unido Sur de Malasia
Oeste de EE. UU. Oeste de Europa Japón Occidental
Oeste de EE. UU. 2 Centro de Israel Sudeste de Australia
No compatible Norte de Sudáfrica No compatible

Problemas conocidos y comunes

  • Error: el recurso del propietario no existe.

    Si se produce un error en la creación del trabajo y se muestra el error El recurso propietario no existe (código de error 404), quiere decir que el contenedor de destino aún no se ha creado o que el nombre del contenedor que se usa para crear el trabajo no coincide con un nombre de contenedor real.

    Asegúrese de que el contenedor de destino se crea antes de ejecutar el trabajo y asegúrese de que el nombre del contenedor del trabajo coincide con un nombre de contenedor real.

    "code": "404",
    "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
    
  • Error: la solicitud no está autorizada.

    Si se produce un error en la solicitud y se muestra el error No autorizado (código de error 401), es posible que se deshabilite la autorización local.

    Los trabajos de copia de contenedor usan claves principales para autenticarse. Si la autorización local está deshabilitada, se produce un error en la creación del trabajo. La autorización local debe estar habilitada para que los trabajos de copia de contenedor funcionen.

    "code": "401",
    "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
    
  • Error: error al obtener recursos para el trabajo.

    Este error puede producirse debido a problemas internos del servidor. Para resolver este problema, póngase en contacto con el Soporte técnico de Microsoft abriendo una Nueva solicitud de soporte técnico desde Azure Portal. En Tipo de problema, seleccione Migración de datos. En Subtipo de problema, seleccione Copia de contenedor dentro de la cuenta.

    "code": "500"
    "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId:  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    

Pasos siguientes