Ce guide vous explique comment sauvegarder et récupérer votre base de données 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 section Sauvegarde et récupération de SAP HANA à l'aide d'instantanés de disque.
Avant de commencer
- Vérifiez l'installation de l'agent Google Cloud pour SAP. Pour obtenir des instructions, consultez la section Installer et configurer l'agent Google Cloud pour SAP sur une instance de VM Compute Engine.
- Vérifiez que votre système SAP HANA est déployé sur une instance de VM Compute Engine comme suit :
- Il n'est pas déployé dans une architecture de scaling horizontal. Pour en savoir plus, consultez Utiliser des instantanés avec des déploiements à l'horizontale.
- Il utilise un système d'exploitation (OS) certifié SAP. Pour en savoir plus, consultez la section Compatibilité des OS avec SAP HANA sur Google Cloud.
- Le volume
/hana/data
est hébergé indépendamment sur un volume Persistent Disk ou Hyperdisk basé sur SSD sans segmentation. Ce disque ne doit pas héberger d'autres volumes SAP HANA. Comme décrit dans la note SAP 2039883 - Questions fréquentes : base de données et instantanés de données SAP HANA (instantanés de stockage), pour pouvoir récupérer votre base de données SAP HANA, l'instantané de stockage ne doit pas inclure la zone de journalisation de la base de données. - Le volume
/hana/data
est mappé sur un volume logique. Cela permet à l'agent de gérer correctement le point d'installation lors des opérations de sauvegarde ou de récupération basées sur des instantanés de disque. - L'infrastructure sous-jacente n'est pas déployée à l'aide d'outils IaC (Infrastructure as Code) tels que Terraform. Pour en savoir plus, consultez la section Utiliser des instantanés avec des déploiements basés sur l'outil IaC.
Définir des autorisations
Pour sauvegarder et récupérer votre base de données SAP HANA à l'aide de la fonctionnalité d'instantané de disque de l'agent Google Cloud pour SAP, 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
etcompute.disk.list
.
- Pour le projet Google Cloud dans lequel votre système SAP HANA s'exécute, activez l'autorisation
- 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
ouBACKUP ADMIN
. Pour en savoir plus, consultez le document SAP Authorizations Needed for Backup and Recovery (Autorisations requises pour la sauvegarde et la récupération). Pour sauvegarder et récupérer votre base de données SAP HANA, 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èssudo
pour exécuter les commandes suivantes. Vous pouvez également accorder un accèssudo
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 commandehanadiskbackup
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 HANADans 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érationSID
: identifiant système SAP (SID) de votre système SAP HANAHANA_USERNAME
: nom d'utilisateur de la base de données SAP HANA avec lequel vous souhaitez créer la sauvegardeHANA_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.
Si vous spécifiez
-hdbuserstore-key
, vous pouvez ignorer l'argument-hana-db-user
.-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 d'entre eux au lieu d'utiliser-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 vous connecter de manière sécurisée à un système SAP HANA, spécifiez une clé de magasin d'utilisateurs sécurisé (
hdbuserstore
) que vous avez créée pour ce système.Pour utiliser une clé
hdbuserstore
pour l'authentification, vérifiez les points suivants :- Les outils SAP
hdbsql
ethdbuserstore
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. - L'utilisateur
SIDadm
peut interroger la base de données SAP HANA à l'aide de cette clé. Ici,SID
fait référence à la valeur que vous avez spécifiée pour le paramètresid
. Pour le vérifier, exécutez la commande suivante en tant qu'utilisateurSIDadm
:hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"
Ce paramètre de configuration est compatible avec la version 3.3 de l'agent.
Si vous spécifiez
-hdbuserstore-key
, vous pouvez ignorer les arguments-host
,-port
et-hana-db-user
.-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
eterror
.-confirm-data-snapshot-after-create
Facultatif. Si vous souhaitez confirmer la création de l'instantané sur SAP HANA immédiatement après sa création, mais sans confirmer qu'il a été importé dans le bucket Cloud Storage spécifié pour l'argument
-storage-location
, spécifiez la valeurTRUE
.La valeur par défaut est
FALSE
, ce qui amène l'agent à confirmer la création de l'instantané une fois les opérationsCREATE
etUPLOAD
terminées.Cet argument est compatible avec la version 3.4 de l'agent.
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é.
Vous pouvez également afficher les détails de l'instantané de disque dans le fichier journal suivant de l'agent :
/var/log/google-cloud-sap-agent/hanadiskbackup.log
Examiner le catalogue de sauvegarde 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 HANASOURCE_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
Récupérer la base de données à l'aide d'un instantané de disque
Pour récupérer votre base de données SAP HANA à l'aide de la fonctionnalité d'instantané de disque 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 à haute disponibilité avec scaling à la hausse
- Récupérer la base de données pour un système à haute disponibilité avec scaling à la hausse
- Récupérer la base de données pour un déploiement de reprise après sinistre avec scaling à la hausse
- Effectuer une copie du système ou une actualisation du système
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 :
Récupérez le disque hébergeant le volume
/hana/data
en exécutant la commandehanadiskrestore
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 disqueSID
: identifiant système SAP (SID) de votre système SAP HANASOURCE_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 acceptés pour la restauration de disque.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 :
- 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. - 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;"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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 :
- 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 section Sauvegarde et récupération de SAP HANA à l'aide de Backint. - 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. - 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"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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.
- Passez à l'utilisateur
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 |
Facultatif. Spécifiez le nom du disque source qui héberge le volume /hana/data .
|
-data-disk-zone |
Facultatif. Spécifiez la zone dans laquelle le disque source qui héberge le volume /hana/data est déployé.
|
-source-snapshot |
Spécifiez le nom de l'instantané de disque à partir 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. |
-labels-on-detached-disk |
Facultatif. Si vous créez un disque pour héberger le répertoire Cet argument est compatible avec la version 3.4 de l'agent. |
-send-metrics-to-monitoring |
Facultatif. Indique si la durée de restauration des instantanés est envoyée à Cloud Monitoring. La valeur par défaut est Cet argument est compatible avec la version 3.4 de l'agent. |
-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 :
Vérifiez que vous disposez d'un instantané du disque hébergeant le volume
/hana/data
dans votre nœud SAP HANA principal.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
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
Basculez vers le nœud principal de votre système SAP HANA à haute disponibilité.
Récupérez le disque hébergeant le volume
/hana/data
en exécutant la commandehanadiskrestore
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 disqueSID
: identifiant système SAP (SID) de votre système SAP HANASOURCE_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 acceptés pour la restauration de disque.Annulez l'enregistrement du nœud secondaire de votre système SAP HANA à haute disponibilité :
hdbnsutil -sr_unregister
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
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 :
- 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. - 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;"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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 :
- 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 section Sauvegarde et récupération de SAP HANA à l'aide de Backint. - 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. - 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"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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.
- Passez à l'utilisateur
Sur le nœud principal, activez la réplication du système SAP HANA :
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
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
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.
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 :
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
Basculez vers l'instance principale de votre déploiement de reprise après sinistre SAP HANA.
Récupérez le disque hébergeant le volume
/hana/data
en exécutant la commandehanadiskrestore
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 disqueSID
: identifiant système SAP (SID) de votre système SAP HANASOURCE_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 acceptés pour la restauration de disque.Sur l'instance principale, désactivez la réplication du système SAP HANA :
hdbnsutil -sr_disable
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 :
- 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. - 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;"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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 :
- 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 section Sauvegarde et récupération de SAP HANA à l'aide de Backint. - 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. - 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"
- 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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
- 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.
- Passez à l'utilisateur
Sur l'instance principale, activez la réplication du système SAP HANA :
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
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
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 ou une actualisation du système
Pour utiliser une sauvegarde basée sur un instantané de disque d'un système SAP HANA afin de récupérer un autre système SAP HANA, procédez comme suit :
- 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. 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 sourceTARGET_SID
: SID du système SAP HANA cible
Dans le système cible, récupérez le disque hébergeant le volume
/hana/data
en exécutant la commandehanadiskrestore
de l'agent.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"
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.
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èmeINSTANCE_NUMBER
: votre numéro d'instance SAP HANA
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 :
Créez un disque à partir d'un instantané que vous avez créé à l'aide de la commande
hanadiskbackup
de l'agent. Exécutez la commandegcloud 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 temporaireSIZE
: taille du disque temporaireSNAPSHOT_NAME
: nom de l'instantané sourceDISK_TYPE
: type de disque du disque temporaireZONE
: zone Compute Engine dans laquelle vous souhaitez déployer le disque temporaire
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
Connectez-vous à votre VM à l'aide de la méthode SSH de votre choix.
Installez le nouveau disque en tant que système de fichiers temporaire :
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
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
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
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
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
En tant qu'utilisateur
SIDadm
, exécutez l'outilhdbpersdiag
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
Vérifiez le résultat de l'outil
hdbpersdiag
.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.
Dissocier le disque de la VM Exécutez la commande
gcloud compute instances detach-disk
:VM_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
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.