Alta disponibilidade (confiabilidade) no Azure Cosmos DB para NoSQL
Este artigo descreve o suporte de alta disponibilidade (confiabilidade) no Azure Cosmos DB para NoSQL e abrange as zonas de disponibilidade, bem como a recuperação de desastres entre regiões e a continuidade de negócios.
Suporte à zona de disponibilidade
As zonas de disponibilidade são grupos fisicamente separados de datacenters dentro de cada região do Azure. Quando uma zona falha, os serviços podem fazer failover para uma das zonas restantes.
Para obter mais informações sobre zonas de disponibilidade no Azure, consulte O que são zonas de disponibilidade?.
O Azure Cosmos DB é um serviço multilocatário que gerencia todos os detalhes de nós de computação individuais de forma transparente. Você não precisa se preocupar com nenhum tipo de correção ou manutenção planejada. O Azure Cosmos DB garante SLAs para disponibilidade e latência P99 através de todas as operações de manutenção automática que o sistema executa.
O Azure Cosmos DB oferece:
Resiliência de interrupção de nó individual. O Azure Cosmos DB atenua automaticamente as interrupções de réplica garantindo pelo menos três réplicas dos seus dados em cada região do Azure para a sua conta dentro de um quórum de quatro réplicas. Essa garantia resulta em um RTO de 0 e um RPO de 0 para interrupções de nó individuais, sem exigir alterações ou configurações de aplicativos.
Resiliência de interrupção de zona. Quando você implanta uma conta do Azure Cosmos DB usando zonas de disponibilidade, o Azure Cosmos DB fornece um RTO de 0 e um RPO de 0, mesmo em uma interrupção de zona. Para obter informações sobre RTO, consulte Objetivos de recuperação.
Com as zonas de disponibilidade habilitadas, o Azure Cosmos DB para NoSQL dá suporte a uma configuração com redundância de zona.
Pré-requisitos
Suas réplicas devem ser implantadas em uma região do Azure que ofereça suporte a zonas de disponibilidade. Para ver se a sua região suporta zonas de disponibilidade, consulte a lista de regiões suportadas.
Determine se as zonas de disponibilidade agregam ou não valor suficiente à sua configuração atual em Impacto do uso de zonas de disponibilidade.
Impacto do uso de zonas de disponibilidade
O impacto das zonas de disponibilidade na alta disponibilidade do seu banco de dados Cosmos DB para NoSQL depende do nível de consistência da conta e das regiões que têm zonas de disponibilidade habilitadas. Em muitos casos, as zonas de disponibilidade não agregam valor ou agregam valor mínimo se a conta for multirregião (a menos que configurada com forte consistência).
Consulte a tabela abaixo para estimar o impacto do uso de zonas de disponibilidade na configuração da sua conta atual:
Nível de consistência da conta | Regiões com zonas de disponibilidade ativadas | Impacto do uso de zonas de disponibilidade |
---|---|---|
Assíncrono (Atraso Delimitado ou mais fraco) | Qualquer número de regiões de leitura secundária. | Fornece valor mínimo porque o SDK já fornece redirecionamentos contínuos para leituras quando uma região de leitura falha. |
Síncrono (Forte) | Duas ou mais regiões de leitura secundária | Fornece valor marginal porque o sistema pode aproveitar o quórum dinâmico caso uma região de leitura perca disponibilidade, o que permite que as gravações continuem. |
Síncrono (Forte) | Uma região de leitura secundária | Fornece maior valor porque a perda de uma região de leitura nesse cenário pode afetar a disponibilidade de gravação. |
Todos | Escrever regiões e qualquer número de regiões secundárias | Garante maior disponibilidade para operações de gravação para falhas zonais. |
Todos | Uma única região | Uma única região não pode se beneficiar do recurso de failover de várias regiões. O uso de zonas de disponibilidade protege contra a perda total de disponibilidade devido a falha zonal. |
Melhorias no SLA
Como as zonas de disponibilidade são fisicamente separadas e fornecem fonte de alimentação, rede e resfriamento distintos, os SLAs de disponibilidade (contratos de nível de serviço) são maiores (99,995%) do que as contas com uma única região (99,99%). As regiões onde as zonas de disponibilidade estão habilitadas são cobradas a 25% premium, enquanto aquelas sem zonas de disponibilidade não incorrem no premium. Além disso, o preço premium para zonas de disponibilidade é dispensado para contas configuradas com gravações em várias regiões e/ou para coleções configuradas com o modo de dimensionamento automático.
Adicionar uma região adicional à conta do Cosmos DB normalmente aumenta a conta existente em 100% (aditivamente, não multiplicativamente), embora existam pequenas variações de custo entre regiões. Para obter mais detalhes, consulte a página de preços.
Habilitar AZs, adicionar região(ões) adicional ou ativar gravações em várias regiões pode ser pensado como uma abordagem em camadas que aumenta a resiliência e a disponibilidade de uma determinada conta do Cosmos DB em cada etapa do caminho - desde 4 9 de disponibilidade para configuração de região única sem AZ, passando por 4 e metade de 9 para uma única região com AZs, até 5 9 de disponibilidade para configuração de várias regiões com a opção de gravação de várias regiões habilitada. Consulte a tabela a seguir para obter um resumo dos SLAs para cada configuração.
KPI | Gravações de região única sem zonas de disponibilidade | Gravações de região única com zonas de disponibilidade | Gravações de várias regiões e de uma única região sem zonas de disponibilidade | Gravações de várias regiões e de uma única região com zonas de disponibilidade | Gravações de várias regiões e várias regiões com ou sem zonas de disponibilidade |
---|---|---|---|---|---|
SLA de disponibilidade de gravação | 99,99% | 99.995% | 99,99% | 99.995% | 99,999% |
Ler disponibilidade SLA | 99,99% | 99.995% | 99,999% | 99,999% | 99,999% |
Falhas de zona: perda de dados | Perda de dados | Sem perda de dados | Sem perda de dados | Sem perda de dados | Sem perda de dados |
Falhas de zona: disponibilidade | Perda de disponibilidade | Sem perda de disponibilidade | Sem perda de disponibilidade | Sem perda de disponibilidade | Sem perda de disponibilidade |
Interrupção regional: perda de dados | Perda de dados | Perda de dados | Depende do nível de consistência. Para obter mais informações, consulte Compensações de consistência, disponibilidade e desempenho. | Depende do nível de consistência. Para obter mais informações, consulte Compensações de consistência, disponibilidade e desempenho. | Depende do nível de consistência. Para obter mais informações, consulte Compensações de consistência, disponibilidade e desempenho. |
Interrupção regional: disponibilidade | Perda de disponibilidade | Perda de disponibilidade | Nenhuma perda de disponibilidade para falha de região de leitura, temporária para falha de região de gravação | Nenhuma perda de disponibilidade para falha de região de leitura, temporária para falha de região de gravação | Nenhuma perda de disponibilidade de leitura, perda temporária de disponibilidade de gravação na região afetada |
Preço (1) | Não aplicável | Taxa de RU/s x 1,25 provisionada | Regiões RU/s x N provisionadas | RU/s provisionado x taxa de 1,25 x regiões N (2) | Taxa de gravação de várias regiões x N regiões |
1 Para contas sem servidor, as RUs são multiplicadas por um fator de 1,25.
2 A taxa de 1,25 aplica-se apenas a regiões nas quais você habilita zonas de disponibilidade.
Criar um recurso com zonas de disponibilidade ativadas
Você pode configurar zonas de disponibilidade somente quando adicionar uma nova região a uma conta NoSQL do Azure Cosmos DB.
Para habilitar o suporte à zona de disponibilidade, você pode usar:
Migrar para o suporte à zona de disponibilidade
Para saber como migrar sua conta do Cosmos DB para o suporte à zona de disponibilidade, consulte Migrar o Azure Cosmos DB para NoSQL para suporte à zona de disponibilidade).
Recuperação de desastres entre regiões e continuidade de negócios
A recuperação de desastres (DR) consiste na recuperação de eventos de alto impacto, como desastres naturais ou implantações com falha que resultam em tempo de inatividade e perda de dados. Independentemente da causa, a melhor solução para um desastre é um plano de DR bem definido e testado e um design de aplicativo que suporte ativamente a DR. Antes de começar a pensar em criar seu plano de recuperação de desastres, consulte Recomendações para projetar uma estratégia de recuperação de desastres.
Quando se trata de DR, a Microsoft usa o modelo de responsabilidade compartilhada. Em um modelo de responsabilidade compartilhada, a Microsoft garante que a infraestrutura de linha de base e os serviços da plataforma estejam disponíveis. Ao mesmo tempo, muitos serviços do Azure não replicam dados automaticamente ou recorrem de uma região com falha para replicação cruzada para outra região habilitada. Para esses serviços, você é responsável por configurar um plano de recuperação de desastres que funcione para sua carga de trabalho. A maioria dos serviços executados nas ofertas de plataforma como serviço (PaaS) do Azure fornecem recursos e orientação para dar suporte à DR e você pode usar recursos específicos do serviço para dar suporte à recuperação rápida para ajudar a desenvolver seu plano de DR.
Interrupções de região são interrupções que afetam todos os nós do Azure Cosmos DB em uma região do Azure, em todas as zonas de disponibilidade. Para os raros casos de interrupções de região, você pode configurar o Azure Cosmos DB para dar suporte a vários resultados de durabilidade e disponibilidade.
Durabilidade
Quando uma conta do Azure Cosmos DB é implantada em uma única região, geralmente não ocorre perda de dados. O acesso aos dados é restaurado após a recuperação dos serviços do Azure Cosmos DB na região afetada. A perda de dados pode ocorrer apenas com um desastre irrecuperável na região do Azure Cosmos DB.
Para ajudá-lo a se proteger contra a perda completa de dados que pode resultar de desastres catastróficos em uma região, o Azure Cosmos DB fornece dois modos de backup:
- Backups contínuos fazem backup de cada região a cada 100 segundos. Eles permitem que você restaure seus dados para qualquer point-in-time com granularidade de 1 segundo. Em cada região, o backup depende dos dados confirmados nessa região. Se a região tiver zonas de disponibilidade habilitadas, o backup será armazenado em contas de armazenamento com redundância de zona.
- Backups periódicos fazem backup completo de todas as partições de todos os contêineres em sua conta, sem sincronização entre partições. O intervalo mínimo de backup é de 1 hora.
Quando uma conta do Azure Cosmos DB é implantada em várias regiões, a durabilidade dos dados depende do nível de consistência que você configura na conta. A tabela a seguir detalha, para todos os níveis de consistência, o RPO de uma conta do Azure Cosmos DB implantada em pelo menos duas regiões.
Nível de consistência | RPO para interrupção de região |
---|---|
Sessão, prefixo consistente, eventual | Menos de 15 minutos |
Estagnação limitada | K e T |
Forte | 0 |
K = O número de versões (ou seja, atualizações) de um item.
T = O intervalo de tempo desde a última atualização.
Para contas de várias regiões, o valor mínimo de K e T é 100.000 operações de gravação ou 300 segundos. Esse valor define o RPO mínimo para dados quando você estiver usando obsoletos limitados.
Para obter mais informações sobre as diferenças entre os níveis de consistência, consulte Níveis de consistência no Azure Cosmos DB.
Failover gerenciado por serviço
Se sua solução exigir tempo de atividade contínuo durante interrupções de região, você poderá configurar o Azure Cosmos DB para replicar seus dados em várias regiões e fazer failover transparente para regiões operacionais quando necessário.
As contas de uma única região podem perder a acessibilidade após uma interrupção regional. Para garantir a continuidade de negócios em todos os momentos, recomendamos que você configure sua conta do Azure Cosmos DB com uma única região de gravação e pelo menos uma segunda região (de leitura) e habilite o failover gerenciado por serviço.
O failover gerenciado por serviço permite que o Azure Cosmos DB faça failover da região de gravação de uma conta de várias regiões para preservar a continuidade de negócios ao custo da perda de dados, conforme descrito anteriormente na seção Durabilidade . Os failovers regionais são detetados e tratados no cliente do Azure Cosmos DB. Eles não exigem nenhuma alteração do aplicativo. Para obter instruções sobre como habilitar várias regiões de leitura e failover gerenciado por serviço, consulte Gerenciar uma conta do Azure Cosmos DB usando o portal do Azure.
Importante
Se você tiver escolhido a configuração de gravação de região única com várias regiões de leitura, é altamente recomendável configurar as contas do Azure Cosmos DB usadas para cargas de trabalho de produção para habilitar o failover gerenciado pelo serviço. Essa configuração permite que o Azure Cosmos DB faça failover dos bancos de dados de conta para regiões disponíveis. Na ausência dessa configuração, a conta sofrerá perda de disponibilidade de gravação durante toda a duração da interrupção da região de gravação. O failover manual não terá êxito devido à falta de conectividade de região.
Aviso
Mesmo com o failover gerenciado por serviço habilitado, a interrupção parcial pode exigir intervenção manual para a equipe de serviço do Azure Cosmos DB. Nesses cenários, pode levar até 1 hora (ou mais) para que o failover entre em vigor. Para uma melhor disponibilidade de gravação durante interrupções parciais, recomendamos habilitar zonas de disponibilidade, além do failover gerenciado pelo serviço.
Várias regiões de gravação
Você pode configurar o Azure Cosmos DB para aceitar gravações em várias regiões. Essa configuração é útil para reduzir a latência de gravação em aplicativos geograficamente distribuídos.
Quando você configura uma conta do Azure Cosmos DB para várias regiões de gravação, não há suporte para consistência forte e conflitos de gravação podem surgir. Para obter mais informações sobre como resolver esses conflitos, consulte Tipos de conflito e políticas de resolução ao usar várias regiões de gravação.
Importante
Atualizar o mesmo ID de documento com freqüência (ou recriar o mesmo ID de documento com freqüência após TTL ou excluir) terá um efeito no desempenho da replicação devido ao aumento do número de conflitos gerados no sistema.
Região de resolução de conflitos
Quando uma conta do Azure Cosmos DB é configurada com gravações de várias regiões, uma das regiões atuará como árbitro em conflitos de gravação.
Práticas recomendadas para gravações em várias regiões
Aqui estão algumas práticas recomendadas a serem consideradas ao escrever em várias regiões.
Mantenha o tráfego local local
Quando você usa gravações de várias regiões, o aplicativo deve emitir tráfego de leitura e gravação originado na região local estritamente para a região local do Cosmos DB. Para um desempenho ideal, evite chamadas entre regiões.
É importante que o aplicativo minimize os conflitos, evitando os seguintes antipadrões:
Enviar a mesma operação de gravação para todas as regiões para aumentar as chances de obter um tempo de resposta rápido
Determinar aleatoriamente a região de destino para uma operação de leitura ou gravação por solicitação
Usando uma política round-robin para determinar a região de destino para uma operação de leitura ou gravação por solicitação.
Evitar a dependência do atraso de replicação
Não é possível configurar contas de gravação de várias regiões para obter uma consistência forte. A região que está sendo gravada responde imediatamente após o Azure Cosmos DB replicar os dados localmente enquanto replica os dados globalmente de forma assíncrona.
Embora seja pouco frequente, um atraso de replicação pode ocorrer em uma ou algumas partições quando você está replicando dados geograficamente. O atraso de replicação pode ocorrer devido a um erro raro no tráfego de rede ou a taxas de resolução de conflitos mais altas do que o normal.
Por exemplo, uma arquitetura na qual o aplicativo grava na Região A, mas lê da Região B, introduz uma dependência do atraso de replicação entre as duas regiões. No entanto, se o aplicativo ler e gravar na mesma região, o desempenho permanecerá constante mesmo na presença de atraso de replicação.
Avaliar o uso da consistência da sessão para operações de gravação
Na consistência da sessão, você usa o token de sessão para operações de leitura e gravação.
Para operações de leitura, o Azure Cosmos DB envia o token de sessão armazenado em cache para o servidor com a garantia de receber dados que correspondem ao token de sessão especificado (ou mais recente).
Para operações de gravação, o Azure Cosmos DB envia o token de sessão para o banco de dados com a garantia de persistir os dados somente se o servidor tiver alcançado o token de sessão fornecido. Em contas de gravação de uma única região, a região de gravação sempre tem a garantia de ter alcançado o token de sessão. No entanto, em contas de gravação de várias regiões, a região em que você escreve pode não ter alcançado as gravações emitidas para outra região. Se o cliente gravar na Região A com um token de sessão da Região B, a Região A não poderá manter os dados até alcançar as alterações feitas na Região B.
É melhor usar tokens de sessão apenas para operações de leitura e não para operações de gravação quando você estiver passando tokens de sessão entre instâncias de cliente.
Reduza as atualizações rápidas para o mesmo documento
As atualizações do servidor para resolver ou confirmar a ausência de conflitos podem colidir com gravações acionadas pelo aplicativo quando o mesmo documento é atualizado repetidamente. Atualizações repetidas em rápida sucessão para o mesmo documento experimentam latências mais altas durante a resolução de conflitos.
Embora explosões ocasionais em atualizações repetidas para o mesmo documento sejam inevitáveis, você pode considerar explorar uma arquitetura onde novos documentos são criados em vez disso, se o tráfego em estado estacionário vê atualizações rápidas para o mesmo documento durante um longo período.
Interrupções de leitura e gravação
Os clientes de contas de uma única região sofrerão perda de disponibilidade de leitura e gravação até que o serviço seja restaurado.
Contas de várias regiões experimentam comportamentos diferentes, dependendo das seguintes configurações e tipos de paralisação.
Configuração | Indisponibilidade | Impacto na disponibilidade | Impacto na durabilidade | O que fazer |
---|---|---|---|---|
Região de gravação única | Leia a interrupção da região | Todos os clientes redirecionam automaticamente as leituras para outras regiões. Não há perda de disponibilidade de leitura ou gravação para todas as configurações. A exceção é uma configuração de duas regiões com forte consistência, que perde a disponibilidade de gravação até a restauração do serviço. Ou, se você habilitar o failover gerenciado pelo serviço, o serviço marcará a região como falha e ocorrerá um failover. | Sem perda de dados. | Durante a interrupção, verifique se há unidades de solicitação (RUs) provisionadas suficientes nas regiões restantes para dar suporte ao tráfego de leitura. Quando a interrupção terminar, reajuste as RUs provisionadas conforme apropriado. |
Região de gravação única | Gravar interrupção de região | Os clientes redirecionam leituras para outras regiões. Sem failover gerenciado por serviço, os clientes experimentam perda de disponibilidade de gravação. A restauração da disponibilidade de gravação ocorre automaticamente quando a interrupção termina. Com o failover gerenciado pelo serviço, os clientes experimentam perda de disponibilidade de gravação até que o serviço gerencie um failover para uma nova região de gravação selecionada. |
Se você não selecionar o nível de consistência forte, o serviço pode não replicar alguns dados para as regiões ativas restantes. Essa replicação depende do nível de consistência selecionado. Se a região afetada sofrer perda permanente de dados, você poderá perder dados não replicados. | Durante a interrupção, certifique-se de que haja RUs provisionadas suficientes nas regiões restantes para suportar o tráfego de leitura. Não acione um failover manual durante a interrupção, porque ela não pode ser bem-sucedida. Quando a interrupção terminar, reajuste as RUs provisionadas conforme apropriado. As contas que usam a API para NoSQL também podem recuperar os dados não replicados na região com falha do seu feed de conflitos. |
Várias regiões de gravação | Qualquer interrupção regional | Há uma possibilidade de perda temporária de disponibilidade de gravação, que é análoga a uma única região de gravação com failover gerenciado por serviço. O failover da região de resolução de conflitos também pode causar uma perda de disponibilidade de gravação se um grande número de gravações conflitantes ocorrer no momento da interrupção. | Os dados atualizados recentemente na região com falha podem não estar disponíveis nas regiões ativas restantes, dependendo do nível de consistência selecionado. Se a região afetada sofrer perda permanente de dados, você poderá perder dados não replicados. | Durante a interrupção, certifique-se de que há RUs provisionadas suficientes nas regiões restantes para suportar mais tráfego. Quando a interrupção terminar, você poderá reajustar as RUs provisionadas conforme apropriado. Se possível, o Azure Cosmos DB recupera automaticamente os dados não replicados na região com falha. Essa recuperação automática usa o método de resolução de conflitos que você configura para contas que usam a API para NoSQL. Para contas que usam outras APIs, essa recuperação automática usa as últimas vitórias de gravação. |
Informações adicionais sobre interrupções na região de leitura
A região afetada é desconectada e marcada como offline. Os SDKs do Azure Cosmos DB redirecionam chamadas de leitura para a próxima região disponível na lista de regiões preferidas.
Se nenhuma das regiões na lista de regiões preferidas estiver disponível, as chamadas retornarão automaticamente para a região de gravação atual.
Nenhuma alteração é necessária no código do aplicativo para lidar com interrupções de região de leitura. Quando a região de leitura afetada está online novamente, ela é sincronizada com a região de gravação atual e fica disponível novamente para atender às solicitações de leitura depois de ter recuperado completamente.
As leituras subsequentes são redirecionadas para a região recuperada sem necessidade de alterar o código da aplicação. Durante o failover e a rejunção de uma região com falha anterior, o Azure Cosmos DB continua a honrar as garantias de consistência de leitura.
Mesmo em um evento raro e infeliz em que uma região de gravação do Azure é permanentemente irrecuperável, não há perda de dados se sua conta do Azure Cosmos DB de várias regiões estiver configurada com forte consistência. Uma conta do Azure Cosmos DB de várias regiões tem as características de durabilidade especificadas anteriormente na seção Durabilidade .
Informações adicionais sobre interrupções na região de gravação
Durante uma interrupção de região de gravação, a conta do Azure Cosmos DB promove uma região secundária para ser a nova região de gravação primária quando o failover gerenciado pelo serviço é configurado na conta do Azure Cosmos DB. O failover ocorre para outra região na ordem de prioridade de região especificada.
O failover manual não deve ser acionado e não terá êxito na presença de uma interrupção da região de origem ou de destino. O motivo é que o procedimento de failover inclui uma verificação de consistência que requer conectividade entre as regiões.
Quando a região afetada anteriormente estiver online novamente, todos os dados de gravação que não foram replicados quando a região falhou serão disponibilizados por meio do feed de conflitos. Os aplicativos podem ler o feed de conflitos, resolver os conflitos com base na lógica específica do aplicativo e gravar os dados atualizados de volta no contêiner do Azure Cosmos DB, conforme apropriado.
Depois que a região de gravação afetada anteriormente se recuperar, ela será exibida como "online" no portal do Azure e ficará disponível como uma região de leitura. Neste ponto, é seguro voltar para a região recuperada como a região de gravação usando [PowerShell, a CLI do Azure ou o portal do Azure](/azure/cosmos-db/how-to-manage-database-account#perform-manual-failover-on-an-azure-cosmos-db-account. Não há perda de dados ou disponibilidade antes, enquanto ou depois de alternar a região de gravação. Seu aplicativo continua a estar altamente disponível.
Aviso
No caso de uma interrupção de região de gravação, em que a conta do Azure Cosmos DB promove uma região secundária para ser a nova região de gravação primária por meio de failover gerenciado por serviço, a região de gravação original não será promovida de volta como a região de gravação automaticamente depois de recuperada. É sua responsabilidade voltar para a região recuperada como a região de gravação usando o PowerShell, a CLI do Azure ou o portal do Azure (uma vez seguro fazê-lo, conforme descrito acima).
Deteção, notificação e gerenciamento de interrupções
Para contas de região única, os clientes experimentam uma perda de disponibilidade de leitura e gravação durante uma interrupção de região do Azure Cosmos DB. Contas de várias regiões apresentam comportamentos diferentes, conforme descrito na tabela a seguir.
Regiões de escrita | Failover gerenciado por serviço | O que esperar | O que fazer |
---|---|---|---|
Região de gravação única | Não ativado | Se houver uma interrupção em uma região de leitura quando você não estiver usando uma consistência forte, todos os clientes redirecionarão para outras regiões. Não há perda de disponibilidade de leitura ou gravação e não há perda de dados. Quando você usa consistência forte, uma interrupção em uma região de leitura pode afetar a disponibilidade de gravação se menos de duas regiões de leitura permanecerem. Se houver uma interrupção na região de gravação, os clientes terão perda de disponibilidade de gravação. Se você não selecionou consistência forte, o serviço pode não replicar alguns dados para as regiões ativas restantes. Essa replicação depende do nível de consistência selecionado. Se a região afetada sofrer perda permanente de dados, você poderá perder dados não replicados. O Azure Cosmos DB restaura a disponibilidade de gravação quando a interrupção termina. |
Durante a interrupção, certifique-se de que haja RUs provisionadas suficientes nas regiões restantes para suportar o tráfego de leitura. Não acione um failover manual durante a interrupção, porque ela não pode ser bem-sucedida. Quando a interrupção terminar, reajuste as RUs provisionadas conforme apropriado. |
Região de gravação única | Ativado(a) | Se houver uma interrupção em uma região de leitura quando você não estiver usando uma consistência forte, todos os clientes redirecionarão para outras regiões. Não há perda de disponibilidade de leitura ou gravação e não há perda de dados. Quando você está usando consistência forte, a interrupção de uma região de leitura pode afetar a disponibilidade de gravação se menos de duas regiões de leitura permanecerem. Se houver uma interrupção na região de gravação, os clientes experimentarão perda de disponibilidade de gravação até que o Azure Cosmos DB eleja uma nova região como a nova região de gravação de acordo com suas preferências. Se você não selecionou consistência forte, o serviço pode não replicar alguns dados para as regiões ativas restantes. Essa replicação depende do nível de consistência selecionado. Se a região afetada sofrer perda permanente de dados, você poderá perder dados não replicados. |
Durante a interrupção, certifique-se de que haja RUs provisionadas suficientes nas regiões restantes para suportar o tráfego de leitura. Não acione um failover manual durante a interrupção, porque ela não pode ser bem-sucedida. Quando a interrupção terminar, você poderá mover a região de gravação de volta para a região original e reajustar as RUs provisionadas conforme apropriado. As contas que usam a API para NoSQL também podem recuperar os dados não replicados na região com falha do seu feed de conflitos. |
Várias regiões de gravação | Não aplicável | Os dados atualizados recentemente na região com falha podem não estar disponíveis nas regiões ativas restantes. Os níveis de consistência eventual, consistente e de prefixo e sessão garantem um atraso de menos de 15 minutos. A obsolescência limitada garante menos de K atualizações ou T segundos, dependendo da configuração. Se a região afetada sofrer perda permanente de dados, você poderá perder dados não replicados. | Durante a interrupção, certifique-se de que há RUs provisionadas suficientes nas regiões restantes para suportar mais tráfego. Quando a interrupção terminar, você poderá reajustar as RUs provisionadas conforme apropriado. Se possível, o Azure Cosmos DB recupera dados não replicados na região com falha. Essa recuperação usa o método de resolução de conflitos que você configura para contas que usam a API para NoSQL. Para contas que usam outras APIs, essa recuperação usa as últimas vitórias de gravação. |
Testes de alta disponibilidade
Mesmo que sua conta do Azure Cosmos DB esteja altamente disponível, seu aplicativo pode não ser projetado corretamente para permanecer altamente disponível. Para testar a alta disponibilidade completa do seu aplicativo como parte dos testes de aplicativos ou exercícios de recuperação de desastres (DR), desative temporariamente o failover gerenciado pelo serviço para a conta. Invoque o failover manual usando o PowerShell, a CLI do Azure ou o portal do Azure e monitore seu aplicativo. Depois de concluir o teste, você pode fazer failover para a região primária e restaurar o failover gerenciado pelo serviço para a conta.
Importante
Não invoque failover manual durante uma interrupção do Azure Cosmos DB na região de origem ou de destino. O failover manual requer conectividade de região para manter a consistência dos dados, portanto, não terá êxito.