Crea una copia de seguridad de SAP HANA y recupérala con una instantánea de disco

En esta guía, se muestra cómo crear una copia de seguridad de tu base de datos de SAP HANA y recuperarla mediante la función de instantánea de disco del agente de Google Cloud para SAP.

Si deseas obtener información sobre esta función, consulta Copia de seguridad y recuperación para SAP HANA mediante instantáneas de disco.

Antes de comenzar

Configurar permisos

Para crear una copia de seguridad de tu base de datos de SAP HANA y recuperarla con la función de instantáneas de disco del agente de Google Cloud para SAP, debes establecer los siguientes permisos:

  • Para crear instantáneas de discos, habilita los siguientes permisos de IAM:
    • Para el proyecto de Google Cloud en el que se ejecuta el sistema SAP HANA, habilita el permiso compute.snapshots.create.
    • En la cuenta de servicio que usa la instancia de VM de Compute Engine, habilita los siguientes permisos: compute.disks.createSnapshot, compute.snapshot.list y compute.disk.list.
  • Para crear copias de seguridad basadas en instantáneas de disco, el usuario de la base de datos de SAP HANA que usa el agente debe tener el privilegio BACKUP OPERATOR o BACKUP ADMIN. Para obtener más información, consulta el documento de SAP Autorizaciones necesarias para la copia de seguridad y la recuperación.
  • Para crear una copia de seguridad de tu base de datos de SAP HANA y recuperarla, el usuario del sistema operativo que ejecuta los comandos del agente debe ser el usuario root o tener el acceso sudo para ejecutar los siguientes comandos. También puedes proporcionar acceso sudo si creas un grupo en tu directorio /etc/sudoers.d, por ejemplo:

    %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 una copia de seguridad basada en una instantánea de disco

  • Si deseas crear una copia de seguridad basada en instantáneas de disco para el volumen /hana/data de tu base de datos de SAP HANA, ejecuta el comando hanadiskbackup del agente de Google Cloud para 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]

    Reemplaza lo siguiente:

    • DESTINATION_PROJECT_ID: el ID del proyecto de Google Cloud en el que deseas crear la instantánea de disco.
    • HANA_HOST_ADDRESS: el nombre de host o la dirección IP de la instancia de VM de Compute Engine que aloja tu base de datos de SAP HANA

      En un sistema de alta disponibilidad (HA), especifica el nombre de host o la dirección IP del host local en el nodo principal de SAP HANA. No uses la IP virtual (VIP) que se usa en el clúster para identificar el nodo principal. En una implementación de recuperación ante desastres (DR), especifica el nombre de host o la dirección IP del host local en la instancia principal de SAP HANA.

    • HANA_PORT_NUMBER: el puerto de SAP HANA que acepta las solicitudes de copia de seguridad y recuperación

    • SID: el identificador del sistema SAP (SID) del sistema SAP HANA

    • HANA_USERNAME: el nombre de usuario de la base de datos de SAP HANA con el que deseas crear la copia de seguridad

    • HANA_USER_PWD_SECRET_NAME: Si usas Secret Manager para almacenar la contraseña de usuario de la base de datos de SAP HANA, especifica el nombre del secreto correspondiente.

    • HDB_USERSTORE_KEY: si creaste una clave hdbuserstore para autenticar el usuario de SAP HANA especificado, especifica esa clave

    • SOURCE_DISK_NAME: el nombre del volumen de Persistent Disk o de Hyperdisk que aloja el volumen /hana/data

    • SOURCE_DISK_ZONE: Es el nombre de la zona en la que se implementa el disco que aloja el volumen /hana/data.

    En la siguiente tabla, se describen los argumentos que admite el comando hanadiskbackup:

    Argumento Descripción
    -port Especifica el puerto de SAP HANA que acepta las solicitudes de copia de seguridad y recuperación.
    -sid Especifica el identificador del sistema SAP (SID) del sistema SAP HANA.
    -hana-db-user

    Especifica el nombre de usuario de la base de datos de SAP HANA con el que deseas crear la copia de seguridad.

    Si especificas -hdbuserstore-key, puedes omitir la especificación del argumento -hana-db-user.

    -password

    Especifica la contraseña del usuario de la base de datos de SAP HANA que usas para crear la copia de seguridad.

    No especifiques este argumento si usas el argumento -password-secret o -hdbuserstore-key. Te recomendamos que utilices cualquiera de ellas en lugar de -password.

    -password-secret

    Opcional. Si usas Secret Manager para almacenar la contraseña de usuario de la base de datos de SAP HANA, especifica el nombre del secreto correspondiente.

    En Secret Manager, asegúrate de que el valor Secret, que es la contraseña, contenga al menos 8 caracteres e incluya al menos una letra mayúscula, una letra minúscula y un número.

    No especifiques este argumento si usas el argumento -password.

    -hdbuserstore-key

    Para conectarte de forma segura a un sistema SAP HANA, especifica una clave de almacenamiento seguro de usuario (hdbuserstore) que hayas creado para ese sistema.

    Para usar una clave hdbuserstore para la autenticación, asegúrate de lo siguiente:

    • Las herramientas de SAP hdbsql y hdbuserstore se instalan en la instancia de procesamiento que aloja el agente.
    • La clave hdbuserstore corresponde a una instancia específica de SAP HANA. No puedes usar claves que contengan nombres de host de varias instancias de SAP HANA.
    • El usuario SIDadm puede consultar la base de datos de SAP HANA con esta clave. Aquí, SID hace referencia al valor que especificaste para el parámetro sid. Para verificarlo, ejecuta el siguiente comando como el usuario SIDadm:
      hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

    Este parámetro de configuración es compatible con la versión 3.3 del agente.

    Si especificas -hdbuserstore-key, puedes omitir la especificación de los argumentos -host, -port y -hana-db-user.

    -host Opcional. Especifica la dirección IP de la instancia de VM de Compute Engine que aloja el sistema SAP HANA. El valor predeterminado es localhost.
    -project Opcional. Especifica el ID del proyecto de Google Cloud en el que deseas crear la instantánea de disco. De forma predeterminada, la instantánea se crea en el proyecto de Google Cloud en el que se ejecuta el sistema SAP HANA.
    -abandon-prepared Opcional. Especifica si se debe ignorar o no cualquier instantánea de disco existente. El valor predeterminado es false.
    -snapshot-name

    Opcional. Especifica el nombre de la instantánea de disco que crearás.

    De forma predeterminada, la instantánea tiene un nombre en el siguiente formato: snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS.

    -source-disk Especifica el nombre del volumen de Persistent Disk o de Hyperdisk que aloja el volumen /hana/data.
    -source-disk-zone Especifica la zona en la que existe el disco que aloja el volumen /hana/data.
    -source-disk-key-file Opcional. Si el disco que aloja el volumen /hana/data está encriptado por una clave de encriptación unida con RSA proporcionada por el cliente, especifica la ruta de acceso absoluta al archivo JSON de esa clave.

    Este argumento es compatible con la versión 3.2 del agente.

    -storage-location Opcional. Especifica la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea del disco.
    -snapshot-description Opcional. Especifica una descripción para la instantánea del disco.
    -labels Opcional. Especifica uno o más pares etiqueta-valor que desees asociar con la instantánea de disco que estás creando. Por ejemplo: -labels="label1=value1,label2=value2".
    -send-metrics-to-monitoring Opcional. Especifica si el estado de ejecución de la creación de la instantánea se envía a Cloud Monitoring. El valor predeterminado es TRUE.
    -loglevel Opcional. Especifica el nivel de registro para la operación de creación de la instantánea. El nivel de registro predeterminado es info. Los niveles de registro disponibles son debug, info, warn y error.
    -confirm-data-snapshot-after-create

    Opcional. Si deseas confirmar la creación de la instantánea en SAP HANA inmediatamente después de crearla, pero sin confirmar que se subió al bucket de Cloud Storage especificado para el argumento -storage-location, entonces especifica el valor TRUE.

    El valor predeterminado es FALSE, que hace que el agente confirme la creación de la instantánea después de completar las operaciones CREATE y UPLOAD.

    Este argumento es compatible con la versión 3.4 del agente.

Verifica la instantánea del disco

Puedes verificar que la instantánea del disco se cree mediante las siguientes opciones:

  • En la consola de Google Cloud, ve a la página Instantáneas de Compute Engine y, luego, filtra las entradas con el nombre del disco o de la instantánea.

    Ir a Instantáneas

  • Como alternativa, también puedes ver los detalles de la instantánea de disco en el siguiente archivo de registro del agente:

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

Revisa el catálogo de copias de seguridad de SAP HANA

Además de crear la instantánea de disco, el comando hanadiskbackup crea una entrada para la instantánea en tu catálogo de copias de seguridad de SAP HANA. La siguiente es una consulta en SQL de ejemplo para ver las entradas de instantáneas de disco en el catálogo de copias de seguridad de SAP HANA:

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

El resultado es similar al siguiente ejemplo.

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

En esta salida, se incluyen los siguientes valores:

  • BACKUP_ID: El ID de la copia de seguridad asignado a la instantánea de disco en tu catálogo de copias de seguridad de SAP HANA
  • SOURCE_DISK_NAME: Es el nombre del disco que aloja el volumen /hana/data para el que creaste una instantánea.
  • YYYYMMDD-HHMMMSS: La fecha y hora en la que se creó la implementación.

Recupera la base de datos con una instantánea del disco

Si deseas recuperar tu base de datos de SAP HANA mediante la función de instantáneas de disco del agente de Google Cloud para SAP, consulta las instrucciones de tu situación:

Recupera la base de datos para un sistema de escalamiento vertical

Para recuperar la base de datos de un sistema de escalamiento vertical de SAP HANA implementado en Google Cloud, completa los siguientes pasos:

  1. Recupera el disco que aloja el volumen /hana/data mediante la ejecución del comando hanadiskrestore del agente:

    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

    Reemplaza lo siguiente:

    • SOURCE_PROJECT_ID: el ID del proyecto de Google Cloud en el que existe la instantánea de disco.
    • SID: el identificador del sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: el nombre de la instantánea del disco con la que crearás el disco nuevo.
    • SOURCE_DISK_NAME: el nombre del disco de origen que aloja el volumen /hana/data.
    • SOURCE_DISK_ZONE: el nombre de la zona en la que se implementa el disco de origen.

    Para obtener información sobre los argumentos que puedes usar con el comando hanadiskrestore, consulta Argumentos admitidos para el restablecimiento del disco.

  2. Recupera tu base de datos de SAP HANA con la opción requerida:

    Recupera en el tiempo de la instantánea

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a la hora en que se creó la instantánea de disco, sigue estos pasos:

    1. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    2. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    4. Recupera las bases de datos de usuarios mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

    Recupera a un momento específico

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a un momento específico, sigue estos pasos:

    1. Verifica que hayas creado una copia de seguridad para el volumen /hana/log en Cloud Storage mediante la función Backint del agente de Google Cloud para SAP. Para obtener más información sobre esta función, consulta Copia de seguridad y recuperación para SAP HANA con Backint.
    2. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    3. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    5. Recupera las bases de datos de usuario mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

Argumentos compatibles para el restablecimiento del disco

En la siguiente tabla, se describen los argumentos que admite el comando hanadiskrestore del agente:

Argumento Descripción
-sid Especifica el identificador del sistema SAP (SID) del sistema SAP HANA.
-data-disk-name Opcional. Especifica el nombre del disco de origen que aloja el volumen /hana/data.
-data-disk-zone Opcional. Especifica la zona en la que se implementa el disco de origen que aloja el volumen /hana/data.
-source-snapshot Especifica el nombre de la instantánea del disco con la que deseas recuperar el disco que aloja tu volumen de datos de SAP HANA.
-new-disk-name Especifica el nombre que deseas configurar para el disco nuevo.
-project Opcional. Especifica el ID del proyecto de Google Cloud en el que existe la instantánea del disco de origen. De forma predeterminada, la instantánea se crea en el proyecto de Google Cloud en el que se ejecuta el sistema SAP HANA.
-csek-key-file Opcional. Si encriptaste la instantánea del disco de origen con el argumento -source-disk-key-file con el comando hanadiskbackup, especifica la ruta de acceso absoluta al archivo JSON de la clave de encriptación unida con RSA proporcionada por el cliente que corresponde a la instantánea del disco de origen. El siguiente es un archivo de claves de ejemplo:
[
  {
    "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"
  }
]

Este argumento es compatible con la versión 3.2 del agente.

-new-disk-type

Opcional. Especifica el tipo de Persistent Disk o Hyperdisk que deseas crear. De forma predeterminada, el disco nuevo es del mismo tipo que el de origen.

Asegúrate de especificar un tipo de disco basado en SSD que esté certificado por SAP para usarse con SAP HANA. Para obtener más información, consulta los tipos de disco compatibles.

-hana-sidadm Opcional. Especifica SIDadm: el usuario del sistema operativo del sistema SAP HANA.
-force-stop-hana Opcional. Si deseas detener SAP HANA de manera forzosa antes de iniciar la operación de recuperación, especifica este argumento y establece su valor en true. El valor predeterminado es false.
-provisioned-iops Opcional. Si creas un volumen de Hyperdisk, especifica las IOPS (operaciones de entrada y salida por segundo) que debe controlar.
-provisioned-throughput Opcional. Si creas un volumen de Hyperdisk, especifica la capacidad de procesamiento que debe admitir.
-labels-on-detached-disk

Opcional. Si creas un nuevo disco para alojar el directorio /hana/data recuperado, usa este argumento para especificar los pares etiqueta-valor que quieres asociar con el disco desconectado. Usa una coma para separar las etiquetas. Por ejemplo: -labels-on-detached-disk="label1=value1,label2=value2".

Este argumento es compatible con la versión 3.4 del agente.

-send-metrics-to-monitoring

Opcional. Especifica si la duración del restablecimiento de la instantánea se envía a Cloud Monitoring. El valor predeterminado es TRUE.

Este argumento es compatible con la versión 3.4 del agente.

-disk-size-gb

Opcional. Especifica el tamaño del disco nuevo, expresado en GB. De forma predeterminada, el disco nuevo es del mismo tamaño que el existente.

El disco nuevo no debe ser menor que el existente.

-loglevel Opcional. Especifica el nivel de registro para todas las acciones realizadas por el comando hanadiskrestore. El nivel de registro predeterminado es info. Los niveles de registro disponibles son debug, info, warn y error.

Recupera la base de datos para un sistema de alta disponibilidad de escalamiento vertical

Para recuperar la base de datos de un sistema de escalamiento vertical de SAP HANA implementado en un clúster de alta disponibilidad (HA) en Google Cloud, completa los siguientes pasos:

  1. Verifica que tengas una instantánea del disco que aloja el volumen /hana/data en tu nodo principal de SAP HANA.

  2. Como usuario raíz, coloca el clúster de HA en modo de mantenimiento. Si usas Pacemaker, ejecuta el siguiente comando:

    RHEL

    pcs property set maintenance-mode=true

    SLES

    crm configure property maintenance-mode=true
  3. Detén tus instancias de base de datos de SAP HANA mediante la ejecución del siguiente comando en los nodos principal y en espera de tu clúster de HA:

    HDB stop
  4. Cambia al nodo principal de tu sistema SAP HANA de alta disponibilidad.

  5. Recupera el disco que aloja el volumen /hana/data mediante la ejecución del comando hanadiskrestore del agente:

    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

    Reemplaza lo siguiente:

    • SOURCE_PROJECT_ID: el ID del proyecto de Google Cloud en el que existe la instantánea de disco.
    • SID: el identificador del sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: el nombre de la instantánea del disco con la que crearás el disco nuevo.
    • SOURCE_DISK_NAME: el nombre del disco de origen que aloja el volumen /hana/data.
    • SOURCE_DISK_ZONE: el nombre de la zona en la que se implementa el disco de origen.

    Para obtener información sobre los argumentos que puedes usar con el comando hanadiskrestore, consulta Argumentos admitidos para el restablecimiento del disco.

  6. Cancela el registro del nodo secundario de tu sistema SAP HANA de alta disponibilidad:

    hdbnsutil -sr_unregister
  7. En el nodo principal de tu sistema SAP HANA con alta disponibilidad, inhabilita la replicación del sistema SAP HANA:

    hdbnsutil -sr_disable
  8. En el nodo principal, recupera tu base de datos de SAP HANA con la opción requerida:

    Recupera en el tiempo de la instantánea

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a la hora en que se creó la instantánea de disco, sigue estos pasos:

    1. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    2. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    4. Recupera las bases de datos de usuarios mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

    Recupera a un momento específico

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a un momento específico, sigue estos pasos:

    1. Verifica que hayas creado una copia de seguridad para el volumen /hana/log en Cloud Storage mediante la función Backint del agente de Google Cloud para SAP. Para obtener más información sobre esta función, consulta Copia de seguridad y recuperación para SAP HANA con Backint.
    2. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    3. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    5. Recupera las bases de datos de usuario mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

  9. En el nodo principal, habilita la replicación del sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  10. Vuelve a registrar el nodo en espera con el nodo principal:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  11. Verifica que la base de datos del nodo en espera esté completamente sincronizada con la base de datos del nodo principal.

  12. Como usuario raíz, sal del modo de mantenimiento del clúster de HA. Si usas Pacemaker, ejecuta el siguiente comando:

    RHEL

    pcs property set maintenance-mode=false

    SLES

    crm configure property maintenance-mode=false

Recupera la base de datos para una implementación de DR de escalamiento vertical

Para recuperar la base de datos de un sistema de escalamiento vertical de SAP HANA que se implementa con una solución de recuperación ante desastres en Google Cloud, completa los siguientes pasos:

  1. Detén tus bases de datos de SAP HANA mediante la ejecución del siguiente comando en las instancias principal y en espera de tu implementación de DR:

    HDB stop
  2. Cambia a la instancia principal de la implementación de DR de SAP HANA.

  3. Recupera el disco que aloja el volumen /hana/data mediante la ejecución del comando hanadiskrestore del agente:

    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

    Reemplaza lo siguiente:

    • SOURCE_PROJECT_ID: el ID del proyecto de Google Cloud en el que existe la instantánea de disco.
    • SID: el identificador del sistema SAP (SID) del sistema SAP HANA
    • SOURCE_SNAPSHOT_NAME: el nombre de la instantánea del disco con la que crearás el disco nuevo.
    • SOURCE_DISK_NAME: el nombre del disco de origen que aloja el volumen /hana/data.
    • SOURCE_DISK_ZONE: el nombre de la zona en la que se implementa el disco de origen.

    Para obtener información sobre los argumentos que puedes usar con el comando hanadiskrestore, consulta Argumentos admitidos para el restablecimiento del disco.

  4. En la instancia principal, inhabilita la replicación del sistema SAP HANA:

    hdbnsutil -sr_disable
  5. En la instancia principal, recupera tu base de datos de SAP HANA con la opción requerida:

    Recupera en el tiempo de la instantánea

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a la hora en que se creó la instantánea de disco, sigue estos pasos:

    1. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    2. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    4. Recupera las bases de datos de usuarios mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

    Recupera a un momento específico

    Para recuperar la base de datos de SAP HANA mediante su restablecimiento a un momento específico, sigue estos pasos:

    1. Verifica que hayas creado una copia de seguridad para el volumen /hana/log en Cloud Storage mediante la función Backint del agente de Google Cloud para SAP. Para obtener más información sobre esta función, consulta Copia de seguridad y recuperación para SAP HANA con Backint.
    2. Cambia al usuario SIDadm.
      su - SID_LCadm

      Reemplaza SID_LC por el SID de tu sistema SAP HANA. Usa minúsculas para las letras.

    3. Recupera la base de datos del sistema mediante la ejecución del siguiente comando:
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. Conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      Reemplaza lo siguiente:

      • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
      • INSTANCE_NUMBER: el número de instancia de SAP HANA.
    5. Recupera las bases de datos de usuario mediante la ejecución del siguiente comando para cada base de datos de usuario:
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      Reemplaza TENANT_SID por el SID de la base de datos del usuario.

  6. En la instancia principal, habilita la replicación del sistema SAP HANA:

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  7. Registra la instancia en espera con la instancia principal:

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  8. Verifica que la base de datos en la instancia en espera esté completamente sincronizada con la base de datos en la instancia principal.

Realiza una copia del sistema o una actualización del sistema

Para usar una copia de seguridad basada en instantáneas de disco de un sistema SAP HANA para recuperar otro sistema SAP HANA, completa los siguientes pasos:

  1. En el sistema de origen, crea una copia de seguridad basada en instantáneas mediante la ejecución del comando hanadiskbackup del agente. Para obtener instrucciones, consulta Crea una copia de seguridad basada en una instantánea de disco.
  2. Si los SID de los sistemas de origen y de destino son diferentes, cambia el nombre del directorio /hana/data/SID en el sistema de origen para que coincida con el sistema de destino:

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

    Reemplaza lo siguiente:

    • SOURCE_SID: el SID del sistema SAP HANA de origen
    • TARGET_SID: el SID del sistema SAP HANA de destino
  3. En el sistema de destino, recupera el disco que aloja el volumen /hana/data mediante la ejecución del comando hanadiskrestore del agente.

  4. En el sistema de destino, recupera la base de datos del 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. Si deseas que tu base de datos de usuario tenga el SID del sistema de origen, puedes cambiar el nombre si sigues las instrucciones del documento de SAP HANA Cambiar el nombre de una base de datos de usuario.

  6. En el sistema de destino, conéctate a la base de datos del sistema. Por ejemplo, puedes ejecutar el siguiente comando de:

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

    Reemplaza lo siguiente:

    • SYSTEM_DB_PASSWORD: la contraseña de la base de datos del sistema.
    • INSTANCE_NUMBER: el número de instancia de SAP HANA.
  7. En el sistema de destino, recupera las bases de datos de usuarios mediante la ejecución del siguiente comando para cada base de datos de usuarios:

    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

Valida la coherencia de las instantáneas

En esta sección, se describe cómo puedes validar la coherencia de los datos en la instantánea de disco con la herramienta hdbpersdiag de SAP. Si deseas obtener información sobre otras prácticas recomendadas de Google Cloud para las operaciones de copia de seguridad y recuperación basadas en instantáneas de disco, consulta Prácticas recomendadas.

Para validar la coherencia de una instantánea, completa los siguientes pasos:

  1. Crea un disco a partir de una instantánea que creaste mediante el comando hanadiskbackup del agente. Usa el comando gcloud compute disks create:

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

    Reemplaza lo siguiente:

    • DISK_NAME: el nombre del disco temporal.
    • SIZE: el tamaño del disco temporal.
    • SNAPSHOT_NAME: el nombre de la instantánea de origen.
    • DISK_TYPE: el tipo de disco para el disco temporal.
    • ZONE: la zona de Compute Engine en la que deseas implementar el disco temporal.
  2. Conecta el disco a una VM que no sea tu host de SAP HANA. Usa el comando gcloud compute instances attach-disk:

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

    Reemplaza lo siguiente:

    • VM_INSTANCE_NAME: el nombre de la VM en la que deseas implementar el disco que creaste.
    • DISK_NAME: el nombre del disco que creaste.
    • ZONE: la zona de Compute Engine en la que se implementa tu VM
  3. Conéctate a la VM con tu método SSH preferido.

  4. Activa el disco nuevo como un sistema de archivos temporal:

    1. A nivel del SO, busca el grupo de volúmenes que no tiene ningún volumen lógico activo:

      vgdisplay
      

      El resultado es similar al siguiente ejemplo.

      --- 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. Cambia el nombre del grupo de volúmenes mediante el UUID de VG. En el ejemplo anterior, es Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR.

      vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
      
    3. Activa el grupo de volúmenes y el volumen lógico:

      vgchange -a y vg_hana_data_temp
      lvchange -a y /dev/vg_hana_data_temp/data
      
    4. Activa el volumen lógico en un sistema de archivos temporal, por ejemplo, /hana/data_temp:

      mkdir /hana/data_temp
      mount /dev/vg_hana_data_temp/data /hana/data_temp
      
    5. Verifica que todos los discos estén activados de forma correcta:

      lsblk
      

      El resultado es similar al siguiente ejemplo.

      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. Como usuario SIDadm, ejecuta la herramienta hdbpersdiag para los volúmenes de datos que se incluyen en el sistema de archivos temporal:

    for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
    
  6. Verifica el resultado de la herramienta de hdbpersdiag.

  7. Si planeas realizar esta verificación de coherencia en el futuro, puedes dejar el grupo de volúmenes nuevo como está. De lo contrario, bórralo.

  8. Desconectarás el disco de la VM. Usa el comando gcloud compute instances detach-disk:

    VM_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    
  9. Borra el disco. Usa el comando gcloud compute disks delete:

    gcloud compute disks delete DISK_NAME \
       --zone=ZONE
    

Soluciona problemas

Si bien el agente de Google Cloud para SAP está diseñado para abordar la mayoría de los problemas que pueden ocurrir durante las operaciones de copia de seguridad y recuperación basadas en instantáneas de disco para SAP HANA, hay algunas situaciones en las que se requiere intervención manual.

Si deseas solucionar cualquier problema con la función de instantánea de disco del agente de Google Cloud para SAP, consulta Problema con una operación de recuperación o copia de seguridad basada en una instantánea de disco.

Obtenga asistencia

Si necesitas ayuda para resolver un problema con el Agente de Google Cloud para SAP, recopila la información de diagnóstico requerida y comunícate con el servicio de atención al cliente de Cloud. Si deseas obtener más información, consulta la información de diagnóstico del agente de Google Cloud para SAP para SAP HANA.