Copiar trabalhos no Azure Cosmos DB (visualização)
Você pode executar a cópia 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 quiser alcançar qualquer um destes cenários:
- Copiar todos os itens de um contentor para outro.
- Altere a granularidade na qual a taxa de transferência é provisionada, de banco de dados para contêiner e vice-versa.
- Alterar a chave de partição de um contentor.
- Atualizar as chaves exclusivas de um contentor.
- Renomeie 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 que são suportados 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.
Começar agora
Para começar a usar a cópia de contêiner online para contas de API do Azure Cosmos DB para NoSQL, registre-se no sinalizador de recurso de visualização de cópia de contêiner online (NoSQL) em Visualizar Recursos no portal do Azure. Quando o registo estiver concluído, a pré-visualização fica ativa para todas as contas da API NoSQL da subscrição.
Pré-requisitos
- Habilite o backup contínuo na conta do Azure Cosmos DB de origem.
- Registe-se para Todas as versões e elimine a funcionalidade de pré-visualização do modo de alimentação de alteração na subscrição da conta de origem.
Importante
Todas as operações de gravação no contêiner de origem serão cobradas RUs duplas para preservar as versões anterior e atual das alterações nos itens no contêiner. Este aumento da taxa de RU está sujeito a alterações no futuro.
Copiar dados de um contêiner
- Crie o contêiner do Azure Cosmos DB de destino usando as configurações que você deseja usar (chave de partição, granularidade da taxa de transferência, unidades de solicitação, chave exclusiva e assim por diante).
- Crie o trabalho de cópia de contêiner.
- Monitore o progresso do trabalho de cópia.
- Depois que todos os documentos tiverem sido copiados, pare 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 destino, conforme pretendido.
Como funciona a cópia de contêiner?
- A plataforma aloca instâncias de computação do lado do servidor para a conta do Azure Cosmos DB de destino para executar os trabalhos de cópia de contêiner.
- Um único trabalho é executado em todas as instâncias a qualquer momento.
- Os trabalhos de cópia on-line utilizam todas as versões e excluem o modo de feed de alterações para copiar os dados e replicar alterações incrementais do contêiner de origem para o contêiner de destino.
- Quando o trabalho é concluído, a plataforma desaloca essas instâncias após 15 minutos de inatividade.
Você pode executar trabalhos de cópia de coleção offline para copiar dados dentro da mesma conta do Azure Cosmos DB para Mongo DB.
Copiar os dados de uma coleção
- Crie a coleção do Azure Cosmos DB de destino usando as configurações que você deseja usar (chave de partição, granularidade da taxa de transferência, unidades de solicitação, chave exclusiva e assim por diante).
- Pare as operações na coleção 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 coleção de origem ou destino, conforme pretendido.
Nota
É altamente recomendável que você pare de executar quaisquer operações na coleção de origem antes de iniciar o trabalho de cópia de coleção offline. As 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 da coleção?
- A plataforma aloca instâncias de computação do lado do servidor para a conta de destino do Azure Cosmos DB.
- 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 é executado em todas as instâncias a qualquer momento.
- As instâncias são compartilhadas por todos os trabalhos de cópia que estão sendo executados na mesma conta.
- Os trabalhos de cópia offline utilizam fluxos de alteração 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 estiverem 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 para Apache Cassandra.
Copiar os dados de uma tabela
- Crie a tabela do Azure Cosmos DB de destino usando as configurações que você deseja usar (chave de partição, granularidade de taxa de transferência, unidades de solicitação e assim por diante).
- Pare 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.
Nota
É altamente recomendável que você pare de executar quaisquer operações na tabela de origem antes de iniciar o trabalho de cópia da tabela offline. As 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 de destino do Azure Cosmos DB.
- 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 é executado em todas as instâncias a qualquer momento.
- As instâncias são compartilhadas por todos os trabalhos de cópia que estão sendo executados na mesma conta.
- Os trabalhos de cópia offline utilizam o feed Change 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 estiverem 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 de taxa de transferência do contêiner de origem ou do banco de dados.
A configuração de taxa de transferência do contêiner ou do banco de dados de destino.
Gorjeta
Defina a taxa de transferência do contêiner de destino para 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 à conta do Azure Cosmos DB para executar a transferência de dados.
Importante
O SKU padrão oferece duas instâncias de 4 vCPU e 16 GB do lado do servidor por conta.
Limitações
Pré-visualizar critérios de elegibilidade
Os trabalhos de cópia de contêiner não funcionam com contas que têm os seguintes recursos habilitados. Desative esses recursos antes de executar trabalhos de cópia de contêiner:
Configurações de conta
A configuração TTL (Time to Live) 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.
FAQs
Existe 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 acordo de nível de serviço (SLA) para o tempo que leva para os trabalhos serem concluídos.
Posso criar vários trabalhos de cópia de contêiner em uma conta?
Sim, você pode criar vários trabalhos dentro da mesma conta. Os trabalhos correm consecutivamente. Você pode listar todos os trabalhos criados em uma conta e monitorar seu progresso.
Posso copiar um banco de dados inteiro na conta do Azure Cosmos DB?
Você deve 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 de 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 mudar no cenário raro de uma interrupção de região ou devido a failover manual. Nesse cenário, trabalhos de cópia de contêiner incompletos que foram criados dentro da conta falham. Você precisaria recriar esses empregos fracassados. Em seguida, os trabalhos recriados são executados na nova região de gravação (atual).
Regiões suportadas
Atualmente, a cópia de contêiner é suportada nas seguintes regiões:
Américas | Europa e África | Ásia-Pacífico |
---|---|---|
Sul do Brasil | França Central | Austrália Central |
Canadá Central | Sul de França | Austrália Central 2 |
Leste do Canadá | Norte da Alemanha | Leste da Austrália |
E.U.A. Central | Alemanha Centro-Oeste | Índia Central |
E.U.A. Central - EUAP | Europa do Norte | Leste do Japão |
E.U.A. Leste | Leste da Noruega | Coreia do Sul Central |
E.U.A. Leste 2 | Oeste da Noruega | Sudeste Asiático |
E.U.A. Leste 2 - EUAP | Norte da Suíça | E.A.U. Central |
E.U.A. Centro-Norte | Oeste da Suíça | Oeste da Índia |
E.U.A. Centro-Sul | Sul do Reino Unido | Ásia Leste |
E.U.A. Centro-Oeste | Oeste do Reino Unido | Malásia Sul |
E.U.A. Oeste | Europa Ocidental | Oeste do Japão |
E.U.A. Oeste 2 | Israel Central | Austrália Sudeste |
Não suportado | Norte da África do Sul | Não suportado |
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 certifique-se 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 está 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 autenticação. Se a autorização local estiver desativada, a criação de 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.
Este erro pode ocorrer devido a problemas internos do servidor. Para resolver esse problema, contate o Suporte da Microsoft abrindo uma Nova Solicitação de Suporte no portal do Azure. Em Tipo de problema, selecione Migração de dados. Em Subtipo de problema, selecione Cópia de contêiner intra-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óximos passos
- Saiba como criar, monitorar e gerenciar trabalhos de cópia de contêiner na conta do Azure Cosmos DB usando comandos da CLI.