Effectuer une sauvegarde et une récupération pour SAP HANA à l'aide d'instantanés de disque

Ce guide explique comment effectuer des opérations de sauvegarde et de récupération pour SAP HANA à l'aide de la fonctionnalité d'instantané de disque de l'agent Google Cloud pour SAP.

Pour en savoir plus sur cette fonctionnalité, consultez la page Sauvegarde et récupération basées sur des instantanés de disque pour SAP HANA.

Avant de commencer

Définir des autorisations

Pour utiliser l'agent Google Cloud pour SAP afin d'effectuer une sauvegarde et une récupération basées sur des instantanés de disque pour votre système SAP HANA, vous devez définir les autorisations suivantes :

  • Pour créer des instantanés de disque, activez les autorisations IAM suivantes :
    • Pour le projet Google Cloud dans lequel votre système SAP HANA s'exécute, activez l'autorisation compute.snapshots.create.
    • Pour le compte de service utilisé par votre instance de VM Compute Engine, activez les autorisations suivantes : compute.disks.createSnapshot, compute.snapshot.list et compute.disk.list.
  • Pour créer des sauvegardes basées sur des instantanés de disque, l'utilisateur de la base de données SAP HANA utilisé par l'agent doit disposer du droit BACKUP OPERATOR ou BACKUP ADMIN. Pour en savoir plus, consultez le document SAP Autorisations requises pour la sauvegarde et la récupération.
  • Pour effectuer les opérations de sauvegarde et de récupération, l'utilisateur du système d'exploitation qui exécute les commandes de l'agent doit être l'utilisateur root ou disposer d'un accès sudo pour exécuter les commandes suivantes. Vous pouvez également accorder un accès sudo en créant un groupe dans votre répertoire /etc/sudoers.d, par exemple :

    %sapagent_snapshot_sudoers ALL=(ALL:ALL) NOPASSWD:/sbin/lvdisplay, /sbin/vgscan, /sbin/dmsetup, /sbin/lvscan, /usr/sbin/xfs_freeze, /usr/bin/google_cloud_sap_agent

Créer une sauvegarde basée sur un instantané de disque

  • Pour créer une sauvegarde basée sur un instantané de disque pour le volume /hana/data de votre base de données SAP HANA, exécutez la commande hanadiskbackup de l'agent Google Cloud pour SAP :

    sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \
        -project=DESTINATION_PROJECT_ID \
        -host=HANA_HOST_ADDRESS \
        -port=HANA_PORT_NUMBER \
        -sid=SID \
        -hana-db-user=HANA_USERNAME \
        -password-secret=HANA_USER_PWD_SECRET_NAME \
        -hdbuserstore-key=HDB_USERSTORE_KEY \
        [-source-disk=SOURCE_DISK_NAME \
        -source-disk-zone=SOURCE_DISK_ZONE]

    Remplacez les éléments suivants :

    • DESTINATION_PROJECT_ID : ID du projet Google Cloud dans lequel vous souhaitez créer l'instantané de disque.
    • HANA_HOST_ADDRESS : nom d'hôte ou adresse IP de l'instance de VM Compute Engine qui héberge votre base de données SAP HANA

      Dans un système à haute disponibilité, spécifiez le nom d'hôte ou l'adresse IP de l'hôte local dans le nœud SAP HANA principal. N'utilisez pas l'adresse IP virtuelle utilisée dans le cluster pour identifier le nœud principal. Dans un déploiement de reprise après sinistre, spécifiez le nom d'hôte ou l'adresse IP de l'hôte local dans l'instance SAP HANA principale.

    • HANA_PORT_NUMBER : port SAP HANA qui accepte les requêtes de sauvegarde et de récupération

    • SID : identifiant système SAP (SID) de votre système SAP HANA

    • HANA_USERNAME : nom d'utilisateur de la base de données SAP HANA avec lequel vous souhaitez créer la sauvegarde

    • HANA_USER_PWD_SECRET_NAME : si vous utilisez Secret Manager pour stocker le mot de passe de l'utilisateur de la base de données SAP HANA, spécifiez le nom du secret correspondant.

    • HDB_USERSTORE_KEY: si vous avez créé une clé hdbuserstore pour authentifier l'utilisateur SAP HANA spécifié, spécifiez cette clé.

    • SOURCE_DISK_NAME : nom du volume de disque persistant ou d'hyperdisque qui héberge le volume /hana/data.

    • SOURCE_DISK_ZONE : nom de la zone dans laquelle le disque hébergeant le volume /hana/data est déployé.

    Le tableau suivant décrit les arguments acceptés par la commande hanadiskbackup :

    Argument Description
    -port Spécifiez le port SAP HANA qui accepte les requêtes de sauvegarde et de récupération.
    -sid Spécifiez l'identifiant système SAP (SID) de votre système SAP HANA.
    -hana-db-user Spécifiez le nom d'utilisateur de la base de données SAP HANA avec lequel vous souhaitez créer la sauvegarde.
    -password

    Spécifiez le mot de passe de l'utilisateur de la base de données SAP HANA que vous utilisez pour créer la sauvegarde.

    Ne spécifiez pas cet argument si vous utilisez l'argument -password-secret ou -hdbuserstore-key. Nous vous recommandons d'utiliser l'un de ces éléments plutôt que -password.

    -password-secret

    Facultatif. Si vous utilisez Secret Manager pour stocker le mot de passe de l'utilisateur de la base de données SAP HANA, spécifiez le nom du secret correspondant.

    Dans Secret Manager, assurez-vous que la valeur du secret, qui correspond au mot de passe, contient au moins huit caractères et au moins une lettre majuscule, une lettre minuscule et un chiffre.

    Ne spécifiez pas cet argument si vous utilisez l'argument -password.

    -hdbuserstore-key

    Pour authentifier l'utilisateur SAP HANA que vous spécifiez pour -hana-db-user, spécifiez une clé hdbuserstore que vous avez créée pour cet utilisateur.

    Pour utiliser une clé hdbuserstore pour l'authentification, assurez-vous de remplir les conditions suivantes :

    • Les outils SAP hdbsql et hdduserstore sont installés sur l'instance de calcul qui héberge l'agent.
    • La clé hdbuserstore correspond à une instance SAP HANA spécifique. Vous ne pouvez pas utiliser de clés contenant les noms d'hôte de plusieurs instances SAP HANA.

    Si vous spécifiez -hdbuserstore-key, vous pouvez ignorer les arguments -host et -port.

    -host Facultatif. Spécifiez l'adresse IP de l'instance de VM Compute Engine qui héberge votre système SAP HANA. La valeur par défaut est localhost.
    -project Facultatif. Spécifiez l'ID du projet Google Cloud dans lequel vous souhaitez créer l'instantané de disque. Par défaut, l'instantané est créé dans le projet Google Cloud sur lequel votre système SAP HANA est exécuté.
    -abandon-prepared Facultatif. Indique si les instantanés de disque existants doivent être ignorés ou non. La valeur par défaut est false.
    -snapshot-name

    Facultatif. Spécifiez le nom de l'instantané de disque que vous créez.

    Par défaut, l'instantané est nommé au format suivant : snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.

    -source-disk Spécifiez le nom du volume de disque persistant ou d'hyperdisque qui héberge votre volume /hana/data.
    -source-disk-zone Spécifiez la zone où se trouve le disque hébergeant le volume /hana/data.
    -source-disk-key-file Facultatif. Si le disque hébergeant le volume /hana/data est chiffré par une clé de chiffrement encapsulée en RSA fournie par le client, spécifiez le chemin absolu du fichier JSON correspondant à cette clé.

    Cet argument est compatible avec la version 3.2 de l'agent.

    -storage-location Facultatif. Spécifiez l'emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané de disque.
    -snapshot-description Facultatif. Spécifiez une description pour l'instantané de disque.
    -labels Facultatif. Indiquez une ou plusieurs paires étiquette/valeur à associer à l'instantané de disque que vous créez. Exemple : -labels="label1=value1,label2=value2".
    -send-metrics-to-monitoring Facultatif. Spécifie si l'état d'exécution de la création d'instantané est envoyé à Cloud Monitoring. La valeur par défaut est TRUE.
    -loglevel Facultatif. Spécifiez le niveau de journalisation pour l'opération de création d'instantané. Le niveau de journalisation par défaut est info. Les niveaux de journalisation disponibles sont les suivants : debug, info, warn et error.

Vérifier l'instantané de disque

Vous pouvez vérifier que l'instantané de disque a bien été créé à l'aide des options suivantes :

  • Dans la console Google Cloud, accédez à la page Instantanés de Compute Engine, puis filtrez les entrées à l'aide du nom du disque ou de l'instantané.

    Accéder à la page Instantanés

  • Vous pouvez également afficher les détails de l'instantané de disque dans le fichier journal suivant de l'agent Google Cloud pour SAP :

    /var/log/google-cloud-sap-agent/hanadiskbackup.log

Consulter le catalogue de sauvegardes SAP HANA

En plus de créer l'instantané de disque, la commande hanadiskbackup crée une entrée pour l'instantané dans votre catalogue de sauvegarde SAP HANA. Voici un exemple de requête SQL permettant d'afficher les entrées d'instantané de disque dans le catalogue de sauvegarde SAP HANA :

SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot'

Le résultat ressemble à celui de l'exemple ci-dessous.

BACKUP_ID,STATE_NAME,COMMENT
BACKUP_ID,"successful","snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMMSS"

Ce résultat inclut les valeurs suivantes :

  • BACKUP_ID : ID de sauvegarde attribué à l'instantané de disque dans votre catalogue de sauvegarde SAP HANA
  • SOURCE_DISK_NAME : nom du disque hébergeant votre volume /hana/data pour lequel vous avez créé un instantané.
  • YYYYMMDD-HHMMMSS : date et l'heure de création de l'instantané de disque

Effectuer une récupération à l'aide d'un instantané de disque

Pour effectuer une récupération basée sur un instantané de disque à l'aide de l'agent Google Cloud pour SAP, consultez les instructions correspondant à votre scénario :

Récupérer la base de données pour un système avec scaling à la hausse

Pour récupérer la base de données d'un système SAP HANA à scaling à la hausse déployé sur Google Cloud, procédez comme suit :

  1. Récupérez le disque hébergeant le volume /hana/data en exécutant la commande hanadiskrestore de l'agent :

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Remplacez les éléments suivants :

    • SOURCE_PROJECT_ID : ID du projet Google Cloud dans lequel se trouve l'instantané de disque
    • SID : identifiant système SAP (SID) de votre système SAP HANA
    • SOURCE_SNAPSHOT_NAME : nom de l'instantané de disque à l'aide duquel vous créez le disque.
    • SOURCE_DISK_NAME : nom du disque source qui héberge votre volume /hana/data.
    • SOURCE_DISK_ZONE : nom de la zone dans laquelle le disque source est déployé.

    Pour en savoir plus sur les arguments que vous pouvez utiliser avec la commande hanadiskrestore, consultez la section Arguments compatibles avec la restauration de disque.

  2. Récupérez votre base de données SAP HANA à l'aide de l'option requise :

    Rétablir selon la date et l'heure de l'instantané

    Pour récupérer votre base de données SAP HANA en la restaurant à l'heure de création de l'instantané de disque, procédez comme suit :

    1. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    2. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    4. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Remplacez TENANT_SID par le SID de la base de données locataire.

    Récupérer à un moment spécifique

    Pour récupérer votre base de données SAP HANA en la restaurant à un moment spécifique, procédez comme suit :

    1. Vérifiez que vous avez créé une sauvegarde du volume /hana/log dans Cloud Storage à l'aide de la fonctionnalité Backint de l'agent Google Cloud pour SAP. Pour en savoir plus sur cette fonctionnalité, consultez la page Sauvegarde et récupération basées sur Backint pour SAP HANA.
    2. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    3. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    5. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Remplacez TENANT_SID par le SID de la base de données locataire.

Arguments compatibles avec la restauration de disque

Le tableau suivant décrit les arguments acceptés par la commande hanadiskrestore de l'agent :

Argument Description
-sid Spécifiez l'identifiant système SAP (SID) de votre système SAP HANA.
-data-disk-name Spécifiez le nom du disque source qui héberge le volume /hana/data.
-data-disk-zone Spécifiez la zone dans laquelle le disque source qui héberge le volume /hana/data est déployé.
-source-snapshot Indiquez le nom de l'instantané de disque à l'aide duquel vous souhaitez récupérer le disque hébergeant votre volume de données SAP HANA.
-new-disk-name Spécifiez le nom que vous souhaitez définir pour le nouveau disque.
-project Facultatif. Spécifiez l'ID du projet Google Cloud dans lequel se trouve l'instantané de disque source. Par défaut, l'instantané est créé dans le projet Google Cloud où votre système SAP HANA est en cours d'exécution.
-csek-key-file Facultatif. Si vous avez chiffré l'instantané du disque source en utilisant l'argument -source-disk-key-file avec la commande hanadiskbackup, spécifiez le chemin absolu du fichier JSON de la clé de chiffrement fournie par le client au format RSA encapsulé, qui correspond à l'instantané du disque source. Voici un exemple de fichier de clé :
[
  {
    "uri": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME",
    "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==",
    "key-type": "rsa-encrypted"
  }
]

Cet argument est compatible avec la version 3.2 de l'agent.

-new-disk-type

Facultatif. Spécifiez le type de disque persistant ou d'hyperdisque que vous souhaitez créer. Par défaut, le nouveau disque est du même type que le disque source.

Veillez à spécifier un type de disque basé sur SSD certifié par SAP pour une utilisation avec SAP HANA. Pour en savoir plus, consultez la page Types de disques acceptés.

-hana-sidadm Facultatif. Spécifiez SIDadm, c'est-à-dire l'utilisateur du système d'exploitation de votre système SAP HANA.
-force-stop-hana Facultatif. Si vous souhaitez forcer l'arrêt de SAP HANA avant de lancer l'opération de récupération, spécifiez cet argument et définissez sa valeur sur true. La valeur par défaut est false.
-provisioned-iops Facultatif. Si vous créez un volume Hyperdisk, spécifiez les IOPS (opérations d'entrée/sortie par seconde) qu'il doit gérer.
-provisioned-throughput Facultatif. Si vous créez un volume Hyperdisk, spécifiez le débit qu'il doit accepter.
-disk-size-gb

Facultatif. Spécifiez la taille du nouveau disque, en Go. Par défaut, le nouveau disque a la même taille que le disque existant.

La taille du nouveau disque ne doit pas être inférieure à celle du disque existant.

-loglevel Facultatif. Spécifiez le niveau de journalisation pour toutes les actions effectuées par la commande hanadiskrestore. Le niveau de journalisation par défaut est info. Les niveaux de journalisation disponibles sont les suivants : debug, info, warn et error.

Récupérer la base de données pour un système à haute disponibilité avec scaling à la hausse

Pour récupérer la base de données d'un système SAP HANA à scaling à la hausse déployé dans un cluster à haute disponibilité sur Google Cloud, procédez comme suit :

  1. Vérifiez que vous disposez d'un instantané du disque hébergeant le volume /hana/data dans votre nœud SAP HANA principal.

  2. En tant qu'utilisateur racine, passez le cluster à haute disponibilité en mode de maintenance. Si vous utilisez Pacemaker, exécutez la commande suivante :

    RHEL

    pcs property set maintenance-mode=true

    SLES

    crm configure property maintenance-mode=true
  3. Arrêtez vos instances de base de données SAP HANA en exécutant la commande suivante sur le nœud principal et le nœud de secours de votre cluster à haute disponibilité :

    HDB stop
  4. Basculez vers le nœud principal de votre système SAP HANA à haute disponibilité.

  5. Récupérez le disque hébergeant le volume /hana/data en exécutant la commande hanadiskrestore de l'agent :

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Remplacez les éléments suivants :

    • SOURCE_PROJECT_ID : ID du projet Google Cloud dans lequel se trouve l'instantané de disque
    • SID : identifiant système SAP (SID) de votre système SAP HANA
    • SOURCE_SNAPSHOT_NAME : nom de l'instantané de disque à l'aide duquel vous créez le disque.
    • SOURCE_DISK_NAME : nom du disque source qui héberge votre volume /hana/data.
    • SOURCE_DISK_ZONE : nom de la zone dans laquelle le disque source est déployé.

    Pour en savoir plus sur les arguments que vous pouvez utiliser avec la commande hanadiskrestore, consultez la section Arguments compatibles avec la restauration de disque.

  6. Annulez l'enregistrement du nœud secondaire de votre système SAP HANA à haute disponibilité :

    hdbnsutil -sr_unregister
  7. Sur le nœud principal de votre système SAP HANA à haute disponibilité, désactivez la réplication du système SAP HANA :

    hdbnsutil -sr_disable
  8. Sur le nœud principal, récupérez votre base de données SAP HANA à l'aide de l'option requise :

    Rétablir selon la date et l'heure de l'instantané

    Pour récupérer votre base de données SAP HANA en la restaurant à l'heure de création de l'instantané de disque, procédez comme suit :

    1. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    2. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    4. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Remplacez TENANT_SID par le SID de la base de données locataire.

    Récupérer à un moment spécifique

    Pour récupérer votre base de données SAP HANA en la restaurant à un moment spécifique, procédez comme suit :

    1. Vérifiez que vous avez créé une sauvegarde du volume /hana/log dans Cloud Storage à l'aide de la fonctionnalité Backint de l'agent Google Cloud pour SAP. Pour en savoir plus sur cette fonctionnalité, consultez la page Sauvegarde et récupération basées sur Backint pour SAP HANA.
    2. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    3. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    5. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Remplacez TENANT_SID par le SID de la base de données locataire.

  9. Sur le nœud principal, activez la réplication du système SAP HANA :

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  10. Réenregistrez le nœud de secours auprès du nœud principal :

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  11. Vérifiez que la base de données du nœud de secours est entièrement synchronisée avec la base de données du nœud principal.

  12. En tant qu'utilisateur racine, quittez le mode de maintenance du cluster à haute disponibilité. Si vous utilisez Pacemaker, exécutez la commande suivante :

    RHEL

    pcs property set maintenance-mode=false

    SLES

    crm configure property maintenance-mode=false

Récupérer la base de données pour un déploiement de reprise après sinistre avec scaling à la hausse

Pour récupérer la base de données d'un système SAP HANA à scaling à la hausse déployé avec une solution de reprise après sinistre sur Google Cloud, procédez comme suit :

  1. Arrêtez vos bases de données SAP HANA en exécutant la commande suivante sur les instances principale et de secours du déploiement de reprise après sinistre :

    HDB stop
  2. Basculez vers l'instance principale de votre déploiement de reprise après sinistre SAP HANA.

  3. Récupérez le disque hébergeant le volume /hana/data en exécutant la commande hanadiskrestore de l'agent :

    sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
        -project=SOURCE_PROJECT_ID \
        -sid=SID \
        -source-snapshot=SOURCE_SNAPSHOT_NAME \
        -data-disk-name=SOURCE_DISK_NAME \
        -data-disk-zone=SOURCE_DISK_ZONE \
        -new-disk-type=NEW_DISK_TYPE \
        -new-disk-name=NEW_DISK_NAME

    Remplacez les éléments suivants :

    • SOURCE_PROJECT_ID : ID du projet Google Cloud dans lequel se trouve l'instantané de disque
    • SID : identifiant système SAP (SID) de votre système SAP HANA
    • SOURCE_SNAPSHOT_NAME : nom de l'instantané de disque à l'aide duquel vous créez le disque.
    • SOURCE_DISK_NAME : nom du disque source qui héberge votre volume /hana/data.
    • SOURCE_DISK_ZONE : nom de la zone dans laquelle le disque source est déployé.

    Pour plus d'informations sur les arguments que vous pouvez utiliser avec la commande hanadiskrestore, consultez la page Arguments acceptés pour la restauration de disque.

  4. Sur l'instance principale, désactivez la réplication du système SAP HANA :

    hdbnsutil -sr_disable
  5. Sur l'instance principale, récupérez votre base de données SAP HANA à l'aide de l'option requise :

    Rétablir selon la date et l'heure de l'instantané

    Pour récupérer votre base de données SAP HANA en la restaurant à l'heure de création de l'instantané de disque, procédez comme suit :

    1. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    2. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    4. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Remplacez TENANT_SID par le SID de la base de données locataire.

    Récupérer à un moment spécifique

    Pour récupérer votre base de données SAP HANA en la restaurant à un moment spécifique, procédez comme suit :

    1. Vérifiez que vous avez créé une sauvegarde du volume /hana/log dans Cloud Storage à l'aide de la fonctionnalité Backint de l'agent Google Cloud pour SAP. Pour en savoir plus sur cette fonctionnalité, consultez la page Sauvegarde et récupération basées sur Backint pour SAP HANA.
    2. Passez à l'utilisateur SIDadm :
      su - SID_LCadm

      Remplacez SID_LC par le SID de votre système SAP HANA. Utilisez des minuscules pour toutes les lettres.

    3. Récupérez la base de données système en exécutant la commande suivante :
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Remplacez les éléments suivants :

      • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
      • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
    5. Récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Remplacez TENANT_SID par le SID de la base de données locataire.

  6. Sur l'instance principale, activez la réplication du système SAP HANA :

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  7. Enregistrez l'instance de secours avec l'instance principale :

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  8. Vérifiez que la base de données de l'instance de secours est entièrement synchronisée avec la base de données de l'instance principale.

Effectuer une copie du système ou une actualisation du système

Pour utiliser une sauvegarde basée sur un instantané de disque d'un système SAP HANA afin d'effectuer une récupération dans un autre système SAP HANA, procédez comme suit :

  1. Dans le système source, créez une sauvegarde basée sur un instantané en exécutant la commande hanadiskbackup de l'agent. Pour obtenir des instructions, consultez la section Créer une sauvegarde basée sur un instantané de disque.
  2. Si les SID des systèmes source et cible sont différents, renommez le répertoire /hana/data/SID dans le système source afin qu'il corresponde au système cible :

    mv /hana/data/SOURCE_SID /hana/data/TARGET_SID

    Remplacez les éléments suivants :

    • SOURCE_SID : SID du système SAP HANA source
    • TARGET_SID : SID du système SAP HANA cible
  3. Dans le système cible, récupérez le disque hébergeant le volume /hana/data en exécutant la commande hanadiskrestore de l'agent.

  4. Dans le système cible, récupérez la base de données système :

    HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SOURCE 'SYSTEMDB@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT"
  5. Si vous souhaitez que votre base de données locataire ait le SID du système source, vous pouvez la renommer en suivant les instructions du document SAP HANA Renommer une base de données locataire.

  6. Dans le système cible, connectez-vous à la base de données système. Par exemple, vous pouvez exécuter la commande suivante :

    hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

    Remplacez les éléments suivants :

    • SYSTEM_DB_PASSWORD : mot de passe de votre base de données système
    • INSTANCE_NUMBER : votre numéro d'instance SAP HANA
  7. Dans le système cible, récupérez les bases de données locataires en exécutant la commande suivante pour chaque base de données locataire :

    RECOVER DATABASE FOR TARGET_SID UNTIL TIMESTAMP '2023-12-08 23:59:00' CLEAR LOG USING SOURCE 'TARGET_SID@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT

Valider la cohérence des instantanés

Cette section explique comment valider la cohérence des données de votre instantané de disque à l'aide de l'outil hdbpersdiag de SAP. Pour plus d'informations sur les autres bonnes pratiques recommandées par Google Cloud pour les opérations de sauvegarde et de récupération basées sur des instantanés de disque, consultez la page Bonnes pratiques.

Pour valider la cohérence d'un instantané, procédez comme suit :

  1. Créez un disque à partir d'un instantané que vous avez créé à l'aide de la commande hanadiskbackup de l'agent. Exécutez la commande gcloud compute disks create :

    gcloud compute disks create DISK_NAME \
       --size=SIZE \
       --source-snapshot=SNAPSHOT_NAME \
       --type=DISK_TYPE \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • DISK_NAME : nom du disque temporaire
    • SIZE : taille du disque temporaire
    • SNAPSHOT_NAME : nom de l'instantané source
    • DISK_TYPE : type de disque du disque temporaire
    • ZONE : zone Compute Engine dans laquelle vous souhaitez déployer le disque temporaire
  2. Associez le disque à une VM autre que votre hôte SAP HANA. Exécutez la commande gcloud compute instances attach-disk :

    gcloud compute instances attach-disk VM_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_INSTANCE_NAME : nom de la VM sur laquelle vous souhaitez déployer le disque que vous avez créé
    • DISK_NAME : nom du disque que vous avez créé
    • ZONE : zone Compute Engine dans laquelle votre VM est déployée
  3. Connectez-vous à votre VM à l'aide de la méthode SSH de votre choix.

  4. Installez le nouveau disque en tant que système de fichiers temporaire :

    1. Au niveau du système d'exploitation, recherchez le groupe de volumes qui ne comporte aucun volume logique actif :

      vgdisplay
      

      Le résultat ressemble à celui de l'exemple ci-dessous.

      --- Volume group ---
      VG Name               vg_hana_data
      System ID
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  2
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                1
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               250.00 GiB
      PE Size               4.00 MiB
      Total PE              63999
      Alloc PE / Size       63999 / 250.00 GiB
      Free  PE / Size       0 / 0
      VG UUID               Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
    2. Renommez le groupe de volumes à l'aide de l'UUID VG. Dans l'exemple précédent, il s'agit de Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR.

      vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
      
    3. Activez le groupe de volumes et le volume logique :

      vgchange -a y vg_hana_data_temp
      lvchange -a y /dev/vg_hana_data_temp/data
      
    4. Installez le volume logique dans un système de fichiers temporaire, par exemple /hana/data_temp :

      mkdir /hana/data_temp
      mount /dev/vg_hana_data_temp/data /hana/data_temp
      
    5. Vérifiez que tous les disques sont correctement installés :

      lsblk
      

      Le résultat ressemble à celui de l'exemple ci-dessous.

      NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
      sda                        8:0    0   30G  0 disk
      ├─sda1                     8:1    0    2M  0 part
      ├─sda2                     8:2    0   20M  0 part /boot/efi
      └─sda3                     8:3    0   30G  0 part /
      sdb                        8:16   0  350G  0 disk
      └─vg_hana_data_temp-data 254:5    0  250G  0 lvm  /hana/data_temp
      sdc                        8:32   0  104G  0 disk
      └─vg_hana_log-log        254:2    0  104G  0 lvm  /hana/log
      sdd                        8:48   0  208G  0 disk
      └─vg_hana_shared-shared  254:0    0  208G  0 lvm  /hana/shared
      sde                        8:64   0   32G  0 disk
      └─vg_hana_usrsap-usrsap  254:3    0   32G  0 lvm  /usr/sap
      sdf                        8:80   0  416G  0 disk
      └─vg_hanabackup-backup   254:4    0  416G  0 lvm  /hanabackup
      sdh                        8:112  0  250G  0 disk
      └─vg_hana_data-data      254:1    0  250G  0 lvm  /hana/data
  5. En tant qu'utilisateur SIDadm, exécutez l'outil hdbpersdiag pour les volumes de données inclus dans le système de fichiers temporaires :

    for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
    
  6. Vérifiez le résultat de l'outil hdbpersdiag.

  7. Si vous prévoyez d'effectuer cette vérification de cohérence ultérieurement, vous pouvez laisser le nouveau groupe de volumes tel quel. Sinon, supprimez-le.

  8. Dissocier le disque de la VM Exécutez la commande gcloud compute instances detach-disk :

    VM_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    
  9. Supprimez le disque. Exécutez la commande gcloud compute disks delete :

    gcloud compute disks delete DISK_NAME \
       --zone=ZONE
    

Dépannage

Bien que l'agent Google Cloud pour SAP soit conçu pour résoudre la plupart des problèmes pouvant survenir lors des opérations de sauvegarde et de récupération basées sur des instantanés de disque pour SAP HANA, il existe certains scénarios dans lesquels une intervention manuelle est requise.

Pour résoudre les problèmes liés à la fonctionnalité d'instantané de disque de l'agent Google Cloud pour SAP, consultez la page Problème avec une opération de sauvegarde ou de récupération basée sur un instantané de disque.

Obtenir de l'aide

Si vous avez besoin d'aide pour résoudre un problème lié à l'agent Google Cloud pour SAP, rassemblez les informations de diagnostic nécessaires et contactez Cloud Customer Care. Pour en savoir plus, consultez la section Informations de diagnostic sur l'agent Google Cloud pour SAP pour SAP HANA.