Sobre a importação e exportação de dados

Nesta página, explicamos como as importações e exportações funcionam no Memorystore para Redis.

O recurso de importação e exportação usa o recurso de instantâneo RDB nativo do Redis para importar ou exportar dados em uma instância do Memorystore para Redis. O uso do formato RDB nativo evita a dependência de um fornecedor e facilita a transferência de dados dentro ou fora do Google Cloud. A importação e exportação usa buckets do Cloud Storage para armazenar arquivos RDB.

O comportamento de uma instância do Memorystore para Redis durante a exportação é muito semelhante ao comando BGSAVE no Redis de código aberto. O Memorystore para Redis executa a importação copiando o arquivo RDB para o diretório de dados da instância.

Para instruções sobre como importar e exportar arquivos RDB, consulte Como importar dados para uma instância do Redis e Como exportar dados de uma instância do Redis.

Comportamento do importação de recursos

  • Para ter um desempenho ideal, importe os buckets do Cloud Storage localizados na mesma região da sua instância do Redis.

  • Sua instância do Redis fica indisponível durante uma operação de importação. A instância fica disponível após a conclusão da operação de importação.

  • Se uma importação for bem-sucedida, os dados existentes na instância serão substituídos pelos dados no arquivo RDB.

  • Se uma importação falhar por qualquer motivo, a instância será colocada on-line, mas os dados poderão ser totalmente descartados. Repita a importação usando o mesmo arquivo RDB ou outro arquivo RDB para restaurar os dados.

  • Sua instância do Memorystore para Redis pode importar arquivos RDB da mesma versão do Redis e de uma versão anterior, mas não pode importar arquivos RDB de uma versão mais recente.

  • Uma operação de importação pode ser cancelada, mas observe que o cancelamento resulta na recuperação da instância com um cache totalmente limpo. Esse é o caso para as instâncias do nível Básico e Standard.

  • Uma instância só pode importar backups de versões mais antigas do Redis. Uma instância que executa o Redis 5.0 pode importar um RDB exportado do Redis 4.0, mas uma instância que executa o Redis 4.0 não pode importar um RDB 5.0.

Comportamento do recurso de exportação

  • É possível ler e gravar dados na instância do Redis durante uma operação de exportação. No entanto, não é possível executar operações de administrador, como escalonamento, atualização ou configuração da instância.

  • A instância pode aumentar a latência durante a exportação.

  • Para ter um desempenho ideal, exporte os backups do RDB para os buckets do Cloud Storage localizados na mesma região da instância do Redis.

  • Durante uma exportação, o arquivo RDB é salvo em um bucket do Cloud Storage de sua escolha.

  • É possível cancelar uma operação de exportação a qualquer momento. O cancelamento não afeta os dados ou a disponibilidade de uma instância.

    • O cancelamento de uma exportação exclui o arquivo RDB que está sendo gravado no bucket do Cloud Storage e libera a memória usada pelo processo BGSAVE.
  • Uma exportação pode substituir um arquivo existente com o mesmo nome sem outras permissões ao usar o console do Google Cloud. Para exportar um arquivo existente com gcloud, a conta de usuário precisa da permissão storage.objects.delete.

Como exportar com carga alta de gravação

Se você executar uma exportação durante um período de alta carga de gravação, o uso da memória da instância poderá até dobrar, causando falha na operação de exportação. Execute operações de exportação durante períodos de baixa gravação. Para monitorar a quantidade de dados do Redis armazenados na instância, crie um painel para monitorar o uso da memória e monitore as métricas de uso da memória da instância com o Cloud Monitoring.

A exportação do Memorystore para Redis usa o recurso BGSAVE do Redis para tirar um instantâneo dos dados em uma instância. Ao executar BGSAVE, o Redis bifurca um novo processo filho para tirar o instantâneo. O Redis utiliza a cópia em gravação durante esse processo.

Isso significa que a bifurcação inicial aloca memória extra mínima, mas todas as páginas alteradas pelo tráfego de gravação do servidor Redis são duplicadas. Portanto, em períodos de gravação alta, no pior dos casos, o volume de memória do Redis dobra, causando falha na operação de exportação.

Como exportar durante uma operação BGISA

Não é possível exportar enquanto uma operação BGSAVE estiver em execução. Às vezes, as instâncias de nível standard do Memorystore para Redis executam operações de ressincronização completa ou sincronizações completas para manter o nó principal e a réplica sincronizados. Uma ressincronização completa usa o comando BGSAVE, que impede que o Memorystore realize uma exportação.

Para verificar se uma operação BGSAVE está em andamento, veja o endpoint da API redis.googleapis.com/persistence/rdb/bgsave_in_progress com o Metrics Explorer.

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:

  1. No console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. No elemento Métrica, expanda o menu Selecionar uma métrica e escolha um tipo de recurso e de métrica. Por exemplo, para gerar um gráfico do uso da CPU de uma máquina virtual, faça o seguinte:
    1. Opcional: para reduzir as opções do menu, insira parte do nome da métrica na Barra de filtros. Neste exemplo, digite utilization.
    2. No menu Recursos ativos, selecione Instância de VM.
    3. No menu Categorias de métrica ativas, selecione Instância.
    4. No menu Métricas ativas, selecione Utilização de CPU e clique em Aplicar.
  3. Para filtrar as séries temporais de texto, use o elemento Filtro.

  4. Para combinar séries temporais, use os menus no elemento Agregação. Por exemplo, para exibir a utilização da CPU para suas VMs, com base na zona, defina o primeiro menu como Média e o segundo como zona.

    Todas as séries temporais são exibidas quando o primeiro menu do elemento Agregação está definido como Não agregado. As configurações padrão do elemento Agregação são determinadas pelo tipo de métrica selecionada.

Como alternativa, use suas próprias ferramentas de API de linha de comando.

Permissões necessárias para importação e exportação

Um usuário precisa configurar permissões de IAM suficientes para importar ou exportar arquivos RDB. A configuração de permissões mais simples é aplicar os papéis de IAM Administrador do Cloud Memorystore Redis e Administrador do Storage à conta de usuário. No entanto, essa configuração pode ser inadequada para algumas contas de usuário porque ela lhes concede permissões para criar, editar ou excluir recursos que eles não têm autorização de acessar. Para instruções sobre como definir permissões minimamente restritas, consulte Como conceder permissões restritas para importação e exportação.

Duração das importações e exportações

A duração da importação ou exportação depende do tamanho da instância e do tamanho do conjunto de dados na instância. Dependendo do tamanho, as importações e exportações podem levar de alguns minutos a algumas horas.

Por exemplo, se você importar ou exportar uma instância de 10 GB com 8 GB de memória usada, a operação poderá levar cinco minutos. Se você importar ou exportar uma instância de 120 GB com 100 GB de memória usada, a operação poderá levar uma hora.

Como interromper uma importação ou exportação

Para interromper uma importação ou exportação, consulte as páginas a seguir:

Como monitorar o andamento da operação

A estimativa de tempo para conclusão não está disponível durante a importação e exportação. É possível verificar se a operação está em andamento verificando a página de detalhes da instância. Para visualizar a página de detalhes da instância, clique no ID da instância, na página da lista de instâncias do Memorystore para Redis.

Também é possível monitorar o andamento de uma operação de importação executando o comando a seguir:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Em que:

  • [INSTANCE_ID] é o ID da instância do Memorystore para Redis.
  • [REGION] é a região em que sua instância está localizada.

O comando resulta em state: IMPORTING ou state: READY como um dos campos de descrição.

Buckets do Cloud Storage incompatíveis

Os buckets do Requester Pays Cloud Storage não são compatíveis com as importações e exportações do Memorystore.

Como proteger os buckets do Cloud Storage

Verifique se o bucket do Cloud Storage tem as restrições certas para impedir o acesso não autorizado ao backup do Redis RDB contido nele. Consulte as Opções de controle de acesso do Cloud Storage para saber como proteger os buckets do Cloud Storage.

Como garantir memória suficiente para concluir uma exportação

Para impedir que a exportação cause a privação de memória, você precisa ter 50% de memória livre na instância durante o processo de exportação. Isso pode não ser necessário o tempo todo, dependendo da carga de gravação, mas ter 50% de memória livre garante que haja espaço livre suficiente para acomodar a sobrecarga de cópia na gravação, se muitas páginas forem tocadas durante o processo de exportação.

Para entender o uso atual da memória da instância, configure um alerta para notificar você quando o uso da memória atingir um limite personalizável. Além disso, configure um painel de monitoramento de memória com o Cloud Monitoring. Essas medidas permitem que você entenda os padrões de uso de memória das instâncias. Entender os padrões de uso de memória permite dimensionar a instância corretamente ao exportar em intervalos regulares.

Como exportar e importar para instâncias com réplicas de leitura

Em todas as instâncias do Redis, incluindo instâncias de réplica de leitura ativada, os dados são exportados do nó principal.

Para instâncias ativadas para leitura, a exportação pode aumentar a carga da CPU e o espaço de memória no nó principal.

Ao importar dados para uma instância ativada para réplica de leitura, o primário é reiniciado durante a operação de importação e a instância fica indisponível até que os novos dados sejam totalmente carregados no banco de dados.

A seguir