Acerca da importação e exportação de dados

Esta página explica como funcionam as importações e as exportações no Memorystore for Redis.

A funcionalidade de importação e exportação usa a funcionalidade de instantâneo RDB nativa do Redis para importar dados para uma instância do Memorystore for Redis ou exportar dados de uma instância do Memorystore for Redis. A utilização do formato RDB nativo evita a dependência de fornecedores e facilita muito a movimentação de dados dentro Google Cloud ou fora Google Cloud. A importação e a exportação usam contentores do Cloud Storage para armazenar ficheiros RDB.

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

Para ver instruções sobre como importar e exportar ficheiros RDB, consulte os artigos Importar dados para uma instância do Redis e Exportar dados de uma instância do Redis.

Comportamento da funcionalidade de importação

  • Para um desempenho ideal, deve importar a partir de contentores do Cloud Storage localizados na mesma região que a sua instância do Redis.

  • A sua instância do Redis não está disponível durante uma operação de importação. A sua 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 são substituídos pelos dados no ficheiro RDB.

  • Se uma importação falhar por qualquer motivo, a instância é colocada online, mas os dados podem ser totalmente eliminados. Pode tentar novamente a importação com o mesmo ficheiro RDB ou usar outro ficheiro RDB para restaurar os dados.

  • A sua instância do Memorystore for Redis pode importar ficheiros RDB da mesma versão do Redis e de uma versão anterior do Redis, mas não pode importar ficheiros RDB de uma versão mais recente.

  • Uma operação de importação pode ser cancelada, mas deve ter em atenção que o cancelamento faz com que a sua instância seja recuperada com uma cache totalmente limpa. Este é o caso das instâncias do nível básico e do nível padrão.

  • Uma instância só pode importar cópias de segurança de versões mais antigas do Redis. Uma instância com o Redis 5.0 pode importar um RDB exportado do Redis 4.0, mas uma instância com o Redis 4.0 não pode importar um RDB do Redis 5.0.

Comportamento da funcionalidade de exportação

  • Pode ler e escrever dados na sua instância do Redis durante uma operação de exportação; no entanto, não pode realizar operações de administração, como dimensionar, atualizar ou configurar a sua instância.

  • A sua instância pode sofrer um aumento da latência durante a exportação.

  • Para um desempenho ideal, deve exportar as cópias de segurança da RDB para contentores do Cloud Storage localizados na mesma região que a sua instância do Redis.

  • Durante uma exportação, o ficheiro RDB é guardado num contentor do Cloud Storage à sua escolha.

  • Pode cancelar uma operação de exportação em qualquer altura. O cancelamento não afeta os dados nem a disponibilidade de uma instância.

    • O cancelamento de uma exportação elimina o ficheiro RDB que está a ser escrito no contentor do Cloud Storage e liberta a memória usada pelo processo BGSAVE.
  • Uma exportação pode substituir um ficheiro existente com o mesmo nome sem autorizações adicionais quando usa a Google Cloud consola. Para exportar um ficheiro existente com gcloud, a conta de utilizador precisa da autorização storage.objects.delete.

Exportação sob carga de escrita elevada

Se executar uma exportação durante um período de carga de escrita elevada, a utilização de memória da instância pode aumentar até 2 vezes, o que faz com que a operação de exportação falhe. Deve realizar operações de exportação durante períodos de poucas gravações. Para monitorizar a quantidade de dados do Redis armazenados na sua instância, pode criar um painel de controlo para monitorizar a utilização da memória e monitorizar as métricas de utilização da memória da instância com o Cloud Monitoring.

A exportação do Memorystore for Redis usa a funcionalidade BGSAVE do Redis para tirar uma captura instantânea dos dados numa instância. Quando executa BGSAVE, o Redis cria um novo processo secundário para tirar a captura de ecrã. O Redis usa a funcionalidade copy-on-write durante este processo.

Isto significa que a ramificação inicial atribui uma quantidade mínima de memória adicional, mas todas as páginas alteradas pelo tráfego de escrita do servidor Redis são duplicadas. Por conseguinte, em períodos de escritas elevadas, na pior das hipóteses, a pegada de memória do Redis duplica, o que faz com que a operação de exportação falhe.

Exportar durante uma operação BGSAVE

Não pode exportar enquanto uma operação do BGSAVE estiver em execução. Nível padrão As instâncias do Memorystore para Redis executam, por vezes, operações de resincronização completa ou "sincronizações completas" para manter a instância principal e a réplica sincronizadas. Uma resincronização completa usa o comando BGSAVE, que impede o Memorystore de fazer uma exportação.

Para verificar se uma operação BGSAVE está em curso, veja o ponto final da API redis.googleapis.com/persistence/rdb/bgsave_in_progress com o Explorador de métricas.

Para ver as métricas de um recurso monitorizado através do Metrics Explorer, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. No elemento Métrica, expanda o menu Selecionar uma métrica e, de seguida, selecione um tipo de recurso e um tipo de métrica. Por exemplo, para criar um gráfico da utilização da CPU de uma máquina virtual, faça o seguinte:
    1. (Opcional) Para reduzir as opções do menu, introduza parte do nome da métrica na barra de filtros. Para este exemplo, introduza utilization.
    2. No menu Recursos ativos, selecione Instância de VM.
    3. No menu Categorias de métricas ativas, selecione Instância.
    4. No menu Métricas ativas, selecione Utilização da CPU e, de seguida, clique em Aplicar.
  3. Para filtrar as séries cronológicas apresentadas, use o elemento Filtro.

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

    Todas as séries cronológicas são apresentadas quando o primeiro menu do elemento Agregação está definido como Não agregado. As predefinições do elemento Agregação são determinadas pelo tipo de métrica que selecionou.

Em alternativa, pode usar as suas próprias ferramentas de API de linha de comandos.

Autorizações necessárias para importar e exportar

Um utilizador tem de configurar autorizações do IAM suficientes para importar ou exportar ficheiros RDB. A configuração de autorizações mais simples consiste em aplicar as funções de IAM Cloud Memorystore Redis Admin e Storage Admin à conta de utilizador. No entanto, esta configuração pode ser inadequada para algumas contas de utilizador, uma vez que lhes concede autorizações para criar, editar ou eliminar recursos aos quais não deveriam ter acesso. Para ver instruções sobre como definir autorizações minimamente restritas, consulte o artigo Conceder autorizaçõ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. Consoante o tamanho, as importações e as exportações podem demorar entre alguns minutos e algumas horas.

Por exemplo, se importar ou exportar uma instância de 10 GB com 8 GB de memória usada, a operação pode demorar 5 minutos. Se importar ou exportar uma instância de 120 GB com 100 GB de memória usada, a operação pode demorar uma hora.

Parar uma importação ou uma exportação

Para parar uma importação ou uma exportação, consulte as seguintes páginas:

Monitorizar o progresso da operação

A estimativa de tempo para a conclusão não está disponível durante a importação e a exportação. Pode verificar se a operação está em curso consultando a página de detalhes da instância. Para ver a página de detalhes da instância, clique no ID da instância na página Memorystore for Redis lista de instâncias.

Também pode monitorizar o progresso de uma operação de importação executando o seguinte comando:

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

Onde:

  • [INSTANCE_ID] é o ID da sua instância do Memorystore for Redis.
  • [REGION] é a região em que a sua instância se encontra.

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

Contentores do Cloud Storage não suportados

Os contentores do Cloud Storage com a funcionalidade Requester Pays não são suportados para importações e exportações do Memorystore.

Proteger os seus contentores do Cloud Storage

Deve garantir que o seu contentor do Cloud Storage tem as restrições adequadas para impedir o acesso não autorizado à cópia de segurança RDB do Redis que contém. Consulte as opções de controlo de acesso do Cloud Storage para saber como proteger os seus contentores do Cloud Storage.

Garantir memória suficiente para concluir uma exportação

Para evitar que a exportação cause falta de memória, deve ter 50% de memória livre na instância durante o processo de exportação. Isto pode não ser necessário sempre, dependendo da sua carga de gravação, mas ter 50% de memória livre garante que existe espaço livre suficiente para acomodar a sobrecarga de cópia na gravação, se muitas páginas forem acedidas durante o processo de exportação.

Para compreender a utilização de memória atual da sua instância, configure um alerta para receber uma notificação quando a utilização de memória atingir um limite personalizável. Além disso, deve configurar um painel de controlo de monitorização da memória com o Cloud Monitoring. Estas medidas permitem-lhe compreender os padrões de utilização de memória das suas instâncias. A compreensão dos padrões de utilização de memória permite dimensionar corretamente a instância quando exporta a intervalos regulares.

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

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

Para instâncias com réplicas ativadas, a exportação pode aumentar a carga da CPU e a pegada de memória no nó principal.

Quando importa dados para uma instância com uma réplica de leitura ativada, a instância principal é reiniciada durante a operação de importação e fica indisponível até que os novos dados sejam totalmente carregados na base de dados.

O que se segue?