Gerenciar backups

Nesta página, descrevemos como realizar operações de backup do cluster do Memorystore para Redis. Antes de ler esta página, familiarize-se com os backups.

Antes de começar

  1. Certifique-se de que você ou a conta de usuário que está usando tenham as permissões necessárias para a ação que você precisa executar.

    As funções Administrador do Redis e Editor do Redis podem realizar todas as operações de backup. A função Leitor do Redis pode visualizar e exportar backups.

  2. Instale e atualize a Google Cloud CLI.

Iniciar um backup sob demanda

Use o comando a seguir para fazer um backup sob demanda:

gcloud

gcloud redis clusters create-backup INSTANCE_ID \
--backup-id=BACKUP_ID \
--ttl=TTL_PERIOD \
--project=PROJECT_ID \
--region=REGION

Substitua:

  • INSTANCE_ID é o ID da instância do cluster do Memorystore para Redis.
  • BACKUP_ID é um ID do backup, como december-2024-backup
  • TTL_PERIOD especifica um time to live (TTL) para o backup. O backup é excluído automaticamente após atingir o limite de TTL. Definido como um número de dias. Por exemplo, 14d. O valor mínimo é 1 dia. Se não for especificado, o valor padrão será 100 anos.
  • PROJECT_ID é o ID do projeto;
  • REGION é a região em que o cluster está localizado (por exemplo, us-east1).

O comando retorna um nome de operação com o seguinte formato:

projects/PROJECT_ID/locations/REGION/operations/operation-UID

Use o comando gcloud redis operations describe para verificar o status de uma operação:

gcloud redis operations describe projects/PROJECT_ID/locations/REGION/operations/operation-UID

Também é possível usar o comando gcloud redis operations list para listar todas as operações em um projeto e uma região.

Configurar programações de backup automatizadas

É possível configurar uma programação de backup diário ao criar um cluster ou ativar uma programação de backup diário em um cluster atual.

Criar um cluster com uma programação de backup automatizada ativada

O exemplo a seguir demonstra como definir uma programação de backup diário ao criar um novo cluster. Para mais opções disponíveis ao criar clusters, consulte Criar uma instância.

gcloud

gcloud redis clusters create INSTANCE_ID \
--automated-backup-mode=ENABLED \
--automated-backup-start-time=START_TIME \
--automated-backup-ttl=RETENTION_POLICY

Substitua:

  • INSTANCE_ID é o ID da instância do cluster do Memorystore para Redis que você está criando.
  • START_TIME A especifica quando começar a fazer backups. Especifique o horário no formato HH:00 em um ciclo de 24 horas no horário UTC. Por exemplo, 23:00.
  • RETENTION_POLICY especifica por quantos dias cada backup será mantido. Definido como um número de dias, por exemplo, 7d. O máximo é de 365 dias, e o padrão é de 35 dias.

    Mesmo depois que um cluster é excluído, o backup é retido pelo período de armazenamento, com um máximo de 365 dias. É necessário excluir o backup manualmente para removê-lo antes do fim do período de armazenamento.

Ativar backups programados em um cluster atual

gcloud

gcloud redis clusters update INSTANCE_ID \
--automated-backup-mode=enabled \
--automated-backup-start-time=START_TIME \
--automated-backup-ttl=RETENTION_POLICY

Substitua:

  • INSTANCE_ID é o ID da instância do cluster do Memorystore para Redis que você está atualizando.
  • START_TIME Um carimbo de data/hora que especifica quando começar a fazer backups. O carimbo de data/hora precisa ser no nível da hora e designar uma janela de uma hora em que os backups começam, por exemplo, 2024-01-01T01:00:00Z.

  • RETENTION_POLICY especifica por quantos dias cada backup será mantido. Definido como um número de dias, por exemplo, 7d.

    Mesmo depois que um cluster é excluído, o backup é mantido durante o período de armazenamento. É necessário excluir o backup manualmente para removê-lo antes do fim do período de armazenamento.

Desativar backups programados

Use o comando a seguir para desativar os backups programados em um cluster:

gcloud

gcloud redis clusters update INSTANCE_ID \
--automated-backup-mode=disabled

Substitua INSTANCE_ID pelo ID da instância do Memorystore para Redis Cluster que você está atualizando.

Concorrência entre operações de backup e atualização de cluster

As operações de atualização em um cluster e as operações de manutenção podem cancelar operações de backup em andamento nas seguintes situações:

  • Se houver uma operação em andamento para atualizar um cluster, as solicitações de operações de backup serão rejeitadas.
  • Se houver uma operação de backup em andamento, uma operação de entrada para atualizar um cluster poderá cancelar e falhar a operação de backup em andamento.
  • Em raras circunstâncias, as operações de manutenção e backup podem coincidir e fazer com que as operações de backup sejam ignoradas para essa instância.

Listar e descrever backups

As seções a seguir mostram como encontrar informações sobre os backups disponíveis.

Listar coleções de backup

Uma coleção de backups inclui todos os backups em um cluster. Use o comando a seguir para listar as coleções de backup no projeto e na região especificados:

gcloud

gcloud redis clusters backup-collections list \
--project=PROJECT_ID \
--region=REGION

Substitua:

  • REGION é a região em que o cluster está localizado (por exemplo, us-east1).
  • PROJECT_ID é o ID do projeto;

O comando retorna uma lista de coleções de backup semelhante a esta:

BACKUP_COLLECTION_NAME                CLUSTER_NAME                                           CLUSTER_UID
6d9e1ff4-0f89-4c0a-a941-155dd4c3a213  projects/PROJECT_ID/locations/REGION/clusters/cluster1  6e539aed-ee7b-4eea-83ad-b4715b1ef160
dda2f551-b416-47ff-b1cf-684e00483dc9  projects/PROJECT_ID/locations/REGION/clusters/cluster2  57130520-636c-4ac7-ad7e-86f7cfb32838

Listar backups em uma coleção de backups

Use o comando a seguir para listar backups em uma coleção de backups:

gcloud

gcloud redis clusters backups list \
--backup-collection=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

Substitua:

  • BACKUP_COLLECTION é o nome de uma coleção de backups.
  • REGION é a região em que o cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do projeto;

O comando retorna uma lista de backups semelhante a esta:

BACKUP_NAME  STATE   CREATE_TIME                     EXPIRE_TIME
backup-1     ACTIVE  2024-11-10T03:52:40.899882388Z  2124-11-10T03:53:02.856981736Z
backup-2     ACTIVE  2024-11-11T03:48:22.137134936Z  2124-11-11T03:48:44.130735425Z

Descrever um backup

Use o comando a seguir para recuperar informações sobre um backup específico:

gcloud

gcloud redis clusters backups describe BACKUP_NAME \
--backup-collections=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

Substitua:

  • BACKUP_NAME é o nome de um backup, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION é o nome de uma coleção de backups.
  • REGION é a região em que o cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do projeto;

O comando retorna informações sobre o backup semelhantes a estas:

backupFiles:
- createTime: '2024-11-10T03:52:55.539Z'
fileName: 3d2774dab822137c5bac9386f3fa69ee4c73b928.rdb
sizeBytes: '694879680'
- createTime: '2024-11-10T03:52:54.742Z'
fileName: 7f5d99faaefc63ed8292a71da2552db3b06cdcff.rdb
sizeBytes: '694925906'
- createTime: '2024-11-10T03:52:54.972Z'
fileName: 0aac1092a3fb81515aefb6b2421f31eb346c3961.rdb
sizeBytes: '694784169'
cluster: projects/PROJECT_ID/locations/us-east1/clusters/cluster1
clusterUid: 57130520-636c-4ac7-ad7e-86f7cfb32838
createTime: '2024-11-10T03:52:40.899882388Z'
expireTime: '2124-11-10T03:53:02.856981736Z'
name: projects/PROJECT_ID/locations/us-east1/backupCollections/dda2f551-b416-47ff-b1cf-684e00483dc9/backups/december-2024-backup
nodeType: REDIS_HIGHMEM_MEDIUM
shardCount: 3
state: ACTIVE
totalSizeBytes: '2084589755'

Excluir um backup

Use o comando a seguir para excluir um backup:

gcloud

gcloud redis clusters backups delete BACKUP_NAME \
--backup-collection=BACKUP_COLLECTION
--project=PROJECT_ID \
--region=REGION

Substitua:

  • BACKUP_NAME é o nome de um backup, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION é o nome de uma coleção de backups.
  • REGION é a região em que o cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do projeto;

Exportar um backup para um bucket de armazenamento

É possível exportar um backup para um bucket do Cloud Storage. O bucket de destino precisa ser regional e estar na mesma região do backup. O Memorystore para Redis Cluster precisa ter permissão para acessar o bucket do Cloud Storage e criar pastas e objetos dentro dele.

As etapas a seguir demonstram como exportar um backup.

  1. O Memorystore for Redis Cluster precisa ter permissão para acessar o bucket de destino do Cloud Storage. Conceda ao agente de serviço do Memorystore para Redis Cluster acesso aos recursos do Cloud Storage.

    O agente de serviço do Memorystore para Redis Cluster usa o seguinte formato de nomeação:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
    

    Substitua PROJECT_NUMBER pelo número do projeto em que o cluster ou backup está localizado.

    Conceda ao agente de serviço um papel que dê as permissões storage.buckets.get, storage.objects.create, storage.objects.delete e storage.folders.create. Por exemplo, o comando a seguir concede o papel Storage Admin para o bucket especificado ao agente de serviço do cluster do Memorystore para Redis:

    gcloud

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
    --role=roles/storage.admin
    

    Substitua:

    • BUCKET_NAME é o nome do bucket de destino.
    • PROJECT_NUMBER é o número do projeto usado no nome do agente de serviço.
  2. Use o comando gcloud redis clusters backups export para exportar um backup para um bucket do Cloud Storage.

    gcloud

    gcloud redis clusters backups export BACKUP_NAME \
    --region=REGION \
    --backup-collection=BACKUP_COLLECTION \
    --gcs-bucket=BUCKET
    

    Substitua:

    • BACKUP_NAME é o nome de um backup do Memorystore for Redis Cluster.
    • BACKUP_COLLECTION é o nome de uma coleção de backups.
    • REGION é a região em que a coleção de backup está localizada, como us-east1.
    • BUCKET_NAME é um bucket do Cloud Storage, que não tem gs:// como prefixo.

    O bucket precisa ser regional e estar na mesma região que o backup. O Memorystore para Redis Cluster precisa ter permissão para acessar o bucket do Cloud Storage e criar pastas e objetos dentro dele.

Restaurar dados de um backup

Para restaurar dados de um backup, você pode propagar um novo cluster de um backup gerenciado no mesmo projeto ou de arquivos RDB em um bucket de armazenamento. Para fazer o seeding de um cluster com arquivos RDB, o Memorystore for Redis Cluster precisa ter permissão para acessar os arquivos.

Fazer seed de um novo cluster com base em um backup

O exemplo a seguir demonstra como importar dados de um backup para um novo cluster. O backup precisa estar na mesma região que o novo cluster. O principal que cria o cluster precisa ter a permissão redis.backups.get para o backup.

Para mais opções disponíveis ao criar clusters, consulte Criar uma instância.

gcloud

gcloud redis clusters create INSTANCE_ID \
--import-managed-backup=BACKUP_NAME \
--region=REGION

Substitua:

  • INSTANCE_ID é o ID da instância do cluster do Memorystore para Redis que você está criando.
  • BACKUP_NAME é o nome de um backup gerenciado. Por exemplo, projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID.
  • REGION é a região em que o cluster está localizado, como us-east1.

Fazer seed de um novo cluster com arquivos RDB em um bucket de armazenamento

O exemplo a seguir demonstra como importar dados de arquivos RDB em um bucket do Cloud Storage para um novo cluster. O bucket precisa ser regional na mesma região que o novo cluster ou um bucket birregional com uma região igual.

Para fazer o seeding de um cluster com arquivos RDB em um Cloud Storage, é necessário conceder à Memorystore para Redis Cluster acesso ao bucket e aos objetos do Cloud Storage e executar a operação de criação.

  1. O Memorystore para Redis Cluster precisa ter permissão para acessar os objetos do Cloud Storage. Conceda ao agente de serviço do Memorystore para Redis Cluster acesso aos recursos do Cloud Storage.

    O agente de serviço do Memorystore para Redis Cluster usa o seguinte formato de nomeação:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

    Substitua PROJECT_NUMBER pelo número do projeto em que você vai criar o novo cluster.

    Conceda ao agente de serviço um papel que dê as permissões storage.buckets.get e storage.objects.get. Por exemplo, o comando a seguir concede o papel Storage Admin a um bucket do Cloud Storage:

    gcloud

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com --role=roles/storage.admin
    

    Substitua:

    • BUCKET_NAME é o nome do bucket em que os arquivos RDB estão localizados.
    • PROJECT_NUMBER é o número do projeto usado no nome do agente de serviço.
  2. O exemplo a seguir demonstra como importar dados de arquivos RDB em um bucket do Cloud Storage para um novo cluster. Para mais opções disponíveis ao criar clusters, consulte Criar uma instância.

    gcloud

    gcloud redis clusters create INSTANCE_ID \
    --import-gcs-object-uris=URI \
    --region=REGION
    

    Substitua:

    • INSTANCE_ID é o ID da instância do cluster do Memorystore para Redis que você está criando.
    • URI é um ou mais URIs do Cloud Storage separados por vírgulas (,). Por exemplo, gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb.
    • REGION é a região em que o cluster está localizado, como us-east1.

Métricas do Cloud Monitoring

É possível usar as métricas do Cloud Monitoring para monitorar as operações recentes de backup e importação. Para uma lista de métricas disponíveis para backups do cluster do Memorystore para Redis, consulte Métricas de backup.

A seguir