Administrar copias de seguridad

En esta página, se describe cómo realizar operaciones de copia de seguridad de Memorystore para Redis Cluster. Antes de leer esta página, debes familiarizarte con las Copias de seguridad.

Antes de comenzar

  1. Asegúrate de que tú o la cuenta de usuario que usas tengan los permisos necesarios para la acción que debes realizar.

    Los roles de Administrador de Redis y Editor de Redis pueden realizar todas las operaciones de copia de seguridad. El rol de Visualizador de Redis puede ver y exportar copias de seguridad.

  2. Instala y actualiza Google Cloud CLI.

Cómo iniciar una copia de seguridad a pedido

Usa el siguiente comando para crear una copia de seguridad a pedido:

gcloud

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

Reemplaza lo siguiente:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster.
  • BACKUP_ID es un ID para la copia de seguridad, como december-2024-backup.
  • TTL_PERIOD especifica un tiempo de actividad (TTL) para la copia de seguridad. La copia de seguridad se borra automáticamente después de alcanzar el límite de TTL. Se establece en una cantidad de días. Por ejemplo, 14d El valor mínimo es 1 día. Si no se especifica, el valor predeterminado es 100 años.
  • PROJECT_ID es el ID del proyecto.
  • REGION es la región en la que se encuentra tu clúster (por ejemplo, us-east1).

El comando devuelve un nombre de operación con el siguiente formato:

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

Puedes usar el comando gcloud redis operations describe para verificar el estado de una operación:

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

También puedes usar el comando gcloud redis operations list para enumerar todas las operaciones en un proyecto y una región.

Configura programaciones de copias de seguridad automáticas

Puedes configurar una programación de copias de seguridad diarias cuando creas un clúster nuevo o habilitar una programación de copias de seguridad diarias en un clúster existente.

Crea un clúster con una programación de copias de seguridad automatizada habilitada

En el siguiente ejemplo, se muestra cómo configurar un programa de copia de seguridad diaria mientras creas un clúster nuevo. Para obtener más opciones disponibles cuando crees clústeres, consulta Crea una instancia.

gcloud

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

Reemplaza lo siguiente:

  • INSTANCE_ID es el ID de la instancia de Memorystore para Redis Cluster que creas.
  • START_TIME A especifica cuándo comenzar a tomar copias de seguridad. Especifica la hora en el formato HH:00 en un ciclo de 24 horas en hora UTC. Por ejemplo, 23:00.
  • RETENTION_POLICY especifica cuántos días se retendrá cada copia de seguridad. Se establece en una cantidad de días, por ejemplo, 7d. El máximo es de 365 días y el valor predeterminado es de 35 días.

    Incluso después de que se borra un clúster, la copia de seguridad se conserva durante el período de retención, con un máximo de 365 días. Debes borrar la copia de seguridad de forma manual para quitarla antes de que venza el período de retención.

Habilita las copias de seguridad programadas en un clúster existente

gcloud

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

Reemplaza lo siguiente:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que deseas actualizar.
  • START_TIME Es una marca de tiempo que especifica cuándo comenzar a tomar copias de seguridad. La marca de tiempo debe estar a nivel de la hora y designar un período de una hora en el que comienzan las copias de seguridad, por ejemplo, 2024-01-01T01:00:00Z.

  • RETENTION_POLICY especifica cuántos días se retendrá cada copia de seguridad. Se establece en una cantidad de días, por ejemplo, 7d.

    Incluso después de que se borra un clúster, la copia de seguridad se retiene durante el período de retención. Debes borrar la copia de seguridad de forma manual para quitarla antes de que venza el período de retención.

Inhabilita las copias de seguridad programadas

Usa el siguiente comando para inhabilitar las copias de seguridad programadas en un clúster:

gcloud

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

Reemplaza INSTANCE_ID por el ID de la instancia de Memorystore for Redis Cluster que deseas actualizar.

Simultaneidad entre las operaciones de copia de seguridad y actualización del clúster

Las operaciones de actualización y mantenimiento en un clúster pueden cancelar las operaciones de copia de seguridad en curso en las siguientes situaciones:

  • Si hay una operación en curso para actualizar un clúster, se rechazan las solicitudes de operaciones de copia de seguridad.
  • Si hay una operación de copia de seguridad en curso, es posible que una operación entrante para actualizar un clúster cancele y falle la operación de copia de seguridad en curso.
  • En raras circunstancias, las operaciones de mantenimiento y de copia de seguridad pueden coincidir y provocar que se omitan las operaciones de copia de seguridad para esa instancia.

Enumera y describe las copias de seguridad

En las siguientes secciones, se muestra cómo encontrar información sobre las copias de seguridad disponibles.

Enumera las colecciones de copias de seguridad

Una colección de copias de seguridad incluye todas las copias de seguridad de un clúster. Usa el siguiente comando para enumerar las colecciones de copias de seguridad en el proyecto y la región especificados:

gcloud

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

Reemplaza lo siguiente:

  • REGION es la región en la que se encuentra tu clúster (por ejemplo, us-east1).
  • PROJECT_ID es el ID del proyecto.

El comando muestra una lista de colecciones de copias de seguridad similar a la siguiente:

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

Enumera las copias de seguridad en una colección de copias de seguridad

Usa el siguiente comando para enumerar las copias de seguridad en una colección de copias de seguridad:

gcloud

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

Reemplaza lo siguiente:

  • BACKUP_COLLECTION es el nombre de una colección de copias de seguridad.
  • REGION es la región en la que se encuentra tu clúster, como us-east1.
  • PROJECT_ID es el ID del proyecto.

El comando muestra una lista de copias de seguridad similar a la siguiente:

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

Describe una copia de seguridad

Usa el siguiente comando para recuperar información sobre una copia de seguridad específica:

gcloud

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

Reemplaza lo siguiente:

  • BACKUP_NAME es el nombre de una copia de seguridad, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION es el nombre de una colección de copias de seguridad.
  • REGION es la región en la que se encuentra tu clúster, como us-east1.
  • PROJECT_ID es el ID del proyecto.

El comando devuelve información sobre la copia de seguridad similar a la siguiente:

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'

Borrar una copia de seguridad

Usa el siguiente comando para borrar una copia de seguridad:

gcloud

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

Reemplaza lo siguiente:

  • BACKUP_NAME es el nombre de una copia de seguridad, como 2024-05-01-10-15-00.
  • BACKUP_COLLECTION es el nombre de una colección de copias de seguridad.
  • REGION es la región en la que se encuentra tu clúster, como us-east1.
  • PROJECT_ID es el ID del proyecto.

Exporta una copia de seguridad a un bucket de almacenamiento

Puedes exportar una copia de seguridad a un bucket de Cloud Storage. El bucket de destino debe ser un bucket regional y debe estar en la misma región que la copia de seguridad. Memorystore for Redis Cluster debe tener permiso para acceder al bucket de Cloud Storage y crear carpetas y objetos dentro de él.

En los siguientes pasos, se muestra cómo exportar una copia de seguridad.

  1. Memorystore for Redis Cluster debe tener permiso para acceder al bucket de Cloud Storage de destino. Otorga al agente de servicio de Memorystore for Redis Cluster acceso a los recursos de Cloud Storage.

    El agente de servicio de Memorystore for Redis Cluster usa el siguiente formato de nombres:

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

    Reemplaza PROJECT_NUMBER por el número de proyecto del proyecto en el que se encuentra el clúster o la copia de seguridad.

    Otorga al agente de servicio un rol que le otorgue los permisos storage.buckets.get, storage.objects.create, storage.objects.delete y storage.folders.create. Por ejemplo, el siguiente comando otorga el rol Storage Admin para el bucket especificado al agente de servicio de Memorystore para 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
    

    Reemplaza lo siguiente:

    • BUCKET_NAME es el nombre del bucket de destino.
    • PROJECT_NUMBER es el número del proyecto que se usa en el nombre del agente de servicio.
  2. Usa el comando gcloud redis clusters backups export para exportar una copia de seguridad a un bucket de Cloud Storage.

    gcloud

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

    Reemplaza lo siguiente:

    • BACKUP_NAME es el nombre de una copia de seguridad de Memorystore for Redis Cluster.
    • BACKUP_COLLECTION es el nombre de una colección de copias de seguridad.
    • REGION es la región en la que se encuentra la colección de copias de seguridad, como us-east1.
    • BUCKET_NAME es un bucket de Cloud Storage que no tiene gs:// como prefijo.

    El bucket debe ser regional y estar en la misma región que la copia de seguridad. Memorystore for Redis Cluster debe tener permiso para acceder al bucket de Cloud Storage y crear carpetas y objetos dentro de él.

Restablece datos a partir de una copia de seguridad

Para restablecer datos desde una copia de seguridad, puedes propagar un clúster nuevo desde una copia de seguridad administrada en el mismo proyecto o propagar un clúster nuevo desde archivos RDB en un bucket de almacenamiento. Para propagar un clúster a partir de archivos RDB, Memorystore for Redis Cluster debe tener permiso para acceder a los archivos.

Inicializa un clúster nuevo a partir de una copia de seguridad

En el siguiente ejemplo, se muestra cómo importar datos de una copia de seguridad a un clúster nuevo. La copia de seguridad debe estar en la misma región que el clúster nuevo. La principal que crea el clúster debe tener permiso de redis.backups.get para la copia de seguridad.

Para obtener más opciones disponibles cuando crees clústeres, consulta Crea una instancia.

gcloud

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

Reemplaza lo siguiente:

  • INSTANCE_ID es el ID de la instancia de Memorystore para Redis Cluster que creas.
  • BACKUP_NAME es el nombre de una copia de seguridad administrada. Por ejemplo, projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID
  • REGION es la región en la que se encuentra tu clúster, como us-east1.

Inicializa un clúster nuevo a partir de archivos RDB en un bucket de almacenamiento

En el siguiente ejemplo, se muestra cómo importar datos de archivos RDB en un bucket de Cloud Storage a un clúster nuevo. El bucket debe ser regional en la misma región que el clúster nuevo o un bucket birregional con una región igual.

Para inicializar un clúster a partir de archivos RDB en Cloud Storage, debes otorgar acceso a Memorystore para Redis Cluster al bucket y a los objetos de Cloud Storage y, luego, ejecutar la operación de creación.

  1. Memorystore for Redis Cluster debe tener permiso para acceder a los objetos de Cloud Storage. Otorga al agente de servicio de Memorystore for Redis Cluster acceso a los recursos de Cloud Storage.

    El agente de servicio de Memorystore for Redis Cluster usa el siguiente formato de nombres:

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

    Reemplaza PROJECT_NUMBER por el número de proyecto del proyecto en el que crearás el clúster nuevo.

    Otorga al agente de servicio un rol que le otorgue los permisos storage.buckets.get y storage.objects.get. Por ejemplo, el siguiente comando otorga el rol Storage Admin a un bucket de 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
    

    Reemplaza lo siguiente:

    • BUCKET_NAME es el nombre del bucket en el que se encuentran los archivos de RDB.
    • PROJECT_NUMBER es el número del proyecto que se usa en el nombre del agente de servicio.
  2. En el siguiente ejemplo, se muestra cómo importar datos de archivos RDB en un bucket de Cloud Storage a un clúster nuevo. Para obtener más opciones disponibles cuando creas clústeres, consulta Crea una instancia.

    gcloud

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

    Reemplaza lo siguiente:

    • INSTANCE_ID es el ID de la instancia de Memorystore para Redis Cluster que creas.
    • URI es uno o más URIs de Cloud Storage separados por comas (,). Por ejemplo, gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb.
    • REGION es la región en la que se encuentra tu clúster, como us-east1.

Métricas de Cloud Monitoring

Puedes usar las métricas de Cloud Monitoring para supervisar las operaciones recientes de copia de seguridad e importación. Para obtener una lista de las métricas disponibles para las copias de seguridad de Memorystore for Redis Cluster, consulta Métricas de copias de seguridad.

¿Qué sigue?