Gérer les sauvegardes

Cette page explique comment effectuer des opérations de sauvegarde de cluster Memorystore pour Redis. Avant de lire cette page, vous devez vous familiariser avec les sauvegardes.

Avant de commencer

  1. Assurez-vous que vous (ou le compte utilisateur que vous utilisez) disposez des autorisations requises pour l'action que vous devez effectuer.

    Les rôles Administrateur Redis et Éditeur Redis peuvent effectuer toutes les opérations de sauvegarde. Le rôle Lecteur Redis permet d'afficher et d'exporter les sauvegardes.

  2. Installez et mettez à jour la Google Cloud CLI.

Lancer une sauvegarde à la demande

Utilisez la commande suivante pour effectuer une sauvegarde à la demande :

gcloud

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

Remplacez les éléments suivants :

  • INSTANCE_ID est l'ID de l'instance Memorystore pour Redis Cluster.
  • BACKUP_ID est un ID de sauvegarde, tel que december-2024-backup.
  • TTL_PERIOD spécifie une valeur TTL (Time To Live) pour la sauvegarde. La sauvegarde est automatiquement supprimée une fois la limite TTL atteinte. Définissez un nombre de jours. Exemple :14d La valeur minimale est de 1 jour. Si aucune valeur n'est spécifiée, la valeur par défaut est de 100 ans.
  • PROJECT_ID est l'ID de votre projet.
  • REGION correspond à la région où se trouve votre cluster (par exemple, us-east1).

La commande renvoie un nom d'opération au format suivant :

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

Vous pouvez utiliser la commande gcloud redis operations describe pour vérifier l'état d'une opération :

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

Vous pouvez également utiliser la commande gcloud redis operations list pour lister toutes les opérations d'un projet et d'une région.

Configurer des programmations de sauvegarde automatique

Vous pouvez configurer une programmation de sauvegarde quotidienne lorsque vous créez un cluster ou activer une programmation de sauvegarde quotidienne sur un cluster existant.

Créer un cluster avec un calendrier de sauvegarde automatique activé

L'exemple suivant montre comment définir une planification de sauvegarde quotidienne lorsque vous créez un cluster. Pour en savoir plus sur les options disponibles lors de la création de clusters, consultez Créer une instance.

gcloud

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

Remplacez les éléments suivants :

  • INSTANCE_ID est l'ID de l'instance Memorystore pour Redis Cluster que vous créez.
  • START_TIME A indique le moment où les sauvegardes doivent commencer. Spécifiez l'heure au format HH:00 sur un cycle de 24 heures en heure UTC. Par exemple, 23:00.
  • RETENTION_POLICY indique le nombre de jours de conservation de chaque sauvegarde. Définissez le nombre de jours, par exemple 7d. La valeur maximale est de 365 jours et la valeur par défaut est de 35 jours.

    Même après la suppression d'un cluster, la sauvegarde est conservée pendant la période de conservation (365 jours maximum). Vous devez supprimer manuellement la sauvegarde pour la supprimer avant l'expiration de la période de conservation.

Activer les sauvegardes planifiées sur un cluster existant

gcloud

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

Remplacez les éléments suivants :

  • INSTANCE_ID est l'ID de l'instance Memorystore pour Redis Cluster que vous mettez à jour.
  • START_TIME Code temporel qui spécifie le moment où les sauvegardes doivent commencer. Le code temporel doit être au niveau de l'heure et désigne une période d'une heure pendant laquelle les sauvegardes commencent, par exemple 2024-01-01T01:00:00Z.

  • RETENTION_POLICY indique le nombre de jours de conservation de chaque sauvegarde. Définissez le nombre de jours, par exemple 7d.

    Même après la suppression d'un cluster, la sauvegarde est conservée pendant la période de conservation. Vous devez supprimer manuellement la sauvegarde pour la supprimer avant l'expiration de la période de conservation.

Désactiver les sauvegardes planifiées

Utilisez la commande suivante pour désactiver les sauvegardes planifiées sur un cluster :

gcloud

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

Remplacez INSTANCE_ID par l'ID de l'instance Memorystore pour Redis Cluster que vous mettez à jour.

Simultanéité entre les opérations de sauvegarde et de mise à jour du cluster

Les opérations de mise à jour sur un cluster et les opérations de maintenance peuvent annuler les opérations de sauvegarde en cours dans les situations suivantes :

  • Si une opération de mise à jour d'un cluster est en cours, les demandes d'opérations de sauvegarde sont refusées.
  • Si une opération de sauvegarde est en cours, une opération entrante de mise à jour d'un cluster peut annuler et faire échouer l'opération de sauvegarde en cours.
  • Dans de rares cas, les opérations de maintenance et de sauvegarde peuvent coïncider et entraîner l'omission des opérations de sauvegarde pour cette instance.

Lister et décrire les sauvegardes

Les sections suivantes expliquent comment trouver des informations sur les sauvegardes disponibles.

Lister les collections de sauvegardes

Une collection de sauvegardes inclut toutes les sauvegardes d'un cluster. Utilisez la commande suivante pour lister les collections de sauvegardes dans le projet et la région spécifiés :

gcloud

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

Remplacez les éléments suivants :

  • REGION correspond à la région où se trouve votre cluster (par exemple, us-east1).
  • PROJECT_ID est l'ID de votre projet.

La commande renvoie une liste de collections de sauvegarde semblable à celle-ci :

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

Lister les sauvegardes d'une collection de sauvegardes

Utilisez la commande suivante pour lister les sauvegardes d'une collection de sauvegardes :

gcloud

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

Remplacez les éléments suivants :

  • BACKUP_COLLECTION est le nom d'une collection de sauvegardes.
  • REGION est la région dans laquelle se trouve votre cluster, par exemple us-east1.
  • PROJECT_ID est l'ID de votre projet.

La commande renvoie une liste de sauvegardes semblable à celle-ci :

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

Décrire une sauvegarde

Utilisez la commande suivante pour récupérer des informations sur une sauvegarde spécifique :

gcloud

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

Remplacez les éléments suivants :

  • BACKUP_NAME est le nom d'une sauvegarde, par exemple 2024-05-01-10-15-00.
  • BACKUP_COLLECTION est le nom d'une collection de sauvegardes.
  • REGION est la région dans laquelle se trouve votre cluster, par exemple us-east1.
  • PROJECT_ID est l'ID de votre projet.

La commande renvoie des informations sur la sauvegarde, semblables à ce qui suit :

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'

Supprimer une sauvegarde

Exécutez la commande suivante pour supprimer une sauvegarde :

gcloud

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

Remplacez les éléments suivants :

  • BACKUP_NAME est le nom d'une sauvegarde, par exemple 2024-05-01-10-15-00.
  • BACKUP_COLLECTION est le nom d'une collection de sauvegardes.
  • REGION est la région dans laquelle se trouve votre cluster, par exemple us-east1.
  • PROJECT_ID est l'ID de votre projet.

Exporter une sauvegarde vers un bucket de stockage

Vous pouvez exporter une sauvegarde vers un bucket Cloud Storage. Le bucket de destination doit être un bucket régional et se trouver dans la même région que la sauvegarde. Memorystore for Redis Cluster doit être autorisé à accéder au bucket Cloud Storage, et à y créer des dossiers et des objets.

Les étapes suivantes montrent comment exporter une sauvegarde.

  1. Memorystore for Redis Cluster doit être autorisé à accéder au bucket Cloud Storage de destination. Accordez à l'agent de service Memorystore for Redis Cluster l'accès aux ressources Cloud Storage.

    L'agent de service Memorystore for Redis Cluster utilise le format de nommage suivant :

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

    Remplacez PROJECT_NUMBER par le numéro de projet du projet dans lequel se trouve le cluster ou la sauvegarde.

    Attribuez à l'agent de service un rôle qui lui accorde les autorisations storage.buckets.get, storage.objects.create, storage.objects.delete et storage.folders.create. Par exemple, la commande suivante attribue le rôle Storage Admin pour le bucket spécifié à l'agent de service Memorystore pour 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
    

    Remplacez les éléments suivants :

    • BUCKET_NAME est le nom du bucket de destination.
    • PROJECT_NUMBER est le numéro de projet utilisé dans le nom de l'agent de service.
  2. Utilisez la commande gcloud redis clusters backups export pour exporter une sauvegarde vers un bucket Cloud Storage.

    gcloud

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

    Remplacez les éléments suivants :

    • BACKUP_NAME est le nom d'une sauvegarde Memorystore for Redis Cluster.
    • BACKUP_COLLECTION est le nom d'une collection de sauvegardes.
    • REGION est la région où se trouve la collection de sauvegardes, par exemple us-east1.
    • BUCKET_NAME est un bucket Cloud Storage qui n'a pas gs:// comme préfixe.

    Le bucket doit être un bucket régional et se trouver dans la même région que la sauvegarde. Memorystore for Redis Cluster doit être autorisé à accéder au bucket Cloud Storage, et à y créer des dossiers et des objets.

Restaurer des données à partir d'une sauvegarde

Pour restaurer des données à partir d'une sauvegarde, vous pouvez amorcer un nouveau cluster à partir d'une sauvegarde gérée dans le même projet ou à partir de fichiers RDB dans un bucket de stockage. Pour amorcer un cluster à partir de fichiers RDB, Memorystore for Redis Cluster doit être autorisé à accéder aux fichiers.

Initialiser un cluster à partir d'une sauvegarde

L'exemple suivant montre comment importer des données à partir d'une sauvegarde vers un nouveau cluster. La sauvegarde doit se trouver dans la même région que le nouveau cluster. Le compte principal qui crée le cluster doit disposer de l'autorisation redis.backups.get pour la sauvegarde.

Pour en savoir plus sur les options disponibles lors de la création de clusters, consultez Créer une instance.

gcloud

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

Remplacez les éléments suivants :

  • INSTANCE_ID est l'ID de l'instance Memorystore pour Redis Cluster que vous créez.
  • BACKUP_NAME est le nom d'une sauvegarde gérée. Exemple : projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID.
  • REGION est la région dans laquelle se trouve votre cluster, par exemple us-east1.

Initialiser un cluster à partir de fichiers RDB dans un bucket de stockage

L'exemple suivant montre comment importer des données à partir de fichiers RDB dans un bucket Cloud Storage vers un nouveau cluster. Le bucket doit être régional et se trouver dans la même région que le nouveau cluster, ou être un bucket birégional dont l'une des régions est identique.

Pour amorcer un cluster à partir de fichiers RDB dans Cloud Storage, vous devez accorder à Memorystore pour Redis Cluster l'accès au bucket et aux objets Cloud Storage, puis exécuter l'opération de création.

  1. Memorystore for Redis Cluster doit être autorisé à accéder aux objets Cloud Storage. Accordez à l'agent de service Memorystore for Redis Cluster l'accès aux ressources Cloud Storage.

    L'agent de service Memorystore for Redis Cluster utilise le format de nommage suivant :

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

    Remplacez PROJECT_NUMBER par le numéro de projet dans lequel vous allez créer le cluster.

    Attribuez à l'agent de service un rôle qui lui accorde les autorisations storage.buckets.get et storage.objects.get. Par exemple, la commande suivante attribue le rôle Storage Admin à un bucket 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
    

    Remplacez les éléments suivants :

    • BUCKET_NAME correspond au nom du bucket où se trouvent les fichiers RDB.
    • PROJECT_NUMBER est le numéro de projet utilisé dans le nom de l'agent de service.
  2. L'exemple suivant montre comment importer des données à partir de fichiers RDB dans un bucket Cloud Storage vers un nouveau cluster. Pour en savoir plus sur les options disponibles lors de la création de clusters, consultez Créer une instance.

    gcloud

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

    Remplacez les éléments suivants :

    • INSTANCE_ID est l'ID de l'instance Memorystore pour Redis Cluster que vous créez.
    • URI correspond à un ou plusieurs URI Cloud Storage séparés par des virgules (,). Par exemple, gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb.
    • REGION est la région dans laquelle se trouve votre cluster, par exemple us-east1.

Métriques Cloud Monitoring

Vous pouvez utiliser les métriques Cloud Monitoring pour surveiller les opérations de sauvegarde et d'importation récentes. Pour obtenir la liste des métriques disponibles pour les sauvegardes Memorystore pour Redis Cluster, consultez Métriques de sauvegarde.

Étapes suivantes