Faça a gestão das cópias de segurança

Esta página descreve como realizar operações de cópia de segurança do Memorystore for Redis Cluster. Antes de ler esta página, deve conhecer as cópias de segurança.

Antes de começar

  1. Certifique-se de que tem ou que a conta de utilizador que está a usar tem as autorizações necessárias para a ação que tem de executar.

    As funções Redis Admin e Redis Editor podem realizar todas as operações de cópia de segurança. A função Visualizador do Redis pode ver e exportar cópias de segurança.

  2. Instale e atualize a CLI do Google Cloud.

Inicie uma cópia de segurança a pedido

Use o seguinte comando para fazer uma cópia de segurança a pedido:

gcloud

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

Substitua o seguinte:

  • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster.
  • BACKUP_ID é um ID da cópia de segurança, como december-2024-backup
  • TTL_PERIOD especifica um tempo de vida (TTL) para a cópia de segurança. A cópia de segurança é eliminada automaticamente após atingir o limite de TTL. Definir um número de dias. Por exemplo, 14d. O valor mínimo é de 1 dia. Se não for especificado, o valor predefinido é 100 anos.
  • PROJECT_ID é o ID do seu projeto.
  • REGION é a região onde o cluster está localizado (por exemplo, us-east1).

O comando devolve um nome da operação com o seguinte formato:

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

Pode usar o comando gcloud redis operations describe para verificar o estado de uma operação:

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

Também pode usar o comando gcloud redis operations list para listar todas as operações num projeto e numa região.

Configure programações de cópias de segurança automáticas

Pode configurar um agendamento de cópias de segurança diárias quando cria um novo cluster ou pode ativar um agendamento de cópias de segurança diárias num cluster existente.

Crie um cluster com um horário de cópia de segurança automatizado ativado

O exemplo seguinte demonstra como definir uma programação de cópias de segurança diárias à medida que cria um novo cluster. Para ver mais opções disponíveis ao criar clusters, consulte o artigo Crie 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 o seguinte:

  • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster que está a criar.
  • START_TIME A especifica quando começar a fazer cópias de segurança. Especifique a hora no formato HH:00 num ciclo de 24 horas na hora UTC. Por exemplo, 23:00.
  • RETENTION_POLICY especifica o número de dias durante os quais cada cópia de segurança é retida. Definido para um número de dias, por exemplo, 7d. O máximo é de 365 dias e a predefinição é de 35 dias.

    Mesmo após a eliminação de um cluster, a cópia de segurança é retida durante o período de retenção, com um máximo de 365 dias. Tem de eliminar manualmente a cópia de segurança para a remover antes de o período de retenção expirar.

Ative as cópias de segurança agendadas num cluster existente

gcloud

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

Substitua o seguinte:

  • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster que está a atualizar.
  • START_TIME Uma data/hora que especifica quando começar a fazer cópias de segurança. A indicação de tempo tem de estar ao nível da hora e designa um período de uma hora em que as cópias de segurança começam, por exemplo, 2024-01-01T01:00:00Z.

  • RETENTION_POLICY especifica o número de dias durante os quais cada cópia de segurança é retida. Definido para um número de dias, por exemplo, 7d.

    Mesmo depois de um cluster ser eliminado, a cópia de segurança é retida durante o período de retenção. Tem de eliminar manualmente a cópia de segurança para a remover antes de o período de retenção expirar.

Desative as cópias de segurança agendadas

Use o seguinte comando para desativar as cópias de segurança agendadas num cluster:

gcloud

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

Substitua INSTANCE_ID pelo ID da instância do Memorystore for Redis Cluster que está a atualizar.

Concorrência entre operações de cluster de cópia de segurança e atualização

As operações de atualização num cluster e as operações de manutenção podem cancelar as operações de cópia de segurança em curso nas seguintes situações:

  • Se existir uma operação em curso para atualizar um cluster, os pedidos de operações de cópia de segurança são rejeitados.
  • Se existir uma operação de cópia de segurança em curso, uma operação de entrada para atualizar um cluster pode cancelar e fazer falhar a operação de cópia de segurança em curso.
  • Em circunstâncias raras, as operações de manutenção e de cópia de segurança podem coincidir e levar à ignorância das operações de cópia de segurança para essa instância.

Liste e descreva as cópias de segurança

As secções seguintes demonstram como encontrar informações sobre as cópias de segurança disponíveis.

Liste coleções de cópias de segurança

Uma coleção de cópias de segurança inclui todas as cópias de segurança num cluster. Use o seguinte comando para listar as coleções de cópias de segurança no projeto e na região especificados:

gcloud

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

Substitua o seguinte:

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

O comando devolve uma lista de recolhas de cópias de segurança semelhante à seguinte:

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

Liste as cópias de segurança numa coleção de cópias de segurança

Use o seguinte comando para listar as cópias de segurança numa coleção de cópias de segurança:

gcloud

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

Substitua o seguinte:

  • BACKUP_COLLECTION é o nome de uma coleção de cópias de segurança.
  • REGION é a região onde o seu cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do seu projeto.

O comando devolve uma lista de cópias de segurança semelhante à seguinte:

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

Descreva uma cópia de segurança

Use o seguinte comando para obter informações sobre uma cópia de segurança específica:

gcloud

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

Substitua o seguinte:

  • BACKUP_NAME é o nome de uma cópia de segurança, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION é o nome de uma coleção de cópias de segurança.
  • REGION é a região onde o seu cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do seu projeto.

O comando devolve informações sobre a cópia de segurança semelhantes às seguintes:

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'

Elimine uma cópia de segurança

Use o seguinte comando para eliminar uma cópia de segurança:

gcloud

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

Substitua o seguinte:

  • BACKUP_NAME é o nome de uma cópia de segurança, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION é o nome de uma coleção de cópias de segurança.
  • REGION é a região onde o seu cluster está localizado, como us-east1.
  • PROJECT_ID é o ID do seu projeto.

Exporte uma cópia de segurança para um contentor de armazenamento

Pode exportar uma cópia de segurança para um contentor do Cloud Storage. O contentor de destino tem de ser um contentor regional e tem de estar na mesma região que a cópia de segurança. O Memorystore for Redis Cluster tem de ter autorização para aceder ao contentor do Cloud Storage e criar pastas e objetos no contentor.

Os passos seguintes demonstram como exportar uma cópia de segurança.

  1. O Memorystore for Redis Cluster tem de ter autorização para aceder ao contentor do Cloud Storage de destino. Conceda ao agente de serviço do Memorystore for Redis Cluster acesso aos recursos do Cloud Storage.

    O agente de serviço do Memorystore for Redis Cluster usa o seguinte formato de nomenclatura:

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

    Substitua PROJECT_NUMBER pelo número do projeto do projeto onde o cluster ou a cópia de segurança está localizado.

    Conceda ao agente do serviço uma função que lhe dê as autorizações storage.buckets.get, storage.objects.create, storage.objects.delete e storage.folders.create. Por exemplo, o comando seguinte concede a função Storage Admin para o contentor especificado ao agente do serviço Memorystore for Redis Cluster:

    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 o seguinte:

    • BUCKET_NAME é o nome do contentor de destino.
    • PROJECT_NUMBER é o número do projeto usado no nome do agente do serviço.
  2. Use o comando gcloud redis clusters backups export para exportar uma cópia de segurança para um contentor do Cloud Storage.

    gcloud

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

    Substitua o seguinte:

    • BACKUP_NAME é o nome de uma cópia de segurança do Memorystore for Redis Cluster.
    • BACKUP_COLLECTION é o nome de uma coleção de cópias de segurança.
    • REGION é a região onde a recolha de cópias de segurança está localizada, como us-east1.
    • BUCKET_NAME é um contentor do Cloud Storage que não tem gs:// como prefixo.

    O contentor tem de ser um contentor regional e tem de estar na mesma região que a cópia de segurança. O Memorystore for Redis Cluster tem de ter autorização para aceder ao contentor do Cloud Storage e criar pastas e objetos no contentor.

Restaure dados a partir de uma cópia de segurança

Para restaurar dados a partir de uma cópia de segurança, pode inicializar um novo cluster a partir de uma cópia de segurança gerida no mesmo projeto ou inicializar um novo cluster a partir de ficheiros RDB num contentor de armazenamento. Para inicializar um cluster a partir de ficheiros RDB, o Memorystore for Redis Cluster tem de ter autorização para aceder aos ficheiros.

Inicialize um novo cluster a partir de uma cópia de segurança

O exemplo seguinte demonstra como importar dados de uma cópia de segurança para um novo cluster. A cópia de segurança tem de estar na mesma região que o novo cluster. O principal que cria o cluster tem de ter a autorização redis.backups.get para a cópia de segurança.

Para ver mais opções disponíveis ao criar clusters, consulte o artigo Crie uma instância.

gcloud

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

Substitua o seguinte:

  • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster que está a criar.
  • BACKUP_NAME é o nome de uma cópia de segurança gerida. Por exemplo, projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID.
  • REGION é a região onde o seu cluster está localizado, como us-east1.

Inicialize um novo cluster a partir de ficheiros RDB num contentor de armazenamento

O exemplo seguinte demonstra como importar dados de ficheiros RDB num contentor do Cloud Storage para um novo cluster. O contentor tem de ser um contentor regional na mesma região que o novo cluster ou um contentor de região dupla com uma região igual.

Para inicializar um cluster a partir de ficheiros RDB num Cloud Storage, tem de conceder ao Memorystore for Redis Cluster acesso ao contentor e aos objetos do Cloud Storage e, em seguida, executar a operação de criação.

  1. O Memorystore for Redis Cluster tem de ter autorização para aceder aos objetos do Cloud Storage. Conceda ao agente de serviço do Memorystore for Redis Cluster acesso aos recursos do Cloud Storage.

    O agente de serviço do Memorystore for Redis Cluster usa o seguinte formato de nomenclatura:

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

    Substitua PROJECT_NUMBER pelo número do projeto do projeto onde vai criar o novo cluster.

    Conceda ao agente de serviços uma função que lhe atribua as autorizações storage.buckets.get e storage.objects.get. Por exemplo, o comando seguinte concede a função Storage Admin a um contentor 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 o seguinte:

    • BUCKET_NAME é o nome do contentor onde se encontram os ficheiros RDB.
    • PROJECT_NUMBER é o número do projeto usado no nome do agente do serviço.
  2. O exemplo seguinte demonstra como importar dados de ficheiros RDB num contentor do Cloud Storage para um novo cluster. Para ver mais opções disponíveis quando criar clusters, consulte o artigo Crie uma instância.

    gcloud

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

    Substitua o seguinte:

    • INSTANCE_ID é o ID da instância do Memorystore for Redis Cluster que está a criar.
    • 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 onde o seu cluster está localizado, como us-east1.

Métricas do Cloud Monitoring

Pode usar as métricas do Cloud Monitoring para monitorizar as operações recentes de cópia de segurança e importação. Para ver uma lista das métricas disponíveis para cópias de segurança do Memorystore for Redis Cluster, consulte o artigo Métricas de cópia de segurança.

O que se segue?