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 empezar

  1. Asegúrate de que tú o la cuenta de usuario que estés usando tengáis los permisos necesarios para la acción que quieras realizar.

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

  2. Instala y actualiza Google Cloud CLI.

Iniciar una copia de seguridad cuando tú quieras

Usa el siguiente comando para crear una copia de seguridad bajo demanda:

gcloud

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

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster.
  • BACKUP_ID es el ID de la copia de seguridad, como december-2024-backup.
  • TTL_PERIOD especifica un tiempo de vida (TTL) para la copia de seguridad. La copia de seguridad se elimina automáticamente cuando se alcanza el límite de TTL. Se establece en un número de días. Por ejemplo, 14d. El valor mínimo es de 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 comprobar 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 de un proyecto y una región.

Configurar programaciones de copias de seguridad automáticas

Puedes configurar una programación de copias de seguridad diarias al crear un clúster o habilitarla en un clúster que ya tengas.

Crear un clúster con una programación de copias de seguridad automáticas habilitada

En el siguiente ejemplo se muestra cómo definir una programación de copias de seguridad diarias al crear un clúster. Para ver más opciones disponibles al crear clústeres, consulta Crear una instancia.

gcloud

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

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que vas a crear.
  • START_TIME A especifica cuándo se deben empezar a hacer copias de seguridad. Especifica la hora en formato HH:00 en un ciclo de 24 horas en hora UTC. Por ejemplo, 23:00.
  • RETENTION_POLICY especifica cuántos días se debe conservar cada copia de seguridad. Indica un número de días (por ejemplo, 7d). El máximo es de 365 días y el valor predeterminado es de 35 días.

    Aunque se elimine un clúster, la copia de seguridad se conserva durante el periodo de conservación, que es de 365 días como máximo. Debes eliminar manualmente la copia de seguridad para quitarla antes de que caduque el periodo de conservación.

Habilitar copias de seguridad programadas en un clúster

gcloud

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

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que vas a actualizar.
  • START_TIME Marca de tiempo que especifica cuándo se deben empezar a crear copias de seguridad. La marca de tiempo debe ser a nivel de hora y designar un periodo de una hora en el que se inician las copias de seguridad. Por ejemplo, 2024-01-01T01:00:00Z.

  • RETENTION_POLICY especifica cuántos días se debe conservar cada copia de seguridad. Indica un número de días (por ejemplo, 7d).

    Aunque se elimine un clúster, la copia de seguridad se conservará durante el periodo de conservación. Debes eliminar manualmente la copia de seguridad para quitarla antes de que caduque el periodo de conservación.

Inhabilitar 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

Sustituye INSTANCE_ID por el ID de la instancia de Memorystore for Redis Cluster que quieras actualizar.

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

Las operaciones de actualización de un clúster y las operaciones de mantenimiento 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 rechazarán las solicitudes de operaciones de copia de seguridad.
  • Si hay una operación de copia de seguridad en curso, una operación entrante para actualizar un clúster puede cancelar y fallar la operación de copia de seguridad en curso.
  • En raras ocasiones, las operaciones de mantenimiento y de copia de seguridad pueden coincidir y provocar que se omitan las operaciones de copia de seguridad de esa instancia.

Mostrar y describir copias de seguridad

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

Mostrar 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 del proyecto y la región especificados:

gcloud

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

Haz los cambios siguientes:

  • 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 devuelve 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

Mostrar copias de seguridad de una colección de copias de seguridad

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

gcloud

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

Haz los cambios siguientes:

  • 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 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

Describir una copia de seguridad

Usa el siguiente comando para obtener 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

Haz los cambios siguientes:

  • 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'

Eliminar una copia de seguridad

Usa el siguiente comando para eliminar una copia de seguridad:

gcloud

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

Haz los cambios siguientes:

  • 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.

Exportar una copia de seguridad a un segmento de almacenamiento

Puedes exportar una copia de seguridad a un segmento de Cloud Storage. El segmento de destino debe ser un segmento regional y debe estar en la misma región que la copia de seguridad. Memorystore for Redis Cluster debe tener permiso para acceder al segmento de Cloud Storage y para crear carpetas y objetos en é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 segmento de Cloud Storage de destino. Concede acceso al agente de servicio de Memorystore for Redis Cluster a los recursos de Cloud Storage.

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

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

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

    Asigna al agente de servicio un rol que le conceda 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 al agente de servicio de Memorystore para Redis Cluster en el bucket especificado:

    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
    

    Haz los cambios siguientes:

    • BUCKET_NAME es el nombre del segmento de destino.
    • PROJECT_NUMBER es el número de 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 segmento de Cloud Storage.

    gcloud

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

    Haz los cambios siguientes:

    • 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 segmento de Cloud Storage que no tiene gs:// como prefijo.

    El segmento 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 segmento de Cloud Storage y para crear carpetas y objetos en él.

Restaurar datos a partir de una copia de seguridad

Para restaurar datos a partir de una copia de seguridad, puedes inicializar un clúster nuevo a partir de una copia de seguridad gestionada del mismo proyecto o a partir de archivos RDB de un segmento de almacenamiento. Para inicializar un clúster a partir de archivos RDB, Memorystore for Redis Cluster debe tener permiso para acceder a los archivos.

Inicializar 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 nuevo clúster. La entidad de seguridad que cree el clúster debe tener el permiso redis.backups.get para la copia de seguridad.

Para ver más opciones disponibles al crear clústeres, consulta Crear una instancia.

gcloud

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

Haz los cambios siguientes:

  • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que vas a crear.
  • BACKUP_NAME es el nombre de una copia de seguridad gestionada. 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.

Inicializar un clúster nuevo a partir de archivos RDB de un segmento de almacenamiento

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

Para inicializar un clúster a partir de archivos RDB de Cloud Storage, debes conceder acceso a Memorystore for Redis Cluster al segmento y a los objetos de Cloud Storage y, a continuación, ejecutar la operación de creación.

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

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

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

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

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

    Haz los cambios siguientes:

    • BUCKET_NAME es el nombre del contenedor en el que se encuentran los archivos RDB.
    • PROJECT_NUMBER es el número de 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 de un segmento de Cloud Storage a un clúster nuevo. Para ver más opciones disponibles al crear clústeres, consulta Crear una instancia.

    gcloud

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

    Haz los cambios siguientes:

    • INSTANCE_ID es el ID de la instancia de Memorystore for Redis Cluster que vas a crear.
    • URI es uno o varios 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

Puede usar las métricas de Cloud Monitoring para monitorizar las operaciones de copia de seguridad e importación recientes. Para ver una lista de las métricas disponibles para las copias de seguridad de Memorystore for Redis Cluster, consulte Métricas de copias de seguridad.

Siguientes pasos