Sobre a persistência de RDB

Nesta página, apresentamos uma visão geral da persistência do banco de dados Redis (RDB) para o Memorystore for Redis Cluster.

A persistência do RDB protege seus dados salvando snapshots em um armazenamento durável. É possível escolher a frequência desses snapshots selecionando um intervalo de snapshot que varia de no mínimo 1 hora a no máximo 24 horas.

Os nós com réplicas priorizam a recuperação de dados da réplica. No entanto, se as duas falharem simultaneamente, os nós serão recuperados do snapshot mais recente.

Se você escalonar verticalmente o cluster, os snapshots não vão incluir os novos fragmentos até o próximo horário programado. Se você ativar ou desativar a persistência de um cluster, talvez ele precise realizar manutenção. Para mais informações sobre como ativar e desativar a persistência de RDB, consulte Gerenciar persistência.

A persistência de RDB não gera custos extras no faturamento. Esse recurso é ideal para casos de uso em que você pode aceitar um pequeno grau de desatualização de dados após a recuperação. Como o Memorystore for Redis Cluster usa snapshots para recuperação automática, eles não estão disponíveis para restaurações manuais. Além disso, o Memorystore for Redis Cluster retém apenas o snapshot mais recente.

O Memorystore for Redis Cluster também é compatível com a persistência do AOF, mas é preciso escolher entre a persistência do AOF ou do RDB. Não é possível ativar os dois modos de persistência ao mesmo tempo. Para mais informações sobre como escolher entre os modos de persistência, consulte Visão geral da persistência.

Para ter a melhor disponibilidade possível, recomendamos usar um cluster de alta disponibilidade, além de ativar a persistência. Para mais informações, consulte Alta disponibilidade e réplicas.

Programação de snapshots

O horário de início e o intervalo do snapshot determinam a programação do snapshot. Os intervalos de snapshot que podem ser definidos são 1h, 6h, 12h e 24h. Por exemplo, se você definir o horário de início como 4h e o intervalo como uma hora, os snapshots vão começar às 4h no dia em que você ativar a persistência de RDB e vão continuar a cada hora depois disso.

O Memorystore for Redis Cluster avalia as programações de snapshot no fuso horário UTC. Portanto, se o fuso horário respeitar as mudanças do horário de verão, os horários de início locais dos jobs de programação de snapshot vão avançar ou retroceder uma hora no início e no fim do horário de verão.

Como pausar snapshots

Talvez você queira pausar temporariamente a criação de snapshots do RDB. Por exemplo, é possível pausar snapshots para evitar impactos no desempenho durante eventos críticos ou para resolver problemas de desempenho.

Se você pausar os snapshots definindo o horário de início para o futuro, o Memorystore for Redis Cluster vai reter o último snapshot. Se um nó falhar e não puder recuperar dados de uma réplica, ele usará esse snapshot para recuperar os dados. Para retomar os snapshots, ajuste a programação para quando você quiser que o próximo snapshot ocorra. Para mais informações, consulte Ajustar o intervalo de snapshot do RDB.

Comportamento de recuperação

Os nós do Memorystore for Redis Cluster fazem failover para réplicas como o principal mecanismo de recuperação, em vez de carregar dados de um snapshot. No entanto, se um nó falhar e não puder recuperar dados de uma réplica, ele vai recuperar os dados do snapshot.

Consistência de dados na recuperação

Quando você ativa a persistência do RDB, o cluster faz o possível para gerar snapshots no intervalo especificado. Como um snapshot do RDB é um backup pontual, seu aplicativo precisa tolerar alguma desatualização depois que o Memorystore for Redis Cluster recuperar os dados.

Os snapshots podem falhar por vários motivos. Se um snapshot falhar consecutivamente em vários intervalos, o último snapshot disponível poderá estar arbitrariamente desatualizado.

Ao recuperar dados de um snapshot, a desatualização de dados no pior caso é a soma do intervalo especificado desde o início do último snapshot válido e do tempo necessário para salvar o próximo snapshot no armazenamento. Se ocorrer um incidente de recuperação, use a métrica rdb_save_ages para conferir o período de desatualização dos dados. Para mais informações sobre essa métrica, consulte Métricas de persistência.

Tempo de recuperação

Se um nó falhar e precisar recuperar dados de um snapshot, ele ficará indisponível durante a recuperação. O tempo de recuperação depende do tamanho do snapshot.

Falhas de snapshot

O Memorystore for Redis Cluster tenta novamente qualquer snapshot com falha imediatamente usando a espera exponencial que varia de 5 a 300 segundos. Se ocorrer uma recuperação, as falhas consecutivas de snapshot vão aumentar a desatualização dos dados.

Falhas de recuperação

As falhas de recuperação são raras, mas podem acontecer. Se ocorrer uma falha de recuperação, o nó tentará recuperar os dados do snapshot repetidamente até que a recuperação seja bem-sucedida.

Como monitorar snapshots

Recomendamos monitorar os snapshots e definir alertas para os que falharem. Snapshots com falha podem indicar nós sobrecarregados que podem continuar tendo dificuldade para recuperar dados.

Para mais informações sobre as práticas recomendadas para persistência de RDB, consulte Práticas recomendadas de persistência. Para uma lista de métricas disponíveis para monitorar snapshots, consulte Métricas de persistência.

Impacto no desempenho

É possível monitorar o impacto no desempenho de um snapshot no cluster usando o Cloud Monitoring para visualizar métricas como uso de CPU e uso da memória.