Sauvegarder et restaurer dans Kubernetes

Sélectionnez une version de la documentation :

Cette page vous explique comment sauvegarder et restaurer vos données AlloyDB Omni à l'aide de l'opérateur Kubernetes AlloyDB Omni. Pour cela, vous devez avoir des connaissances de base sur la mise à jour d'un cluster Kubernetes à l'aide de fichiers manifestes et de l'outil de ligne de commande kubectl. Pour en savoir plus sur l'installation et l'exécution d'AlloyDB Omni sur un cluster Kubernetes, consultez Installer AlloyDB Omni sur Kubernetes.

Pour activer la sauvegarde et la récupération continues d'AlloyDB Omni, vous devez créer un plan de sauvegarde pour chaque cluster de bases de données. Les sauvegardes sont effectuées en fonction des plannings de sauvegarde définis dans la ressource backupPlan. Si aucune planification de sauvegarde n'est définie dans le plan de sauvegarde, des sauvegardes continues sont effectuées quotidiennement par défaut. Vous pouvez restaurer ou cloner des sauvegardes à partir de n'importe quel code temporel de la période de récupération, avec une précision à la seconde près.

Pour savoir comment sauvegarder et restaurer vos données AlloyDB Omni sur des déploiements non Kubernetes, consultez Configurer Barman pour AlloyDB Omni et Configurer pgBackRest pour AlloyDB Omni.

Activer et planifier les sauvegardes

Les sauvegardes continues sont activées lorsque vous créez une ressource de plan de sauvegarde pour votre cluster de bases de données. Vous devez créer une ressource backupPlan pour chaque cluster de base de données afin d'activer la sauvegarde continue pour ce cluster. Cette ressource de plan de sauvegarde définit les paramètres suivants :

  • Emplacement où l'opérateur AlloyDB Omni stocke les sauvegardes. Il peut s'agir d'un stockage local sur votre cluster Kubernetes ou dans un bucket Cloud Storage.

  • Une option permettant de définir plusieurs plannings de sauvegarde qui créent automatiquement des sauvegardes full, incremental et differential. Vous pouvez mettre en pause cette programmation à tout moment, y compris lorsque vous définissez initialement le plan de sauvegarde. Si un plan de sauvegarde est suspendu, les sauvegardes planifiées ne sont pas créées, mais vous pouvez toujours l'utiliser pour créer des sauvegardes manuellement.

    Si aucune programmation de sauvegarde n'est spécifiée, la valeur par défaut est "0 0 * * *", qui effectue une sauvegarde complète quotidienne à minuit, heure locale.

  • Période de conservation des sauvegardes stockées. Cette période peut durer entre un et 90 jours. La valeur par défaut est 14.

  • Vous pouvez effectuer des sauvegardes à partir de clusters Kubernetes principaux ou de secours en spécifiant respectivement la valeur primary ou standby pour le champ backupSourceStrategy. Pour améliorer les performances du cluster principal, déchargez les opérations de sauvegarde en les planifiant à partir d'un cluster de secours.

Votre cluster de bases de données peut comporter plusieurs plans de sauvegarde, chacun avec son propre nom et sa propre configuration. Si vous créez plusieurs ressources backupPlan avec des plannings de sauvegarde différents pour un cluster de bases de données, vous devez définir un emplacement de sauvegarde unique pour chaque ressource de sauvegarde.

Créer un plan pour stocker les sauvegardes en local

Pour activer les sauvegardes stockées localement, appliquez le fichier manifeste suivant :

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: BackupPlan
    metadata:
      name: BACKUP_PLAN_NAME
      namespace: NAMESPACE
    spec:
      dbclusterRef: DB_CLUSTER_NAME
      backupSchedules:
        full: "FULL_CRON_SCHEDULE"
        differential: "DIFF_CRON_SCHEDULE"
        incremental: "INCR_CRON_SCHEDULE"
      backupRetainDays: RETENTION_DAYS
      backupSourceStrategy: SOURCE_STRATEGY
      paused: PAUSED_BOOLEAN

Remplacez les éléments suivants :

  • BACKUP_PLAN_NAME : nom de cette ressource de plan de sauvegarde, par exemple backup-plan-1.

  • NAMESPACE : espace de noms Kubernetes pour ce plan de sauvegarde. Il doit correspondre à l'espace de noms du cluster de bases de données.

  • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.

  • FULL_CRON_SCHEDULE : un calendrier de sauvegarde pour créer une sauvegarde complète contenant toutes les données, exprimé au format cron. Par exemple, définissez la valeur sur "0 0 * * 0" pour effectuer une sauvegarde complète tous les dimanches à 00h00.

  • DIFF_CRON_SCHEDULE : un calendrier de sauvegarde pour créer des sauvegardes qui sont initialement des sauvegardes complètes. Les sauvegardes suivantes sont différentielles et basées sur les modifications apportées aux données entre-temps, exprimées au format cron. Par exemple, définissez la valeur sur "0 22 * * 3" pour effectuer une sauvegarde différentielle tous les mercredis à 22h.

  • INCR_CRON_SCHEDULE : un calendrier de sauvegarde permettant de créer des sauvegardes incluant les données qui ont été modifiées depuis la dernière sauvegarde complète, différentielle ou incrémentielle. Il est exprimé au format cron. Par exemple, définissez la valeur sur "0 21 * * *" pour effectuer une sauvegarde incrémentielle à 21h00 tous les jours.

  • RETENTION_DAYS : nombre de jours pendant lesquels l'opérateur AlloyDB Omni conserve cette sauvegarde. Il doit s'agir d'un nombre entier compris entre 1 et 90. La valeur par défaut est 14.

  • SOURCE_STRATEGY : détermine si les sauvegardes sont effectuées à partir du cluster Kubernetes principal ou de secours. La valeur par défaut est primary. Vous pouvez choisir parmi les valeurs suivantes :

    • primary : les sauvegardes sont effectuées à partir du cluster Kubernetes principal.

    • standby : les sauvegardes sont effectuées à partir du cluster Kubernetes de secours. Si aucune instance de secours n'est disponible lorsque le champ SOURCE_STRATEGY est défini sur standby, la sauvegarde est effectuée à partir du cluster Kubernetes principal.

  • PAUSED_BOOLEAN : indique si le plan de sauvegarde est mis en veille ou non. Indiquez l'une des valeurs suivantes :

    • true : les sauvegardes sont suspendues et aucune sauvegarde planifiée n'est créée.

    • false : l'opérateur AlloyDB Omni crée des sauvegardes selon la planification spécifiée par cronSchedule. Il s'agit de la valeur par défaut, sauf si elle est explicitement définie sur true.

    La valeur par défaut est false.

Créer un plan qui stocke les sauvegardes dans Cloud Storage

Pour activer les sauvegardes stockées dans Cloud Storage, procédez comme suit :

  1. Créer un bucket Cloud Storage Notez le nom que vous attribuez à ce bucket, car vous en aurez besoin lors d'une étape ultérieure.

  2. Créez un compte de service pour ajouter des sauvegardes au bucket.

  3. Attribuez le rôle Identity and Access Management storage.objectAdmin au compte de service.

  4. Créez une clé pour le compte de service. La clé privée est ainsi téléchargée dans votre environnement local.

  5. Renommez le fichier de clé téléchargé en key.json.

  6. Créez un secret Kubernetes contenant la clé privée :

    kubectl create secret generic SECRET_NAME --from-file=KEY_PATH -n NAMESPACE

    Remplacez les éléments suivants :

    • SECRET_NAME : nom du secret Kubernetes que vous créez (par exemple, gcs-key).

    • KEY_PATH : chemin d'accès au système de fichiers local du fichier key.json que vous avez téléchargé lors des étapes précédentes.

    • NAMESPACE : espace de noms du cluster de bases de données.

  7. Appliquez le fichier manifeste suivant :

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: BackupPlan
      metadata:
        name: BACKUP_PLAN_NAME
        namespace: NAMESPACE
      spec:
        dbclusterRef: DB_CLUSTER_NAME
        backupSchedules:
          full: "FULL_CRON_SCHEDULE"
          differential: "DIFF_CRON_SCHEDULE"
          incremental: "INCR_CRON_SCHEDULE"
        backupRetainDays: RETENTION_DAYS
        backupSourceStrategy: SOURCE_STRATEGY
        paused: PAUSED_BOOLEAN
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: BUCKET_URL
            key: BACKUP_PATH
            secretRef:
              name: SECRET_NAME
              namespace: NAMESPACE
    

    Remplacez les éléments suivants :

    • BACKUP_PLAN_NAME : nom de cette ressource de plan de sauvegarde, par exemple backup-plan-1.

    • NAMESPACE : espace de noms Kubernetes pour ce plan de sauvegarde. Il doit correspondre à l'espace de noms du cluster de bases de données.

    • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.

    • FULL_CRON_SCHEDULE : un calendrier de sauvegarde pour créer une sauvegarde complète contenant toutes les données, exprimé au format cron. Par exemple, définissez la valeur sur "0 0 * * 0" pour effectuer une sauvegarde complète tous les dimanches à 00h00.

    • DIFF_CRON_SCHEDULE : un calendrier de sauvegarde pour créer des sauvegardes qui sont initialement des sauvegardes complètes. Les sauvegardes suivantes sont différentielles et basées sur les modifications apportées aux données entre-temps, exprimées au format cron. Par exemple, définissez la valeur sur "0 22 * * 3" pour effectuer une sauvegarde différentielle tous les mercredis à 22h.

    • INCR_CRON_SCHEDULE : un calendrier de sauvegarde permettant de créer des sauvegardes incluant les données qui ont été modifiées depuis la dernière sauvegarde complète, différentielle ou incrémentielle. Il est exprimé au format cron. Par exemple, définissez la valeur sur "0 21 * * *" pour effectuer une sauvegarde incrémentielle à 21h00 tous les jours.

    • RETENTION_DAYS : nombre de jours pendant lesquels l'opérateur AlloyDB Omni conserve cette sauvegarde. Il doit s'agir d'un nombre entier compris entre 1 et 90. La valeur par défaut est 14.

    • SOURCE_STRATEGY : détermine si les sauvegardes sont effectuées à partir du cluster Kubernetes principal ou de secours. La valeur par défaut est primary. Vous pouvez choisir parmi les valeurs suivantes :

      • primary : les sauvegardes sont effectuées à partir du cluster Kubernetes principal.

      • standby : les sauvegardes sont effectuées à partir du cluster Kubernetes de secours. Si aucune instance de secours n'est disponible lorsque le champ SOURCE_STRATEGY est défini sur standby, la sauvegarde est effectuée à partir du cluster Kubernetes principal.

    • PAUSED_BOOLEAN : indique si le plan de sauvegarde est mis en veille ou non. Indiquez l'une des valeurs suivantes :

      • true : les sauvegardes sont suspendues et aucune sauvegarde planifiée n'est créée.

      • false : l'opérateur AlloyDB Omni crée des sauvegardes selon la planification spécifiée par cronSchedule. Il s'agit de la valeur par défaut, sauf si elle est explicitement définie sur true.

      La valeur par défaut est false.

    • BUCKET_URL : nom du bucket Cloud Storage que vous avez créé lors d'une étape précédente. Il ne s'agit pas de l'URL complète du bucket. Ne faites pas précéder le nom du bucket de gs://.

    • BACKUP_PATH : chemin d'accès au répertoire dans lequel l'opérateur AlloyDB Omni écrit les sauvegardes, dans le bucket Cloud Storage. Le chemin d'accès doit être absolu et commencer par /.

    • SECRET_NAME : nom que vous avez choisi pour le secret Kubernetes que vous avez créé à une étape précédente.

Créer des sauvegardes dans un espace de stockage compatible S3

Vous pouvez utiliser le champ s30options pour envoyer des sauvegardes à des points de terminaison compatibles S3.

Les étapes de la procédure suivante sont générales. Pour obtenir des instructions spécifiques à votre cas d'utilisation, consultez la documentation de votre fournisseur S3.

Pour activer les sauvegardes sur votre espace de stockage compatible S3, suivez ces étapes générales :

  1. Créez un bucket de stockage S3. Notez le nom que vous attribuez à ce bucket, car vous l'utiliserez dans une étape ultérieure.
  2. Pour accéder au bucket de stockage S3, créez un compte principal, par exemple un compte de service ou un utilisateur. Contactez votre fournisseur S3 pour savoir si vous devez accorder un rôle ou une stratégie prédéfinis au compte principal.
  3. Accordez un accès en lecture et en écriture au compte principal que vous avez créé à l'étape précédente. Cette étape vous permet de lire et d'écrire dans le bucket de stockage S3.
  4. Créez une clé d'accès pour le compte principal que vous avez créé. La clé d'accès comprend un ID de clé et une clé secrète. Cette opération télécharge la clé dans votre environnement local.
  5. Créez un secret Kubernetes contenant la clé :

    kubectl create secret generic SECRET_NAME --from-literal=access-key-id=KEY_ID --from-literal=access-key=KEY -n NAMESPACE

    Remplacez les éléments suivants :

    • SECRET_NAME : nom du secret Kubernetes que vous créez (par exemple, s3-key).
    • KEY_ID : ID de clé de votre clé d'accès.
    • KEY : clé secrète de votre clé d'accès.
    • NAMESPACE : espace dans lequel le nom du secret est conservé. Cette valeur doit être unique.
  6. Appliquez le fichier manifeste suivant :

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: BackupPlan
    metadata:
      name: BACKUP_PLAN_NAME
      namespace: NAMESPACE
    spec:
      dbclusterRef: DB_CLUSTER_NAME
      backupSchedules:
        full: "FULL_CRON_SCHEDULE"
        differential: "DIFF_CRON_SCHEDULE"
        incremental: "INCR_CRON_SCHEDULE"
      backupRetainDays: RETENTION_DAYS
      backupSourceStrategy: SOURCE_STRATEGY
      paused: PAUSED_BOOLEAN
      backupLocation:
        type: S3
        s3Options:
          bucket: BUCKET_NAME
          region: REGION
          endpoint: S3ENDPOINT
          key: BACKUP_PATH
          secretRef:
            namespace: NAMESPACE
            name: SECRET_NAME
          certRef:
            name: CA_BUNDLE_SECRET_NAME
            namespace: NAMESPACE
    

    Remplacez les éléments suivants :

    • BACKUP_PLAN_NAME : nom de cette ressource de plan de sauvegarde, par exemple backup-plan-1.
    • NAMESPACE : espace de noms Kubernetes pour ce plan de sauvegarde. L'espace de noms doit correspondre à celui du cluster de bases de données.
    • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.
    • FULL_CRON_SCHEDULE : programmation de sauvegarde permettant de créer une sauvegarde complète contenant toutes les données, exprimée au format cron. Par exemple, pour effectuer une sauvegarde complète à 00h00 tous les dimanches, définissez FULL_CRON_SCHEDULE sur
      0 0 * * 0.
    • DIFF_CRON_SCHEDULE : un planning de sauvegarde permettant de créer des sauvegardes qui sont initialement des sauvegardes complètes. Les sauvegardes suivantes sont différentielles et basées sur les modifications apportées aux données entre-temps, exprimées au format cron. Par exemple, pour effectuer une sauvegarde différentielle à 22h00 tous les mercredis, définissez la valeur sur 0 22 * * 3 .
    • INCR_CRON_SCHEDULE : un calendrier de sauvegarde permettant de créer des sauvegardes incluant les données qui ont été modifiées depuis la dernière sauvegarde complète, différentielle ou incrémentielle. Il est exprimé au format cron. Par exemple, pour effectuer une sauvegarde incrémentielle tous les jours à 21h, définissez cette option sur 0 21 * * * .
    • RETENTION_DAYS : nombre de jours pendant lesquels l'opérateur Kubernetes AlloyDB Omni conserve cette sauvegarde. Ce paramètre doit être un nombre entier compris entre 1 et 90. La valeur par défaut est 14.
    • SOURCE_STRATEGY : détermine si les sauvegardes sont effectuées à partir du cluster Kubernetes principal ou de secours. La valeur par défaut est primary. Vous pouvez choisir parmi les valeurs suivantes :
      • primary : les sauvegardes sont effectuées à partir du cluster Kubernetes principal.
      • standby : les sauvegardes sont effectuées à partir du cluster Kubernetes de secours. Si aucune instance de secours n'est disponible lorsque le champ SOURCE_STRATEGY est défini sur standby, la sauvegarde est effectuée à partir du cluster Kubernetes principal.
    • PAUSED_BOOLEAN : indique si le plan de sauvegarde est suspendu ou non. Indiquez l'une des valeurs suivantes :
      • true : les sauvegardes sont suspendues et aucune sauvegarde planifiée n'est créée.
      • false : valeur par défaut. L'opérateur AlloyDB Omni crée des sauvegardes selon le calendrier spécifié par cronSchedule. Il s'agit de la valeur par défaut, sauf si elle est explicitement définie sur true.
    • BUCKET_NAME : nom du bucket de stockage S3 que vous avez créé. Le nom du bucket n'est pas l'URL complète du bucket. Ne faites pas précéder le nom du bucket par gs://.
    • REGION : région où le bucket S3 est stocké.
    • S3ENDPOINT : point de terminaison du bucket de stockage S3.
    • BACKUP_PATH : chemin d'accès au répertoire dans lequel l'opérateur AlloyDB Omni écrit les sauvegardes, dans le bucket de stockage S3. Le chemin d'accès doit être absolu et commencer par /.
    • NAMESPACE : espace dans lequel le nom du secret doit être unique.
    • SECRET_NAME : nom que vous avez choisi pour le secret Kubernetes que vous avez créé.
    • CA_BUNDLE_SECRET_NAME : pool de certificats CA encodés au format PEM que le serveur S3 utilise pour valider le certificat. Assurez-vous que le bundle est inclus dans le secret sous une clé nommée ca.crt.

      L'exemple suivant montre comment créer un secret contenant le certificat, où PEM_FILE_PATH correspond au chemin d'accès au fichier du bundle ca :

      kubectl create secret generic CA_BUNDLE_SECRET_NAME -n NAMESPACE --from-file=ca.crt=PEM_FILE_PATH
      

Créer manuellement une sauvegarde

Vous pouvez créer manuellement une ressource de sauvegarde à tout moment, en utilisant n'importe quel plan de sauvegarde que vous avez déjà appliqué à un cluster de bases de données. L'opérateur AlloyDB Omni applique l'emplacement de stockage et la période de conservation du plan de sauvegarde choisi à la nouvelle sauvegarde manuelle.

Pour créer manuellement une sauvegarde à partir d'un cluster Kubernetes principal ou de secours, vous devez spécifier l'instance de base de données source pour la sauvegarde à l'aide du champ backupSourceRole et appliquer le fichier manifeste suivant :

apiVersion: alloydbomni.dbadmin.goog/v1
kind: Backup
metadata:
  name: BACKUP_NAME
  namespace: NAMESPACE
spec:
  dbclusterRef: DB_CLUSTER_NAME
  backupPlanRef: BACKUP_PLAN_NAME
  manual: true
  backupSourceRole: SOURCE_ROLE
  physicalBackupSpec:
    backupType: BACKUP_TYPE

Remplacez les éléments suivants :

  • BACKUP_NAME : nom de cette sauvegarde, par exemple backup-1.

  • NAMESPACE : espace de noms Kubernetes de cette restauration. Il doit correspondre à l'espace de noms du cluster de bases de données.

  • BACKUP_PLAN_NAME : nom de la ressource de plan de sauvegarde à laquelle appartient cette sauvegarde. Il doit correspondre au nom que vous avez choisi lorsque vous avez créé le plan de sauvegarde.

  • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.

  • SOURCE_ROLE : spécifie le rôle de l'instance de base de données source à partir de laquelle la sauvegarde manuelle est effectuée. La valeur par défaut est primary. Vous pouvez choisir l'une des valeurs suivantes :

    • primary : configurez la sauvegarde à partir du cluster Kubernetes principal.
    • standby : configurez la sauvegarde à partir du cluster Kubernetes de secours.
  • BACKUP_TYPE : spécifie le type de sauvegarde manuelle que vous souhaitez créer. Choisissez l'une des valeurs suivantes :

    • full : crée une sauvegarde complète contenant toutes les données.

    • diff : crée une sauvegarde différentielle qui dépend de la dernière sauvegarde complète. Les sauvegardes suivantes sont différentielles et basées sur les modifications apportées aux données entre-temps.

    • incr : crée une sauvegarde incrémentielle qui dépend de la sauvegarde complète ou différentielle précédente pour inclure les données qui ont été modifiées depuis la dernière sauvegarde complète ou différentielle.

Surveiller et lister les sauvegardes

Vos plans de sauvegarde et vos sauvegardes sont tous des ressources de votre cluster Kubernetes. Pour afficher des informations à leur sujet, utilisez la commande kubectl get.

Afficher le récapitulatif d'un plan de sauvegarde

Pour afficher des informations sur les plans de sauvegarde de votre cluster de bases de données, exécutez la commande suivante :

kubectl get backupplan.alloydbomni.dbadmin.goog -n NAMESPACE

Remplacez NAMESPACE par l'espace de noms du cluster de bases de données.

Le résultat se présente comme suit :

NAME               PHASE   LASTBACKUPTIME         NEXTBACKUPTIME
backup-plan-prod   Ready   2023-10-26T17:26:43Z   2023-10-27T00:00:00Z

Afficher la liste des sauvegardes

Pour afficher la liste des sauvegardes disponibles pour votre cluster de bases de données, exécutez la commande suivante :

kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE

Remplacez NAMESPACE par l'espace de noms du cluster de bases de données.

Le résultat se présente comme suit :

NAME                              PHASE       COMPLETETIME
backup-plan-prod-20231026172643   Succeeded   2023-10-26T17:26:53Z
manual-backup-1                   Succeeded   2023-10-26T18:15:27Z
manual-backup-2                   InProgress

Chaque ligne du tableau de sortie représente une ressource de sauvegarde, avec les attributs suivants :

  • Nom de la sauvegarde.
  • État de la sauvegarde. Succeeded indique qu'une sauvegarde est prête à être restaurée.
  • Code temporel de la création de la sauvegarde.

Restaurer à partir d'une sauvegarde

AlloyDB vous permet de restaurer des sauvegardes individuelles ou de cloner un cluster à l'aide d'une sauvegarde à un moment précis.

Restaurer à partir d'une sauvegarde nommée

Pour restaurer une sauvegarde et remplacer les données de votre cluster de base de données par celles de la sauvegarde, procédez comme suit.

  1. Répertoriez toutes les sauvegardes dont la phase est Succeeded.

    kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE | grep Succeeded

    Remplacez NAMESPACE par l'espace de noms du cluster de bases de données.

    Si au moins une bonne sauvegarde candidate existe, le résultat ressemble à ce qui suit :

    backup-plan-prod-20231026172643   Succeeded   2023-10-26T17:26:53Z
    manual-backup-1                   Succeeded   2023-10-26T18:15:27Z
    
  2. Choisissez l'une des sauvegardes listées à l'étape précédente comme sauvegarde à partir de laquelle effectuer la restauration. Notez son nom, car vous l'utiliserez à l'étape suivante.

  3. Appliquez le fichier manifeste suivant :

      apiVersion: alloydbomni.dbadmin.goog/v1
      kind: Restore
      metadata:
        name: RESTORE_NAME
        namespace: NAMESPACE
      spec:
        sourceDBCluster: DB_CLUSTER_NAME
        backup: BACKUP_NAME
    

    Remplacez les éléments suivants :

    • RESTORE_NAME : nom à utiliser avec la ressource de restauration de données que ce fichier manifeste crée, par exemple restore-1.

    • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.

    • BACKUP_NAME : nom de la sauvegarde que vous avez choisie à l'étape précédente.

Cloner un cluster à partir d'un moment précis

L'opérateur AlloyDB Omni vous permet de cloner les données d'un cluster à partir de n'importe quel moment de la période de récupération. La durée de la période de récupération est directement déterminée par la durée de conservation.

Par exemple, si votre période de conservation est définie sur 14 jours, vous ne pouvez pas récupérer les données de plus de 14 jours. Vous pouvez effectuer une restauration à n'importe quel moment pendant la période de récupération. L'opérateur AlloyDB Omni conserve les sauvegardes et les journaux pendant un jour de plus que la valeur spécifiée.

  1. Surveillez votre période de récupération pour identifier le point de restauration :

    kubectl get backupplan.alloydbomni.dbadmin.goog BACKUP_NAME -n NAMESPACE -o json | jq .status.recoveryWindow
    

    Voici un exemple de réponse :

    recoveryWindow:
    begin: "2024-01-31T02:54:35Z"
    

    La valeur du code temporel au format RFC 3339 est utilisée dans la ressource de restauration.

  2. Créez et appliquez le fichier manifeste de ressource de restauration suivant :

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: Restore
    metadata:
      name: RESTORE_NAME
      namespace: NAMESPACE
    spec:
      sourceDBCluster: DB_CLUSTER_NAME
      pointInTime: "DATE_AND_TIME_STAMP"
      clonedDBClusterConfig:
        dbclusterName: NEW_DB_CLUSTER_NAME
    

    Remplacez les éléments suivants :

    • RESTORE_NAME : nom à utiliser avec la ressource de restauration de données que ce fichier manifeste crée, par exemple restore-1.

    • DB_CLUSTER_NAME : nom de votre cluster de bases de données, que vous avez attribué lors de sa création.

    • DATE_AND_TIME_STAMP : code temporel RFC 3339 à la minute près de la sauvegarde continue à partir de laquelle vous souhaitez effectuer la restauration (par exemple, 2024-03-05T15:32:10Z).

    • NEW_DB_CLUSTER_NAME : nom du nouveau cluster de bases de données.

Afficher l'état de la restauration

  1. Affichez la progression de l'opération de restauration :

    kubectl get restore.alloydbomni.dbadmin.goog -n NAMESPACE

    Remplacez NAMESPACE par l'espace de noms du cluster de bases de données.

    Pour exécuter la commande en continu, ajoutez l'option -Aw.

    Le résultat se présente comme suit :

    NAME        PHASE               COMPLETETIME   RESTOREDPOINTINTIME
    restore-1   RestoreInProgress
    

    Lorsque la valeur de la colonne PHASE dans le tableau de sortie est ProvisionSucceeded, la restauration est terminée.

  2. Affichez la progression de la mise en ligne du cluster de bases de données restauré ou cloné :

    kubectl get dbclusters -A -n NAMESPACE

    Remplacez NAMESPACE par l'espace de noms du cluster de bases de données.

    Pour exécuter la commande en continu, ajoutez l'option -Aw.

    Le résultat se présente comme suit :

    NAMESPACE   NAME               PRIMARYENDPOINT   PRIMARYPHASE   DBCLUSTERPHASE
    default     db-cluster-1       10.128.0.55       Ready          DBClusterReady
    

    Lorsque la valeur de la colonne DBCLUSTERPHASE dans le tableau de sortie est DBClusterReady, le cluster de bases de données restauré ou cloné est prêt à être utilisé.

Supprimer une sauvegarde

En général, vous n'avez pas besoin de supprimer manuellement les sauvegardes. L'opérateur AlloyDB Omni supprime automatiquement les sauvegardes antérieures à la période de conservation que vous spécifiez lorsque vous créez un plan de sauvegarde.

Si vous souhaitez supprimer manuellement une sauvegarde, celle-ci doit répondre aux exigences suivantes :

  • La sauvegarde n'est pas la seule sauvegarde stockée pour son plan de sauvegarde. L'opérateur AlloyDB Omni exige qu'au moins une sauvegarde existe par plan de sauvegarde.

  • Aucune autre sauvegarde ne dépend de celle-ci. Par exemple, une sauvegarde complète avec des sauvegardes différentielles ou incrémentielles qui en dépendent, ou une sauvegarde incrémentielle avec des sauvegardes différentielles qui en dépendent.

Pour supprimer une sauvegarde, exécutez la commande suivante :

kubectl delete backup.alloydbomni.dbadmin.goog/BACKUP_NAME -n NAMESPACE

Remplacez les éléments suivants :

  • BACKUP_NAME : nom de la sauvegarde à supprimer.

  • NAMESPACE : espace de noms du cluster de bases de données.

Redimensionner un disque de sauvegarde

Pour redimensionner le disque local qui stocke vos sauvegardes dans le cluster Kubernetes, procédez comme suit :

  1. Mettez à jour le champ resources.disks du fichier manifeste DBCluster comme suit :

    spec:
      primarySpec:
        resources:
          disks:
            - name: BACKUP_DISK
              size: 10Gi
    

    Remplacez BACKUP_DISK par le nom du disque sur lequel sont stockées vos sauvegardes.

  2. Appliquez le fichier manifeste pour forcer la mise à jour.

    L'opérateur AlloyDB Omni applique immédiatement les spécifications mises à jour à votre DBCluster.

Les restrictions suivantes s'appliquent à la modification du disque de sauvegarde d'un cluster de bases de données en cours d'exécution :

  • Vous ne pouvez augmenter la taille d'un disque que si le storageClass spécifié est compatible avec l'expansion de volume.
  • mais pas la réduire.

Mettre à jour un plan de sauvegarde

Chaque forfait de sauvegarde est une ressource Kubernetes. Pour mettre à jour sa configuration, effectuez l'une des opérations suivantes :

  • Modifiez et réappliquez le fichier manifeste du plan de sauvegarde.

  • Exécutez la commande kubectl patch.

Par exemple, pour suspendre un plan de sauvegarde en cours d'exécution, remplacez l'attribut paused de son fichier manifeste par true, puis réappliquez le fichier manifeste.

Supprimer un plan de sauvegarde

Pour supprimer un plan de sauvegarde et toutes ses ressources de sauvegarde, exécutez la commande suivante :

kubectl delete backupplan.alloydbomni.dbadmin.goog/BACKUP_PLAN_NAME -n NAMESPACE

Remplacez les éléments suivants :

  • BACKUP_PLAN_NAME : nom du plan de sauvegarde à supprimer.

  • NAMESPACE : espace de noms du cluster de bases de données.

Pour mettre en veille un plan de sauvegarde sans le supprimer, définissez l'attribut paused de la ressource du plan de sauvegarde sur true. Un plan de sauvegarde suspendu continue de stocker les sauvegardes et permet la création manuelle de sauvegardes.