Copiar trabalhos no Azure Cosmos DB (versão prévia)
Você pode executar cópias de dados no Azure Cosmos DB usando trabalhos de cópia de contêiner.
Talvez seja necessário copiar dados da sua conta do Azure Cosmos DB se você quiser atingir qualquer um desses cenários:
- Copiar todos os itens de um contêiner para outro.
- Alterar a granularidade na qual a taxa de transferência é provisionada: do banco de dados até o contêiner e vice-versa.
- Alterar a chave de partição de um contêiner.
- Atualizar as chaves exclusivas de um contêiner.
- Renomear um contêiner ou banco de dados.
- Altere o modo de capacidade de uma conta de sem servidor para provisionada ou vice-versa.
- Adote novos recursos com suporte apenas para novos contêineres, por exemplo , Chaves de partição hierárquicas.
Os trabalhos de cópia podem ser criados e gerenciados usando comandos da CLI do Azure.
Introdução
Para começar a usar a cópia de contêiner online para contas do API do Azure Cosmos DB for NoSQL, registre-se no sinalizador de recurso de visualização Cópia de contêiner online (NoSQL) em Versão prévia do recurso no portal do Azure. Quando o registro estiver concluído, a pré-visualização entrará em vigor em todas as contas da API para NoSQL na assinatura.
Pré-requisitos
- Habilite o backup contínuo na conta de origem do Azure Cosmos DB.
- Registre-se para Todas as versões e exclua a versão prévia do recurso do modo de alteração de feed na assinatura da conta de origem.
Importante
Todas as operações de gravação no contêiner de origem serão cobradas em dobro em RUs para preservar as versões anteriores e atuais das alterações nos itens no contêiner. Esse aumento na taxa de RU está sujeito a alterações no futuro.
Copie os dados de um contêiner
- Crie o contêiner de destino do Azure Cosmos DB usando as configurações que você deseja usar (chave de partição, granularidade de taxa de transferência, unidades de solicitação, chave exclusiva e assim por diante).
- Criar o trabalho de cópia de contêiner.
- Monitore o progresso do trabalho de cópia.
- Depois que todos os documentos forem copiados, interrompa as atualizações no contêiner de origem e chame a API de conclusão para marcar o trabalho como concluído.
- Retome as operações apontando adequadamente o aplicativo ou cliente para o contêiner de origem ou de destino, conforme pretendido.
Como funciona a cópia do contêiner?
- A plataforma aloca instâncias de computação do lado do servidor para a conta de destino do Azure Cosmos DB para executar os trabalhos de cópia do contêiner.
- Um único trabalho pode ser executado por vez em todas as instâncias.
- Os trabalhos de cópia online utilizam todas as versões e o modo de feed de alterações de exclusão para copiar os dados e replicar alterações incrementais do contêiner de origem para o contêiner de destino.
- Após a conclusão do trabalho, a plataforma desaloca essas instâncias após 15 minutos de inatividade.
Você pode executar trabalhos de cópia de coleta offline para copiar dados dentro da mesma conta do Azure Cosmos DB para Mongo DB.
Copiar dados de uma coleção
- Crie a coleção de destino do Azure Cosmos DB usando as configurações que deseja usar (chave de partição, granularidade de taxa de transferência, unidades de solicitação, chave exclusiva e assim por diante).
- Interrompa as operações na coleção de origem pausando as instâncias do aplicativo ou quaisquer clientes que se conectem a ele.
- Crie o trabalho de cópia.
- Monitore o progresso do trabalho de cópia e aguarde até que ele seja concluído.
- Retome as operações apontando adequadamente o aplicativo ou cliente para a coleção de origem ou destino, conforme pretendido.
Observação
Recomendamos fortemente que você pare de executar qualquer operação na coleção de origem antes de iniciar o trabalho de cópia da coleção offline. Exclusões e atualizações de itens feitas na coleção de origem depois que você inicia o trabalho de cópia podem não ser capturadas. Se você continuar a executar operações na coleção de origem enquanto o trabalho de cópia estiver em andamento, poderá ter dados duplicados ou ausentes na coleção de destino.
Como funciona a cópia de coleção?
- A plataforma aloca instâncias de computação do lado do servidor para a conta do Azure Cosmos DB de destino.
- Essas instâncias são alocadas quando um ou mais trabalhos de cópia de coleção são criados na conta.
- Os trabalhos de cópia são executados nessas instâncias.
- Um único trabalho pode ser executado por vez em todas as instâncias.
- As instâncias são compartilhadas por todos os trabalhos de cópia em execução na mesma conta.
- Os trabalhos de cópia offline utilizam fluxos de alterações para copiar os dados e replicar alterações incrementais da coleção de origem para a coleção de destino.
- A plataforma pode desalocar as instâncias se elas ficarem ociosas por mais de 15 minutos.
Você pode executar a cópia de tabela offline para copiar dados de uma tabela para outra tabela dentro da mesma conta do Azure Cosmos DB for Apache Cassandra.
Copiar dados de uma tabela
- Crie a tabela de destino do Azure Cosmos DB usando as configurações que deseja usar (chave de partição, granularidade de taxa de transferência, unidades de solicitação e assim por diante).
- Interrompa as operações na tabela de origem pausando as instâncias do aplicativo ou quaisquer clientes que se conectem a ela.
- Crie o trabalho de cópia.
- Monitore o progresso do trabalho de cópia e aguarde até que ele seja concluído.
- Retome as operações apontando adequadamente o aplicativo ou cliente para a tabela de origem ou de destino, conforme pretendido.
Observação
É altamente recomendável que você pare de executar qualquer operação na tabela de origem antes de iniciar o trabalho de cópia da tabela offline. Exclusões e atualizações de itens feitas na tabela de origem depois que você inicia o trabalho de cópia podem não ser capturadas. Se você continuar a executar operações na tabela de origem enquanto o trabalho de cópia estiver em andamento, poderá ter dados duplicados ou ausentes na tabela de destino.
Como funciona a cópia de tabela?
- A plataforma aloca instâncias de computação do lado do servidor para a conta do Azure Cosmos DB de destino.
- Essas instâncias são alocadas quando um ou mais trabalhos de cópia são criados na conta.
- Os trabalhos de cópia são executados nessas instâncias.
- Um único trabalho pode ser executado por vez em todas as instâncias.
- As instâncias são compartilhadas por todos os trabalhos de cópia em execução na mesma conta.
- Os trabalhos de cópia offline utilizam Alterar feed para copiar os dados e replicar alterações incrementais da tabela de origem para a tabela de destino.
- A plataforma pode desalocar as instâncias se elas ficarem ociosas por mais de 15 minutos.
Fatores que afetam a taxa de um trabalho de cópia
A taxa de progresso do trabalho de cópia de contêiner é determinada por estes fatores:
A configuração da taxa de transferência de contêiner ou banco de dados de origem.
A configuração da taxa de transferência de contêiner ou banco de dados de destino.
Dica
Defina a taxa de transferência do contêiner de destino como pelo menos duas vezes a taxa de transferência do contêiner de origem.
Instâncias de computação do lado do servidor que são alocadas para a conta do Azure Cosmos DB para realizar a transferência de dados.
Importante
O SKU padrão oferece duas instâncias do lado do servidor de 4 vCPU e 16 GB por conta.
Limitações
Critérios de qualificação de versão prévia
Os trabalhos de cópia de contêiner não funcionam com contas que têm os seguintes recursos habilitados. Desabilite esses recursos antes de executar trabalhos de cópia de contêiner:
Configurações de conta
A configuração de TTL (vida útil) não é ajustada no contêiner de destino. Como resultado, se um documento não tiver expirado no contêiner de origem, ele iniciará sua contagem regressiva novamente no contêiner de destino.
Perguntas Frequentes
Há um contrato de nível de serviço para trabalhos de cópia de contêiner?
Atualmente, há suporte para trabalhos de cópia de contêiner com base no melhor esforço. Não fornecemos nenhuma garantia de SLA (contrato de nível de serviço) para o tempo necessário para que os trabalhos terminem.
Posso criar vários trabalhos de cópia de contêiner em uma conta?
Sim, é possível criar vários trabalhos na mesma conta. Os trabalhos são executados consecutivamente. Você pode listar todos os trabalhos criados em uma conta e monitorar o progresso deles.
Posso copiar um banco de dados inteiro dentro da conta do Azure Cosmos DB?
Você precisa criar um trabalho para cada contêiner no banco de dados.
Tenho uma conta do Azure Cosmos DB com várias regiões. Em qual região o trabalho de cópia de contêiner será executado?
O trabalho de cópia do contêiner é executado na região de gravação. Em uma conta configurada com gravações de várias regiões, o trabalho é executado em uma das regiões na lista de regiões de gravação.
O que acontece com os trabalhos de cópia de contêiner quando a região de gravação da conta é alterada?
A região de gravação da conta pode ser alterada no cenário raro de uma interrupção de região ou devido ao failover manual. Nesse cenário, os trabalhos de cópia de contêiner incompletos criados na conta falham. É necessário recriá-los. Os trabalhos recriados são executados na nova região de gravação (atual).
Regiões com suporte
Atualmente, a cópia de contêiner é compatível com as seguintes regiões:
Américas | Europa e África | Pacífico Asiático |
---|---|---|
Brazil South | França Central | Austrália Central |
Canadá Central | Sul da França | Austrália Central 2 |
Leste do Canadá | Norte da Alemanha | Leste da Austrália |
Centro dos EUA | Centro-Oeste da Alemanha | Índia Central |
EUA Central EUAP | Norte da Europa | Leste do Japão |
Leste dos EUA | Leste da Noruega | Coreia Central |
Leste dos EUA 2 | Oeste da Noruega | Sudeste Asiático |
Leste dos EUA 2 EUAP | Norte da Suíça | EAU Central |
Centro-Norte dos EUA | Oeste da Suíça | Oeste da Índia |
Centro-Sul dos Estados Unidos | Sul do Reino Unido | Leste da Ásia |
Centro-Oeste dos EUA | Oeste do Reino Unido | Sul da Malásia |
Oeste dos EUA | Europa Ocidental | Oeste do Japão |
Oeste dos EUA 2 | Israel Central | Australia Southeast |
Sem suporte | Norte da África do Sul | Sem suporte |
Problemas conhecidos e comuns
Erro ─ O recurso do proprietário não existe.
Se a criação do trabalho falhar e exibir o erro O recurso proprietário não existe (código de erro 404), o contêiner de destino ainda não foi criado ou o nome do contêiner usado para criar o trabalho não corresponde a um nome de contêiner real.
Certifique-se de que o contêiner de destino seja criado antes de executar o trabalho e de que o nome do contêiner no trabalho corresponda a um nome de contêiner 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\"]
Erro – a solicitação não é autorizada.
Se a solicitação falhar e exibir o erro Não autorizado (código de erro 401), a autorização local poderá ser desabilitada.
Os trabalhos de cópia de contêiner usam chaves primárias para autenticar. Se a autorização local estiver desabilitada, a criação do trabalho falhará. A autorização local deve ser habilitada para que os trabalhos de cópia de contêiner funcionem.
"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."
Erro – erro ao obter recursos para o trabalho.
Esse erro pode ocorrer devido a problemas internos do servidor. Para resolver esse problema, entre em contato com o suporte da Microsoft abrindo uma Nova Solicitação de Suporte no portal do Azure. Para Tipo de problema, selecione Migração de Dados. Para Subtipo de problema, selecione Cópia de contêiner dentro da conta.
"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
Próximas etapas
- Aprenda como criar, monitorar e gerenciar trabalhos de cópia de contêiner em uma conta do Azure Cosmos DB usando comandos da CLI.