Realocar uma conta do Azure Cosmos DB para NoSQL para outra região
Há vários motivos pelos quais talvez você queira mover seus recursos existentes do Azure de uma região para outra. Talvez você queira:
- Aproveitar uma nova região do Azure.
- Implantar recursos ou serviços disponíveis apenas em regiões específicas.
- Atender aos requisitos internos de política e governança.
- Alinhar-se com fusões e aquisições da empresa
- Atender aos requisitos de planejamento de capacidade.
Este artigo descreve como fazer uma dentre as seguintes ações:
- Mover uma região onde os dados são replicados no Azure Cosmos DB.
- Migrar metadados e dados de uma conta (Azure Resource Manager) de uma região para outra.
Pré-requisitos
Um registro de aplicativo precisa ser criado com permissão delegada para a instância do grupo de recursos de origem e destino e "permissão de API" para "User.ReadBasic.All".
A API do Cosmos DB selecionada precisa permanecer a mesma de origem para destino. Este documento usa a API do BD SQL.
Os nomes de conta são limitados a 44 caracteres, todos em minúsculas.
Quando você adiciona ou remove locais de uma conta do Azure Cosmos, não pode modificar outras propriedades simultaneamente.
Identifique todos os recursos dependentes do Cosmos DB.
Tempo de inatividade
Considerações para Pontos de Extremidade de Serviço
Os pontos de extremidade de serviço de rede virtual do Azure Cosmos DB restringem o acesso a uma rede virtual especificada. Os pontos de extremidade também podem restringir o acesso a uma lista de intervalos de endereços IPv4 (protocolo da Internet versão 4). Qualquer usuário que se conecte aos Hubs de Eventos de fora dessas fontes tem acesso negado. Se os pontos de extremidade de serviço foram configurados na região de origem do recurso dos Hubs de Eventos, o mesmo precisaria ser feito no destino um.
Para uma recriação bem-sucedida do Azure Cosmos DB para a região de destino, a VNet e a Sub-rede devem ser criadas com antecedência. Caso a movimentação desses dois recursos esteja sendo realizada com a ferramenta do Azure Resource Mover, os pontos de extremidade de serviço não serão configurados automaticamente. Portanto, eles precisam ser configurados manualmente, o que pode ser feito por meio do portal do Azure, da CLI do Azure ou do Azure PowerShell.
Reimplantar sem dados
Para casos em que a instância do Cosmos DB precisa ser realocada sozinha sem a configuração e os dados do cliente, a própria instância pode ser criada usando Microsoft.DocumentDB databaseAccounts
Reimplantar com dados
O Azure Cosmos DB dá suporte nativo à replicação de dados, portanto, mover dados de uma região para outra é bem simples. Você pode fazer isso usando o portal do Azure, o Azure PowerShell ou o CLI do Azure. Isso envolve as seguintes etapas:
Adicionar uma nova região à conta.
Para adicionar uma nova região a uma conta do Azure Cosmos DB, consulte Adicionar/remover regiões de uma conta do Azure Cosmos DB.
Executar um failover manual para a nova região.
Quando a região que está sendo removida for atualmente a região de gravação da conta, você precisará iniciar um failover para a nova região adicionada na etapa anterior. Essa é uma operação sem tempo de inatividade. Se estiver movendo uma região de leitura para uma conta de várias regiões, você pode ignorar esta etapa.
Para iniciar um fallover, consulte Executar um failover manual em uma conta do Azure Cosmos DB.
Remova a região original.
Para remover uma região de uma conta do Azure Cosmos DB, consulte Adicionar/remover regiões de sua conta do Azure Cosmos DB.
Observação
Se você executar uma operação de failover ou adicionar/remover uma nova região enquanto uma operação de dimensionamento de taxa de transferência assíncrona estiver em andamento, a operação de expansão de taxa de transferência será pausada. Ela será retomada automaticamente quando a operação de failover ou adicionar/remover região for concluída.
Reimplantar metadados da conta do Azure Cosmos DB
O Azure Cosmos DB não dá suporte nativo à migração dos metadados de conta de uma região para outra. Para migrar os metadados da conta e os dados do cliente de uma região para outra, você deve criar uma nova conta na região desejada e copiar os dados manualmente.
Importante
Não é necessário migrar os metadados da conta se os dados são armazenados ou migrados em uma região diferente. A região na qual os metadados da conta residem não afeta o desempenho, a segurança ou outros aspectos operacionais da conta do Azure Cosmos DB.
Uma migração com tempo de inatividade quase nulo para a API para NoSQL requer o uso do feed de alterações ou de uma ferramenta que o usa.
As etapas a seguir mostram como migrar uma conta do Azure Cosmos DB para a API para NoSQL, bem como os seus dados de uma região para outra:
Crie uma nova conta do Azure Cosmos DB na região desejada.
Para criar uma nova conta no portal do Azure, no PowerShell ou no CLI do Azure, consulte Criar uma conta do Azure Cosmos DB.
Criar um novo banco de dados e um contêiner.
Para criar um novo banco de dados e um contêiner, consulte Criar um contêiner do Azure Cosmos DB.
Migre dados usando o exemplo de migração dinâmica do Conector do Spark para Azure Cosmos DB.
Para migrar dados com tempo de inatividade quase zero, confira Migrar dados em tempo real dos Contêineres da API de SQL do Azure Cosmos DB com o Conector do Spark.
Atualizar a cadeia de conexão do aplicativo.
Com o exemplo da Migração Dinâmica de Dados ainda em execução, atualize as informações de conexão na nova implantação do seu aplicativo. Você pode recuperar os pontos de extremidade e as chaves do seu aplicativo no portal do Azure.
Redirecionar solicitações para o novo aplicativo.
Depois que o novo aplicativo estiver conectado ao Azure Cosmos DB, você poderá redirecionar as solicitações de clientes para a nova implantação.
Exclua todos os recursos de que você não precisa mais.
Agora com as solicitações completamente redirecionadas para a nova instância, você pode excluir a conta antiga do Azure Cosmos DB e interromper o exemplo da Migração Dinâmica de Dados.
Próximas etapas
Para obter mais informações e exemplos sobre como gerenciar a conta do Azure Cosmos DB, bem como bancos de dados e contêineres, leia os seguintes artigos: