Esegui il backup e recupera SAP HANA utilizzando gli snapshot dei dischi

Questa guida mostra come eseguire il backup e il recupero del database SAP HANA utilizzando la funzionalità di snapshot del disco dell'agente per SAP di Google Cloud.

Per informazioni su questa funzionalità, consulta Backup e recupero per SAP HANA mediante snapshot dei dischi.

Prima di iniziare

Imposta autorizzazioni

Per eseguire il backup e il recupero del database SAP HANA utilizzando la funzionalità di snapshot del disco dell'agente di Google Cloud per SAP, devi impostare le seguenti autorizzazioni:

  • Per creare snapshot dei dischi, concedi le seguenti autorizzazioni IAM:

    Disco singolo

    Se il volume /hana/data è ospitato su un volume del Persistent Disk o Hyperdisk, concedi le seguenti autorizzazioni all'istanza Compute Engine:

    compute.disks.create
    compute.disks.createSnapshot
    compute.disks.get
    compute.disks.setLabels
    compute.disks.use
    compute.globalOperations.get
    compute.instances.attachDisk
    compute.instances.detachDisk
    compute.instances.get
    compute.snapshots.create
    compute.snapshots.get
    compute.snapshots.setLabels
    compute.snapshots.useReadOnly
    compute.zoneOperations.get
    

    Disco a strisce

    Se il volume /hana/data è ospitato su più di un volume del Persistent Disk o Hyperdisk, concedi le seguenti autorizzazioni all'istanza Compute Engine:

    compute.disks.addResourcePolicies
    compute.disks.create
    compute.disks.get
    compute.disks.list
    compute.disks.removeResourcePolicies
    compute.disks.use
    compute.disks.useReadOnly
    compute.globalOperations.get
    compute.instances.attachDisk
    compute.instances.detachDisk
    compute.instances.get
    compute.instantSnapshotGroups.create
    compute.instantSnapshotGroups.delete
    compute.instantSnapshotGroups.get
    compute.instantSnapshotGroups.list
    compute.instantSnapshots.list
    compute.instantSnapshots.useReadOnly
    compute.resourcePolicies.create
    compute.resourcePolicies.use
    compute.resourcePolicies.useReadOnly
    compute.snapshots.create
    compute.snapshots.get
    compute.snapshots.list
    compute.snapshots.setLabels
    compute.snapshots.useReadOnly
    compute.zoneOperations.get
    
  • Per creare backup basati su snapshot dei dischi, l'utente del database SAP HANA utilizzato dall'agente deve disporre del privilegio BACKUP OPERATOR o BACKUP ADMIN. Per ulteriori informazioni, consulta il documento SAP Autorizzazioni necessarie per il backup e il recupero

  • Per eseguire il backup e il recupero del database SAP HANA, l'utente del sistema operativo che esegue i comandi dell'agente deve essere l'utente root o disporre dell'accesso sudo per eseguire i seguenti comandi. Puoi anche fornire l'accesso sudo creando un gruppo nella tua directory /etc/sudoers.d, ad esempio:

    %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

Crea un gruppo con coerenza del disco

Se il volume /hana/data è ospitato su un disco, salta questa sezione.

Se il volume /hana/data è ospitato su più di un disco, devi creare un gruppo con coerenza e aggiungere i dischi che ospitano il volume /hana/data a questo gruppo. Devi creare il gruppo di coerenza nella stessa regione dei dischi.

Per informazioni su come eseguire questa operazione, consulta Creare un gruppo di coerenza.

Prendi nota del nome del gruppo con coerenza. Viene utilizzato dall'agente durante la creazione del backup basato su snapshot.

Creare un backup basato su snapshot del disco

  • Per creare un backup basato su snapshot del disco per il volume /hana/data del database SAP HANA, esegui il comando hanadiskbackup dell'agente di Google Cloud per SAP:

    Dalla versione 3.3, gli argomenti -source-disk e -source-disk-zone sono facoltativi per l'utilizzo con il comando hanadiskbackup. Questo accade perché l'agente può rilevare automaticamente il disco che ospita la directory /hana/data. Tuttavia, se specifichi questi argomenti, questi sostituiscono il rilevamento automatico dell'agente.

    • Se vuoi utilizzare una chiave hdbuserstore per l'autenticazione SAP HANA, esegui il seguente comando:
      sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \
            -project=DESTINATION_PROJECT_ID \
            -sid=SID \
            -hdbuserstore-key=HDB_USERSTORE_KEY
    • Se vuoi utilizzare un nome utente e un segreto Secret Manager per l'autenticazione SAP HANA, esegui il seguente comando:
      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
    • Se vuoi utilizzare un nome utente e una password per l'autenticazione SAP HANA, esegui il seguente comando:
      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=HANA_PASSWORD

    Sostituisci quanto segue:

    • DESTINATION_PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare lo snapshot del disco
    • HANA_HOST_ADDRESS: il nome host o l'indirizzo IP dell'istanza Compute Engine che ospita il database SAP HANA

      In un sistema ad alta disponibilità (HA), specifica il nome host o l'indirizzo IP dell'host locale nel nodo SAP HANA principale. Non utilizzare l'IP virtuale (VIP) utilizzato nel cluster per identificare il nodo principale. In un deployment di ripristino di emergenza (RE), specifica il nome host o l'indirizzo IP dell'host locale nell'istanza SAP HANA principale.

    • HANA_PORT_NUMBER: la porta SAP HANA che accetta le richieste di backup e recupero

    • SID: l'identificatore di sistema SAP (SID) del sistema SAP HANA

    • HANA_USERNAME: il nome utente del database SAP HANA con cui vuoi creare il backup

    • HDB_USERSTORE_KEY: se hai creato una hdbuserstore chiave per autenticare l'utente SAP HANA specificato, specifica quella chiave

    • HANA_USER_PWD_SECRET_NAME: se utilizzi Secret Manager per memorizzare la password dell'utente del database SAP HANA, specifica il nome del secret corrispondente

    • HANA_PASSWORD: se utilizzi una password in testo normale per l'autenticazione SAP HANA, specificala

    La seguente tabella descrive gli argomenti supportati dal comando hanadiskbackup:

    Argomento Descrizione
    -port Specifica la porta SAP HANA che accetta le richieste di backup e recupero.
    -sid Specifica l'identificatore di sistema SAP (SID) del sistema SAP HANA.
    -hana-db-user

    Specifica il nome utente del database SAP HANA con cui vuoi eseguire il backup.

    Se specifichi -hdbuserstore-key, puoi saltare la specifica dell'argomento -hana-db-user.

    -password

    Specifica la password dell'utente del database SAP HANA che utilizzi per creare il backup.

    Non specificare questo argomento se utilizzi l'argomento -password-secret o -hdbuserstore-key. Ti consigliamo di utilizzare una delle due opzioni anziché -password.

    Per l'autenticazione SAP HANA, l'agente utilizza il seguente ordine di preferenza: se specificato, l'argomento -hdbuserstore-key viene preferito all'argomento -password, che viene preferito all'argomento -password-secret. Ti consigliamo di specificare una sola opzione di autenticazione durante l'esecuzione del comando hanadiskbackup.

    -password-secret

    Facoltativo. Se utilizzi Secret Manager per archiviare la password dell'utente del database SAP HANA, specifica il nome del segreto corrispondente.

    In Secret Manager, assicurati che il valore della chiave, ovvero la password, contenga almeno 8 caratteri e includa almeno una lettera maiuscola, una lettera minuscola e un numero.

    Per l'autenticazione SAP HANA, l'agente utilizza il seguente ordine di preferenza: se specificato, l'argomento -hdbuserstore-key viene preferito all'argomento -password, che viene preferito all'argomento -password-secret. Ti consigliamo di specificare una sola opzione di autenticazione durante l'esecuzione del comando hanadiskbackup.

    -hdbuserstore-key

    Per connetterti in sicurezza a un sistema SAP HANA, specifica una chiave Secure User Store (hdbuserstore) che hai creato per quel sistema.

    Per utilizzare una chiave hdbuserstore per l'autenticazione, verifica quanto segue:

    • Gli strumenti SAP hdbsql e hdbuserstore sono installati sull'istanza di calcolo che ospita l'agente.
    • La chiave hdbuserstore corrisponde a un'istanza SAP HANA specifica. Non puoi utilizzare chiavi che contengono gli hostname di più istanze SAP HANA.
    • L'utente SIDadm può eseguire query sul database SAP HANA utilizzando questa chiave. Qui SID si riferisce al valore specificato per il parametro sid. Puoi verificarlo eseguendo il seguente comando come utente SIDadm:
      hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

    Questo parametro di configurazione è supportato dalla versione 3.3 dell'agente.

    Se specifichi -hdbuserstore-key, puoi saltare la specifica degli argomenti -host, -port e -hana-db-user.

    Per l'autenticazione SAP HANA, l'agente utilizza il seguente ordine di preferenza: se specificato, l'argomento -hdbuserstore-key viene preferito all'argomento -password, che viene preferito all'argomento -password-secret. Ti consigliamo di specificare una sola opzione di autenticazione durante l'esecuzione del comando hanadiskbackup.

    -host Facoltativo. Specifica l'indirizzo IP dell'istanza Compute Engine che ospita il tuo sistema SAP HANA. Il valore predefinito è localhost.
    -project Facoltativo. Specifica l'ID del progetto Google Cloud in cui è in esecuzione l'istanza SAP HANA.
    -abandon-prepared Facoltativo. Specifica se ignorare o meno eventuali backup basati su snapshot esistenti. Il valore predefinito è false.
    -snapshot-name

    Facoltativo. Specifica il nome dello snapshot del disco che stai creando. Questo argomento è applicabile solo quando il volume /hana/data è ospitato su un disco.

    Per impostazione predefinita, lo snapshot viene denominato utilizzando il seguente formato: snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.

    -snapshot-description Facoltativo. Specifica una descrizione per lo snapshot del disco. Questo parametro è applicabile solo quando il volume /hana/data è ospitato su un disco.
    -snapshot-type

    Facoltativo. Specifica il tipo di snapshot che vuoi creare per i dischi che ospitano il volume /hana/data. Questo parametro è applicabile solo quando il volume /hana/data è ospitato su più di un disco.

    Per impostazione predefinita, l'agente crea snapshot standard. Valori supportati per questo argomento: STANDARD, ARCHIVE. Per informazioni su questi tipi di snapshot, consulta la sezione Informazioni sugli snapshot di archiviazione e standard dei dischi.

    Questo argomento è supportato dalla versione 3.6 dell'agente.

    -group-snapshot-name

    Facoltativo. Specifica il nome del gruppo di snapshot per le istantanee dei dischi che ospitano il volume /hana/data.

    Per impostazione predefinita, il nome del gruppo di snapshot viene impostato utilizzando il seguente formato: CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMSS. Qui, CONSISTENCY_GROUP_NAME è il nome del gruppo di coerenza del disco che hai creato nella sezione Creare un gruppo di coerenza del disco.

    Questo argomento è supportato dalla versione 3.6 dell'agente.

    -labels Facoltativo. Specifica una o più coppie di etichetta-valore da associare agli snapshot dei dischi che stai creando. Ad esempio: -labels="label1=value1,label2=value2".
    -source-disk Specifica il nome del volume del Persistent Disk o Hyperdisk che ospita il volume /hana/data.

    Dalla versione 3.3, gli argomenti -source-disk e -source-disk-zone sono facoltativi per l'utilizzo con il comando hanadiskbackup. Questo accade perché l'agente può rilevare automaticamente il disco che ospita la directory /hana/data. Tuttavia, se specifichi questi argomenti, questi sostituiscono il rilevamento automatico dell'agente.

    -source-disk-zone Specifica la zona in cui si trova il disco che ospita il volume /hana/data.

    Dalla versione 3.3, gli argomenti -source-disk e -source-disk-zone sono facoltativi per l'utilizzo con il comando hanadiskbackup. Questo accade perché l'agente può rilevare automaticamente il disco che ospita la directory /hana/data. Tuttavia, se specifichi questi argomenti, questi sostituiscono il rilevamento automatico dell'agente.

    -source-disk-key-file Facoltativo. Se il disco che ospita il volume /hana/data è criptato da una chiave di crittografia fornita dal cliente con wrapping RSA, specifica il percorso assoluto del file JSON della chiave.

    Questo argomento è supportato dalla versione 3.2 dell'agente.

    -storage-location Facoltativo. Specifica la località multiregionale di Cloud Storage o la regione Cloud Storage in cui vuoi archiviare lo snapshot del disco.
    -freeze-file-system

    Facoltativo. Specifica se l'agente deve bloccare o meno il sistema di file del database SAP HANA. Il valore predefinito è false.

    Questo argomento è supportato dalla versione 3.2 dell'agente.

    -send-metrics-to-monitoring Facoltativo. Specifica se lo stato di esecuzione della creazione dello snapshot deve essere inviato o meno a Cloud Monitoring. Il valore predefinito è TRUE.
    -loglevel Facoltativo. Specifica il livello di registrazione per l'operazione di creazione dello snapshot. Il livello di logging predefinito è info. I livelli di log disponibili sono: debug, info, warn e error.
    -confirm-data-snapshot-after-create

    Facoltativo. Se vuoi confermare la creazione dello snapshot in SAP HANA immediatamente dopo la sua creazione, ma senza confermare che è stato caricato nel bucket Cloud Storage specificato per l'argomento -storage-location, specifica il valore TRUE.

    Il valore predefinito è FALSE, che fa sì che l'agente confirmi la creazione dello snapshot dopo il completamento di entrambe le operazioni CREATE e UPLOAD.

    Questo argomento è supportato dalla versione 3.4 dell'agente.

Verifica le istantanee dei dischi

Puoi verificare che gli snapshot dei dischi vengano creati utilizzando le seguenti opzioni:

  • Nella console Google Cloud, vai alla pagina Snapshot di Compute Engine, quindi filtra le voci utilizzando il nome del disco. Se il volume /hana/data è ospitato su un disco, puoi anche filtrare utilizzando il nome dell'istantanea. Se il volume /hana/data è ospitato su più di un disco, puoi anche filtrare utilizzando il nome del gruppo di snapshot.

    Vai a Snapshot

  • In alternativa, puoi visualizzare i dettagli dell'istantanea del disco nel seguente file di log dell'agente:

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

Esamina il catalogo di backup di SAP HANA

Oltre a creare il backup basato su snapshot del disco, il comando hanadiskbackup crea una voce corrispondente nel catalogo di backup di SAP HANA. Di seguito è riportata un'esempio di query SQL per visualizzare le voci di backup basate su snapshot nel catalogo di backup SAP HANA:

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

L'output è simile al seguente esempio:

BACKUP_ID,STATE_NAME,COMMENT
BACKUP_ID,"successful","SNAPSHOT_IDENTIFIER"

Questo output include i seguenti valori:

  • BACKUP_ID: l'ID backup assegnato al backup basato su snapshot del disco nel catalogo dei backup di SAP HANA
  • SNAPSHOT_IDENTIFIER:
    • Per un volume /hana/data su un disco, il valore di questo identificatore è determinato dall'utilizzo dell'argomento -snapshot-name con il comando hanadiskbackup. Se non hai specificato questo argomento, viene impostato il valore predefinito dell'argomento, ovvero: snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.
    • Se il volume /hana/ è ospitato su più di un disco, il valore di questo identificatore è determinato dall'utilizzo dell'argomento -group-snapshot-name con il comando hanadiskbackup. Se non hai specificato questo argomento, viene impostato il valore predefinito dell'argomento, ovvero CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMMSS.
  • SOURCE_DISK_NAME: questo valore è determinato dall'utilizzo dell'argomento -source-disk con il comando hanadiskbackup.
  • CONSISTENCY_GROUP_NAME: questo valore è determinato dall'utilizzo dell'argomento -group-snapshot-name con il comando hanadiskbackup
  • YYYYMMDD-HHMMMSS: la data e l'ora in cui è stato creato lo snapshot.

Recupera il database utilizzando un backup basato su snapshot del disco

Per recuperare il database SAP HANA utilizzando la funzionalità di snapshot del disco dell'agente di Google Cloud per SAP, consulta le istruzioni per il tuo scenario:

Ripristinare il database per un sistema di scalabilità verticale

Per recuperare il database di un sistema SAP HANA di scalabilità verticale di cui è stato eseguito il deployment su Google Cloud, completa i seguenti passaggi:

  1. Recupera il disco che ospita il volume /hana/data eseguendo il comando hanadiskrestore dell'agente:

    • Se il volume /hana/data è ospitato su un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se il volume /hana/data è ospitato su più di un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    Sostituisci quanto segue:

    • SOURCE_PROJECT_ID: l'ID del progetto Google Cloud in cui esiste lo snapshot del disco
    • SID: l'identificatore di sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: se il volume /hana/data è ospitato su un disco, specifica il nome dello snapshot del disco con cui stai creando il nuovo disco
    • SOURCE_SNAPSHOT_GROUP_NAME: se il volume /hana/data è ospitato su più di un disco, specifica il nome del gruppo di snapshot con cui stai creando i nuovi dischi
    • NEW_DISK_TYPE: il tipo di disco che vuoi creare. Per ulteriori informazioni, consulta la descrizione di -new-disk-type in Argomenti supportati per il ripristino del disco.
    • NEW_DISK_NAME: il nome da impostare per il nuovo disco. Per ulteriori informazioni, consulta la descrizione di -new-disk-name in Argomenti supportati per il ripristino del disco.

    Per informazioni sugli argomenti che puoi utilizzare con il comando hanadiskrestore, consulta Argomenti supportati per il ripristino del disco.

  2. Recupera il database SAP HANA utilizzando l'opzione richiesta:

    Ripristinare alla data e all'ora dello snapshot

    Per recuperare il database SAP HANA ripristinandolo al momento in cui è stato creato lo snapshot del disco:

    1. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    2. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    4. Recupera i database tenant eseguendo il seguente comando per ciascun database tenant:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Sostituisci TENANT_SID con il SID del database del tenant.

    Ripristinare a un punto nel tempo specifico

    Per recuperare il database SAP HANA ripristinandolo a un punto specifico nel tempo:

    1. Verifica di aver creato un backup per il volume /hana/log in Cloud Storage utilizzando la funzionalità Backint di Agent for SAP di Google Cloud. Per ulteriori informazioni su questa funzionalità, consulta Backup e recupero per SAP HANA tramite Backint.
    2. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    3. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    5. Recupera i database tenant eseguendo il seguente comando per ogni database tenant:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Sostituisci TENANT_SID con il SID del database del tenant.

Argomenti supportati per il ripristino del disco

La tabella seguente descrive gli argomenti supportati dal comando hanadiskrestore dell'agente:

Argomento Descrizione
-sid Specifica l'identificatore di sistema SAP (SID) del sistema SAP HANA.
-data-disk-name Facoltativo. Specifica il nome del disco di origine che ospita il volume /hana/data.

Dalla versione 3.4, gli argomenti -data-disk-name e -data-disk-zone sono facoltativi per l'utilizzo con il comando hanadiskrestore. Questo perché l'agente può rilevare automaticamente il disco su cui è ospitato il volume /hana/data. Tuttavia, se specifichi questi argomenti, questi sostituiscono il rilevamento automatico dell'agente.

-data-disk-zone Facoltativo. Specifica la zona in cui è eseguito il deployment del disco di origine che ospita il volume /hana/data.

Dalla versione 3.4, gli argomenti -data-disk-name e -data-disk-zone sono facoltativi per l'utilizzo con il comando hanadiskrestore. Questo perché l'agente può rilevare automaticamente il disco su cui è ospitato il volume /hana/data. Tuttavia, se specifichi questi argomenti, questi sostituiscono il rilevamento automatico dell'agente.

-source-snapshot Se il volume /hana/data è ospitato su un disco, specifica il nome dello snapshot del disco con cui vuoi eseguire il recupero.
-new-disk-name Specifica il nome da impostare per il nuovo disco. Questo parametro non è applicabile se il volume /hana/data è ospitato su più di un disco.
-group-snapshot-name

Se il volume /hana/data è ospitato su più di un disco, specifica il nome del gruppo di snapshot con cui eseguire il recupero.

Questo argomento è supportato dalla versione 3.6 dell'agente.

-project Facoltativo. Specifica l'ID del progetto Google Cloud in cui esiste lo snapshot del disco di origine. Per impostazione predefinita, lo snapshot viene creato nel progetto Google Cloud in cui è in esecuzione il sistema SAP HANA.
-csek-key-file Facoltativo. Se hai criptato lo snapshot del disco di origine utilizzando l'argomento -source-disk-key-file con il comando hanadiskbackup, specifica il percorso assoluto del file JSON della chiave di crittografia fornita dal cliente con wrapping RSA corrispondente allo snapshot del disco di origine. Di seguito è riportato un esempio di file di chiavi:
[
  {
    "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"
  }
]

Questo argomento è supportato dalla versione 3.2 dell'agente.

-new-disk-type

Facoltativo. Specifica il tipo di Persistent Disk o Hyperdisk che vuoi creare. Per impostazione predefinita, i nuovi dischi sono dello stesso tipo dei dischi di origine.

Assicurati di specificare un tipo di disco basato su SSD certificato da SAP per l'utilizzo con SAP HANA. Per ulteriori informazioni, consulta Tipi di dischi supportati.

-hana-sidadm Facoltativo. Specifica SIDadm, ovvero l'utente del sistema operativo del tuo sistema SAP HANA.
-force-stop-hana Facoltativo. Se vuoi interrompere forzatamente SAP HANA prima dell'inizio dell'operazione di recupero, specifica questo argomento e imposta il relativo valore su true. Il valore predefinito è false.
-provisioned-iops Facoltativo. Se stai creando un volume Hyperdisk, specifica le IOPS (operazioni di I/O al secondo) che deve gestire.
-provisioned-throughput Facoltativo. Se stai creando un volume Hyperdisk, specifica il throughput che deve supportare.
-labels-on-detached-disk

Facoltativo. Se stai creando un nuovo disco per ospitare la directory /hana/data recuperata, utilizza questo argomento per specificare le coppie di etichette e valori da associare al disco scollegato. Utilizza una virgola per separare le etichette. Ad esempio: -labels-on-detached-disk="label1=value1,label2=value2".

Questo argomento è supportato dalla versione 3.4 dell'agente.

-send-metrics-to-monitoring

Facoltativo. Specifica se la durata del recupero dello snapshot deve essere inviata o meno a Cloud Monitoring. Il valore predefinito è TRUE.

Questo argomento è supportato dalla versione 3.4 dell'agente.

-disk-size-gb

Facoltativo. Specifica le dimensioni, in GB, del nuovo disco. Per impostazione predefinita, il nuovo disco ha le stesse dimensioni del disco esistente.

Il nuovo disco non deve essere più piccolo di quello esistente.

-loglevel Facoltativo. Specifica il livello di registrazione per tutte le azioni eseguite dal comando hanadiskrestore. Il livello di registrazione predefinito è info. I livelli di log disponibili sono: debug, info, warn e error.

Ripristinare il database per un sistema HA di scalabilità verticale

Per recuperare il database di un sistema SAP HANA scalabile verticalmente di cui è stato eseguito il deployment in un cluster ad alta disponibilità (HA) su Google Cloud, completa i seguenti passaggi:

  1. Verifica di avere uno snapshot del disco che ospita il volume /hana/data nel tuo nodo SAP HANA principale.

  2. Come utente root, metti il cluster HA in modalità di manutenzione. Se utilizzi Pacemaker, esegui il seguente comando:

    RHEL

    pcs property set maintenance-mode=true

    SLES

    crm configure property maintenance-mode=true
  3. Interrompi le istanze del database SAP HANA eseguendo il seguente comando su entrambi i nodi principali e di standby del cluster HA:

    HDB stop
  4. Passa al nodo principale del sistema SAP HANA HA.

  5. Recupera il disco che ospita il volume /hana/data eseguendo il comando hanadiskrestore dell'agente:

    • Se il volume /hana/data è ospitato su un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se il volume /hana/data è ospitato su più di un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    Sostituisci quanto segue:

    • SOURCE_PROJECT_ID: l'ID del progetto Google Cloud in cui esiste lo snapshot del disco
    • SID: l'identificatore di sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: se il volume /hana/data è ospitato su un disco, specifica il nome dello snapshot del disco con cui stai creando il nuovo disco
    • SOURCE_SNAPSHOT_GROUP_NAME: se il volume /hana/data è ospitato su più di un disco, specifica il nome del gruppo di snapshot con cui stai creando i nuovi dischi
    • NEW_DISK_TYPE: il tipo di disco che vuoi creare. Per ulteriori informazioni, consulta la descrizione di -new-disk-type in Argomenti supportati per il ripristino del disco.
    • NEW_DISK_NAME: il nome da impostare per il nuovo disco. Per ulteriori informazioni, consulta la descrizione di -new-disk-name in Argomenti supportati per il ripristino del disco.

    Per informazioni sugli argomenti che puoi utilizzare con il comando hanadiskrestore, consulta Argomenti supportati per il ripristino del disco.

  6. Annullare la registrazione del nodo secondario del sistema SAP HANA HA:

    hdbnsutil -sr_unregister
  7. Sul nodo principale del sistema SAP HANA HA, disattiva la replica del sistema SAP HANA:

    hdbnsutil -sr_disable
  8. Sul nodo principale, recupera il database SAP HANA utilizzando l'opzione obbligatoria:

    Ripristinare alla data e all'ora dello snapshot

    Per recuperare il database SAP HANA ripristinandolo al momento in cui è stato creato lo snapshot del disco:

    1. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    2. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    4. Recupera i database tenant eseguendo il seguente comando per ciascun database tenant:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Sostituisci TENANT_SID con il SID del database del tenant.

    Ripristinare a un punto nel tempo specifico

    Per recuperare il database SAP HANA ripristinandolo a un punto specifico nel tempo:

    1. Verifica di aver creato un backup per il volume /hana/log in Cloud Storage utilizzando la funzionalità Backint di Agent for SAP di Google Cloud. Per ulteriori informazioni su questa funzionalità, consulta Backup e recupero per SAP HANA tramite Backint.
    2. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    3. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    5. Recupera i database tenant eseguendo il seguente comando per ogni database tenant:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Sostituisci TENANT_SID con il SID del database del tenant.

  9. Sul nodo principale, attiva la replica del sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  10. Registra di nuovo il nodo di standby con il nodo principale:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  11. Verifica che il database nel nodo di standby sia completamente sincronizzato con il database nel nodo principale.

  12. Come utente root, esci dalla modalità di manutenzione del cluster HA. Se utilizzi Pacemaker, esegui il seguente comando:

    RHEL

    pcs property set maintenance-mode=false

    SLES

    crm configure property maintenance-mode=false

Ripristina il database per un deployment RE di scalabilità superiore

Per recuperare il database di un sistema SAP HANA di scalabilità verticale di cui è stato eseguito il deployment con una soluzione di ripristino di emergenza su Google Cloud, svolgi i seguenti passaggi:

  1. Interrompi i database SAP HANA eseguendo il seguente comando su entrambe le istanze principale e di standby del deployment di RE:

    HDB stop
  2. Passa all'istanza principale del deployment di SAP HANA RE.

  3. Recupera il disco che ospita il volume /hana/data eseguendo il comando hanadiskrestore dell'agente:

    • Se il volume /hana/data è ospitato su un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -source-snapshot=SOURCE_SNAPSHOT_NAME \
      [-new-disk-type=NEW_DISK_TYPE \
      -new-disk-name=NEW_DISK_NAME]
    • Se il volume /hana/data è ospitato su più di un disco, esegui il seguente comando:

      sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \
      -project=SOURCE_PROJECT_ID \
      -sid=SID \
      -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \
      [-new-disk-type=NEW_DISK_TYPE ]

    Sostituisci quanto segue:

    • SOURCE_PROJECT_ID: l'ID del progetto Google Cloud in cui esiste lo snapshot del disco
    • SID: l'identificatore di sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: se il volume /hana/data è ospitato su un disco, specifica il nome dello snapshot del disco con cui stai creando il nuovo disco
    • SOURCE_SNAPSHOT_GROUP_NAME: se il volume /hana/data è ospitato su più di un disco, specifica il nome del gruppo di snapshot con cui stai creando i nuovi dischi
    • NEW_DISK_TYPE: il tipo di disco che vuoi creare. Per ulteriori informazioni, consulta la descrizione di -new-disk-type in Argomenti supportati per il ripristino del disco.
    • NEW_DISK_NAME: il nome da impostare per il nuovo disco. Per ulteriori informazioni, consulta la descrizione di -new-disk-name in Argomenti supportati per il ripristino del disco.

    Per informazioni sugli argomenti che puoi utilizzare con il comando hanadiskrestore, consulta Argomenti supportati per il ripristino del disco.

  4. Nell'istanza principale, disattiva la replica del sistema SAP HANA:

    hdbnsutil -sr_disable
  5. Nell'istanza principale, recupera il database SAP HANA utilizzando l'opzione obbligatoria:

    Ripristinare alla data e all'ora dello snapshot

    Per recuperare il database SAP HANA ripristinandolo al momento in cui è stato creato lo snapshot del disco:

    1. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    2. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    4. Recupera i database tenant eseguendo il seguente comando per ciascun database tenant:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Sostituisci TENANT_SID con il SID del database del tenant.

    Ripristinare a un punto nel tempo specifico

    Per recuperare il database SAP HANA ripristinandolo a un punto specifico nel tempo:

    1. Verifica di aver creato un backup per il volume /hana/log in Cloud Storage utilizzando la funzionalità Backint di Agent for SAP di Google Cloud. Per ulteriori informazioni su questa funzionalità, consulta Backup e recupero per SAP HANA tramite Backint.
    2. Passa all'utente SIDadm:
      su - SID_LCadm

      Sostituisci SID_LC con l'SID del sistema SAP HANA. Utilizza le lettere minuscole.

    3. Recupera il database di sistema eseguendo il seguente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Sostituisci quanto segue:

      • SYSTEM_DB_PASSWORD: la password del database di sistema
      • INSTANCE_NUMBER: il numero della tua istanza SAP HANA
    5. Recupera i database tenant eseguendo il seguente comando per ogni database tenant:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Sostituisci TENANT_SID con il SID del database del tenant.

  6. Nell'istanza principale, abilita la replica del sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  7. Registra l'istanza di standby con l'istanza principale:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  8. Verifica che il database nell'istanza di standby sia completamente sincronizzato con il database nell'istanza principale.

Esegui una copia o un aggiornamento del sistema

Per utilizzare un backup basato su snapshot del disco di un sistema SAP HANA per il recupero di un altro sistema SAP HANA, svolgi i seguenti passaggi:

  1. Nel sistema di origine, crea un backup basato su snapshot eseguendo il comando hanadiskbackup dell'agente. Per le istruzioni, consulta Creare un backup basato su snapshot del disco.
  2. Se gli SID dei sistemi di origine e di destinazione sono diversi, rinomina la directory /hana/data/SID nel sistema di origine in modo che corrisponda a quella del sistema di destinazione:

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

    Sostituisci quanto segue:

    • SOURCE_SID: l'SID del sistema SAP HANA di origine
    • TARGET_SID: l'SID del sistema SAP HANA di destinazione
  3. Nel sistema di destinazione, recupera il disco che ospita il volume /hana/data eseguendo il comando hanadiskrestore dell'agente.

  4. Nel sistema di destinazione, recupera il database di sistema:

    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. Se vuoi che il database del tenant abbia l'SID del sistema di origine, puoi rinominarlo seguendo le istruzioni riportate nel documento SAP HANA Rinominare un database del tenant.

  6. Nel sistema di destinazione, connettiti al database di sistema. Ad esempio, puoi eseguire il seguente comando:

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

    Sostituisci quanto segue:

    • SYSTEM_DB_PASSWORD: la password del database di sistema
    • INSTANCE_NUMBER: il numero dell'istanza SAP HANA
  7. Nel sistema di destinazione, recupera i database tenant eseguendo il seguente comando per ogni database tenant:

    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

Convalida la coerenza degli snapshot

Questa sezione descrive come convalidare la coerenza dei dati negli snapshot del disco utilizzando lo strumento hdbpersdiag di SAP. Per informazioni su altre best practice consigliate da Google Cloud per le operazioni di backup e recupero basate su snapshot dei dischi, consulta le best practice.

Per convalidare la coerenza di uno snapshot:

  1. Crea un disco da uno snapshot che hai creato utilizzando il comando hanadiskbackup dell'agente. Utilizza il comando gcloud compute disks create:

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

    Sostituisci quanto segue:

    • DISK_NAME: il nome del disco temporaneo
    • SIZE: le dimensioni del disco temporaneo
    • SNAPSHOT_NAME: il nome dello snapshot di origine
    • DISK_TYPE: il tipo di disco temporaneo
    • ZONE: la zona Compute Engine in cui vuoi eseguire il deployment del disco temporaneo
  2. Collega il disco a un'istanza Compute Engine diversa dall'host SAP HANA. Utilizza il comando gcloud compute instances attach-disk:

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

    Sostituisci quanto segue:

    • COMPUTE_INSTANCE_NAME: il nome dell'istanza compute in cui vuoi eseguire il deployment del disco che hai creato
    • DISK_NAME: il nome del disco che hai creato
    • ZONE: la zona Compute Engine in cui è dipiattaformata l'istanza di calcolo
  3. Connettiti all'istanza di calcolo utilizzando il metodo SSH che preferisci.

  4. Monta il nuovo disco come file system temporaneo:

    1. A livello di sistema operativo, individua il gruppo di volumi che non ha volumi logici attivi:

      vgdisplay
      

      L'output è simile al seguente esempio:

      --- 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. Rinomina il gruppo di volumi utilizzando l'UUID del gruppo di volumi. Nell'esempio precedente è Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR.

      vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
      
    3. Attiva il gruppo di volumi e il volume logico:

      vgchange -a y vg_hana_data_temp
      lvchange -a y /dev/vg_hana_data_temp/data
      
    4. Monta il volume logico in un file system temporaneo, ad esempio /hana/data_temp:

      mkdir /hana/data_temp
      mount /dev/vg_hana_data_temp/data /hana/data_temp
      
    5. Verifica che tutti i dischi siano montati correttamente:

      lsblk
      

      L'output è simile al seguente esempio:

      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. Come utente SIDadm, esegui lo strumento hdbpersdiag per i volumi di dati inclusi nel file system temporaneo:

    for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
    
  6. Verifica l'output dello strumento hdbpersdiag.

  7. Se prevedi di eseguire questo controllo di coerenza in futuro, puoi lasciare invariato il nuovo gruppo di volumi. In caso contrario, eliminalo.

  8. Scollega il disco dall'istanza di calcolo. Utilizza il comando gcloud compute instances detach-disk:

    COMPUTE_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    
  9. Elimina il disco. Utilizza il comando gcloud compute disks delete:

    gcloud compute disks delete DISK_NAME \
       --zone=ZONE
    

Risoluzione dei problemi

Sebbene l'agente per SAP di Google Cloud sia progettato per gestire la maggior parte dei problemi che possono verificarsi durante le operazioni di backup e recupero basate su snapshot del disco per SAP HANA, esistono alcuni scenari in cui è necessario un intervento manuale.

Per risolvere eventuali problemi con la funzionalità di snapshot del disco di Agent for SAP di Google Cloud, consulta Problema con un'operazione di backup o recupero basata su snapshot del disco.

Assistenza

Se hai bisogno di aiuto per risolvere un problema con l'agente per SAP di Google Cloud, raccogli le informazioni di diagnostica richieste e contatta l'assistenza clienti Google Cloud. Per ulteriori informazioni, consulta Informazioni di diagnostica dell'agente di Google Cloud per SAP per SAP HANA.