Compartir a través de


Sugerencias y trucos de uso de la herramienta Azure Application Consistent Snapshot

En este artículo se ofrecen sugerencias y trucos que pueden resultar útiles cuando se usa AzAcSnap.

Configuración de invalidación global para controlar el comportamiento de azacsnap

AzAcSnap 8 introdujo un nuevo archivo de configuración global (.azacsnaprc) que debe encontrarse en el mismo directorio (actual de trabajo) en el que se ejecuta azacsnap. El nombre de archivo es .azacsnaprc y con el carácter de punto '.' como inicio del nombre de archivo lo oculta en las listas de directorios estándar. El archivo permite que la configuración global controle el comportamiento de AzAcSnap que se va a establecer. El formato es una entrada por línea con una variable de personalización compatible y un nuevo valor de invalidación.

Configuración, que se puede controlar agregando o editando el archivo de configuración de invalidación global o estableciéndolos como variables de entorno:

  • MAINLOG_LOCATION que personaliza la ubicación del archivo de salida "main-log", que se denomina azacsnap.log y se introdujo en AzAcSnap 8. Los valores deben ser rutas de acceso absolutas y el valor predeterminado = '.' (que es el directorio de trabajo actual). Por ejemplo, para asegurarse de que el archivo de salida "main-log" vaya al /home/azacsnap/bin/logs agregue lo siguiente al archivo .azacsnaprc:
    • MAINLOG_LOCATION=/home/azacsnap/bin/logs
  • AZURE_MANAGEMENT_ENDPOINT para personalizar la ubicación del punto de conexión de administración de Azure al que AzAcSnap realizará llamadas a la API REST de Azure en se introdujo en AzAcSnap 9a. Los valores deben ser rutas de acceso de dirección URL y el valor predeterminado = 'https://management.azure.com'. Por ejemplo, para configurar AzAcSnap para asegurarse de que todas las llamadas de administración van al punto de conexión de administración de Azure para US Govt Cloud (ref: Guía de Azure Government para desarrolladores) agregue lo siguiente al archivo .azacsnaprc:
    • AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net

Nota:

A partir de AzAcSnap 9a, todos estos valores también se pueden establecer como variables de entorno de línea de comandos, o en lugar de, el archivo .azacsnaprc. Por ejemplo, en Linux, el AZURE_MANAGEMENT_ENDPOINT se puede establecer con export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net antes de ejecutar AzAcSnap.

Análisis del registro principal

AzAcSnap 8 introdujo un nuevo "main-log" para proporcionar un análisis más sencillo de las ejecuciones de AzAcSnap. La inspiración de este archivo es el catálogo de copia de seguridad de SAP HANA, que muestra cuándo se inició AzAcSnap, cuánto tiempo tardó y cuál es el nombre de la instantánea. Con AzAcSnap, esta idea se ha llevado más allá para incluir información para cada uno de los comandos AzAcSnap, concretamente las opciones -c, y el archivo tiene las siguientes cabeceras:

DATE_TIME,OPERATION_NAME,STATUS,SID,DATABASE_TYPE,DURATION,SNAPSHOT_NAME,AZACSNAP_VERSION,AZACSNAP_CONFIG_FILE,VOLUME

Cuando AzAcSnap se ejecuta, anexa al registro la información adecuada según el -c comando usado, los ejemplos de salida son los siguientes:

2023-03-29T16:10:57.8643546+13:00,about,started,,,,,8,azacsnap.json,
2023-03-29T16:10:57.8782148+13:00,about,SUCCESS,,,0:00:00.0258013,,8,azacsnap.json,
2023-03-29T16:11:55.7276719+13:00,backup,started,PR1,Hana,,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:03.3774633+13:00,backup,SUCCESS,PR1,Hana,0:01:07.7558663,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:30.1312963+13:00,details,started,PR1,Hana,,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;
2023-03-29T16:13:33.1806098+13:00,details,SUCCESS,PR1,Hana,0:00:03.1380686,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;

Este formato permite analizar el archivo con los comandos de Linux watch, grep, head, taily column para obtener actualizaciones continuas de las copias de seguridad de AzAcSnap. Una combinación de ejemplo de estos comandos en un script de shell único para supervisar AzAcSnap es la siguiente:

#!/bin/bash
#
# mainlog-watcher.sh
# Monitor execution of AzAcSnap backup commands
#
# These values can be modified as appropriate.
# Mainlog header fields:
#       1. DATE_TIME,
#       2. OPERATION_NAME,
#       3. STATUS,
#       4. SID,
#       5. DATABASE_TYPE,
#       6. DURATION,
#       7. SNAPSHOT_NAME,
#       8. AZACSNAP_VERSION,
#       9. AZACSNAP_CONFIG_FILE,
#       10. VOLUME
FIELDS_TO_INCLUDE="1,2,3,5,4,6,7"
SCREEN_REFRESH_SECS=2
#
# Use AzAcSnap global settings file (.azacsnaprc) if available,
# otherwise use the default location of the current working directory.
AZACSNAP_RC=".azacsnaprc"
if [ -f ${AZACSNAP_RC} ]; then
    source ${AZACSNAP_RC} 2> /dev/null
else
    MAINLOG_LOCATION="."
fi
cd ${MAINLOG_LOCATION}
echo "Changing current working directory to ${MAINLOG_LOCATION}"
#
# Default MAINLOG filename.
HOSTNAME=$(hostname)
MAINLOG_FILENAME="azacsnap.log"
#
# High-level explanation of how commands used.
# `watch` - continuously monitoring the command output.
# `grep` - filter only backup runs.
# `head` and `tail` - add/remove column headers.
# `sed` to remove millisecs from date.
# `awk` format output for `column`.
# `column` - provide pretty output.
FIELDS_FOR_AWK=$(echo "${FIELDS_TO_INCLUDE}" | sed 's/^/\\\$/g' | sed 's/,/,\\\$/g')
PRINTOUT="{OFS=\\\",\\\";print ${FIELDS_FOR_AWK}}"
#
echo -n "Parsing '${MAINLOG_FILENAME}' for field #s ${FIELDS_TO_INCLUDE} = "
bash -c "cat ${MAINLOG_FILENAME} | grep -e \"DATE\" | head -n1 -  | awk -F\",\" \"${PRINTOUT}\" "
#
watch -t -n ${SCREEN_REFRESH_SECS} \
  "\
  echo -n \"Monitoring AzAcSnap on '${HOSTNAME}' @ \" ; \
  date ; \
  echo ; \
  cat ${MAINLOG_FILENAME} \
    | grep -e \"DATE\" -e \",backup,\" \
    | ( sleep 1; head -n1 - ; sleep 1; tail -n+2 - | tail -n20 \
      | sed 's/\(:[0-9][0-9]\)\.[0-9]\{7\}/\1/' ; sleep 1 ) \
    | awk -F\",\" \"${PRINTOUT}\" \
    | column -s\",\" -t \
  "
exit 0

Genera la salida siguiente actualizada cada dos segundos.

Monitoring AzAcSnap on 'azacsnap' @ Thu Sep 21 11:27:40 NZST 2023

DATE_TIME                  OPERATION_NAME  STATUS   DATABASE_TYPE  SID       DURATION         SNAPSHOT_NAME
2023-09-21T07:00:02+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B07A2D77A
2023-09-21T07:02:10+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:08.0338537  all-volumes__F6B07A2D77A
2023-09-21T08:00:03+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B09C83210
2023-09-21T08:02:12+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:09.9954439  all-volumes__F6B09C83210
2023-09-21T09:00:03+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B0BED814B
2023-09-21T09:00:03+12:00  backup          started  Hana           PR1                        pr1_hourly__F6B0BED817F
2023-09-21T09:01:10+12:00  backup          SUCCESS  Hana           PR1       0:01:07.8575664  pr1_hourly__F6B0BED817F
2023-09-21T09:02:12+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:09.4572157  all-volumes__F6B0BED814B

Limitación de permisos de entidad de servicio

Puede que sea necesario limitar el ámbito de la entidad de servicio de AzAcSnap. Revise la documentación de Azure RBAC para obtener más información sobre la administración de acceso específico de recursos de Azure.

A continuación se proporciona una definición de roles de ejemplo con las acciones mínimas necesarias para que AzAcSnap funcione.

az role definition create --role-definition '{ \
  "Name": "Azure Application Consistent Snapshot tool", \
  "IsCustom": "true", \
  "Description": "Perform snapshots on ANF volumes.", \
  "Actions": [ \
    "Microsoft.NetApp/*/read", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete" \
  ], \
  "NotActions": [], \
  "DataActions": [], \
  "NotDataActions": [], \
  "AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'

Para que las opciones de restauración funcionen correctamente, la entidad de servicio AzAcSnap también debe ser capaz de crear volúmenes. En este caso, la definición de roles necesita una cláusula "Actions" adicional agregada, por lo que la entidad de servicio completa debe tener un aspecto similar al del ejemplo siguiente.

az role definition create --role-definition '{ \
  "Name": "Azure Application Consistent Snapshot tool", \
  "IsCustom": "true", \
  "Description": "Perform snapshots and restores on ANF volumes.", \
  "Actions": [ \
    "Microsoft.NetApp/*/read", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/write" \
  ], \
  "NotActions": [], \
  "DataActions": [], \
  "NotDataActions": [], \
  "AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'

Realización manual de instantáneas

Antes de ejecutar los comandos de copia de seguridad (azacsnap -c backup), compruebe la configuración ejecutando los comandos de prueba y compruebe que se ejecutan correctamente. La ejecución correcta de estas pruebas ha demostrado que azacsnap puede comunicarse con la base de datos de SAP HANA y el sistema de almacenamiento subyacente del sistema SAP HANA en Azure (instancias grandes) o Azure NetApp Files.

  • azacsnap -c test --test hana
  • azacsnap -c test --test storage

A continuación, para realizar una copia de seguridad manual de la instantánea de base de datos, ejecute el siguiente comando:

azacsnap -c backup --volume data --prefix hana_TEST --retention=1

Configuración de la copia de seguridad automática de instantáneas

Es habitual que los sistemas Unix/Linux usen cron para automatizar la ejecución de comandos en un sistema. La práctica estándar de las herramientas de instantáneas consiste en configurar el crontabdel usuario.

A continuación se muestra un ejemplo de crontab para que el usuario azacsnap automatice las instantáneas.

MAILTO=""
# =============== TEST snapshot schedule ===============
# Data Volume Snapshots - taken every hour.
@hourly (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume data --prefix hana_TEST --retention=9)
# Other Volume Snapshots - taken every 5 minutes, excluding the top of the hour when hana snapshots taken
5,10,15,20,25,30,35,40,45,50,55 * * * * (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix logs_TEST --retention=9)
# Other Volume Snapshots - using an alternate config file to snapshot the boot volume daily.
@daily (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix DailyBootVol --retention=7 --configfile boot-vol.json)

Explicación del crontab anterior.

  • MAILTO="": al tener un valor vacío, esto impide que cron intente enviar automáticamente el correo electrónico al usuario local de Linux al ejecutar la entrada crontab.
  • Las versiones abreviadas de intervalos para las entradas de crontab se explican por sí mismas:
    • @monthly = se ejecuta una vez al mes, es decir, "0 0 1 * *".
    • @weekly = se ejecuta una vez a la semana, es decir, "0 0 * * 0".
    • @daily = se ejecuta una vez al día, es decir, "0 0 * * *".
    • @hourly = se ejecuta una vez a la hora, es decir, "0 * * * *".
  • Las cinco primeras columnas se usan para designar horas, consulte los ejemplos de columna siguientes:
    • 0,15,30,45: cada 15 minutos
    • 0-23: cada hora
    • * :todos los días
    • * : cada mes
    • * : todos los días de la semana
  • Línea de comandos que se va a ejecutar entre paréntesis "()"
    • . /home/azacsnap/.profile = extraer el perfil del usuario para configurar su entorno, incluidos $PATH, etc.
    • cd /home/azacsnap/bin = cambiar el directorio de ejecución a la ubicación "/home/azacsnap/bin" donde se encuentran los archivos de configuración.
    • azacsnap -c ..... = comando azacsnap completo que se va a ejecutar, incluidas todas las opciones.

Para obtener más información sobre cron y el formato del archivo crontab, vea cron.

Nota:

Los usuarios son responsables de supervisar los trabajos cron para asegurarse de que las instantáneas se generan correctamente.

Administración de archivos de registro de AzAcSnap

AzAcSnap escribe la salida de su operación en los archivos de registro para ayudar con la depuración y para validar el funcionamiento correcto. Estos archivos de registro siguen creciendo a menos que se administren activamente. Afortunadamente, los sistemas basados en UNIX tienen una herramienta para administrar y archivar los archivos de registro llamada logrotate.

La salida siguiente proporciona una configuración de ejemplo para logrotate. Esta configuración guarda un máximo de 31 registros (aproximadamente un mes), y cuando los archivos de registro son mayores de 10 000 los alterna cambiándoles el nombre con un número agregado al nombre del archivo y los comprime.

# azacsnap logrotate configuration file
compress

~/bin/azacsnap*.log {
    rotate 31
    size 10k
}

Una vez creado el archivo logrotate.conf, el comando logrotate debe ejecutarse periódicamente para archivar los archivos de registro de AzAcSnap en consecuencia. La automatización del comando logrotate se puede realizar mediante cron. La salida siguiente es una línea de crontab del usuario de azacsnap, en este ejemplo se ejecuta logrotate diariamente mediante el archivo de configuración ~/logrotate.conf.

@daily /usr/sbin/logrotate -s ~/logrotate.state ~/logrotate.conf >> ~/logrotate.log

Nota:

En el ejemplo anterior, el archivo logrotate.conf está en el directorio principal del usuario (~).

Después de varios días, los archivos de registro de azacsnap deben ser similares a la siguiente lista de directorios.

ls -ltra ~/bin/logs
-rw-r--r-- 1 azacsnap users 127431 Mar 14 23:56 azacsnap-backup-azacsnap.log.6.gz
-rw-r--r-- 1 azacsnap users 128379 Mar 15 23:56 azacsnap-backup-azacsnap.log.5.gz
-rw-r--r-- 1 azacsnap users 129272 Mar 16 23:56 azacsnap-backup-azacsnap.log.4.gz
-rw-r--r-- 1 azacsnap users 128010 Mar 17 23:56 azacsnap-backup-azacsnap.log.3.gz
-rw-r--r-- 1 azacsnap users 128947 Mar 18 23:56 azacsnap-backup-azacsnap.log.2.gz
-rw-r--r-- 1 azacsnap users 128971 Mar 19 23:56 azacsnap-backup-azacsnap.log.1.gz
-rw-r--r-- 1 azacsnap users 167921 Mar 20 01:21 azacsnap-backup-azacsnap.log

Supervisión de las instantáneas

Se deben supervisar las siguientes condiciones para garantizar un sistema correcto:

  1. Espacio disponible en disco. Las instantáneas consumen lentamente espacio en disco en función de la tasa de cambio de nivel de bloque, ya que se conservan los bloques de disco más antiguos en la instantánea.
    1. Para ayudar a automatizar la administración del espacio en disco, use las opciones --retention y --trim para limpiar automáticamente las instantáneas y los archivos de registro de base de datos antiguos.
  2. Ejecución correcta de las herramientas de instantáneas
    1. Compruebe el archivo *.result para ver si se ha realizado la última ejecución de azacsnap.
    2. Compruebe /var/log/messages para ver la salida del comando azacsnap.
  3. Coherencia de las instantáneas mediante su restauración en otro sistema periódicamente.

Nota:

Para mostrar los detalles de la instantánea, ejecute el comando azacsnap -c details.

Eliminación de una instantánea

Para eliminar una instantánea, use el comando azacsnap -c delete. No es posible eliminar instantáneas del nivel de sistema operativo. Debe usar el comando correcto (azacsnap -c delete) para eliminar las instantáneas de almacenamiento.

Importante

Tenga cuidado al eliminar una instantánea. Una vez eliminadas, es IMPOSIBLE recuperar las instantáneas eliminadas.

Restauración de una instantánea

Una instantánea de volumen de almacenamiento se puede restaurar en un otro volumen (-c restore --restore snaptovol). En el caso de Azure (instancias grandes), el volumen se puede revertir a una instantánea (-c restore --restore revertvolume).

Nota:

NO se ha proporcionado ningún comando de recuperación de base de datos.

Una instantánea puede volver a copiarse en el área de datos de SAP HANA, pero SAP HANA no debe estar en ejecución cuando se realiza una copia (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*).

En el caso de Azure (instancias grandes), puede ponerse en contacto con el equipo de operaciones de Microsoft; para ello, abra una solicitud de servicio para restaurar la instantánea que quiera a partir de las instantáneas existentes disponibles. Puede abrir una solicitud de servicio a través de Azure Portal.

Si decide realizar la conmutación por error de recuperación ante desastres, el comando azacsnap -c restore --restore revertvolume en el sitio de recuperación ante desastres pone automáticamente a disposición las instantáneas de volumen más recientes (/hana/data y /hana/logbackups) para permitir una recuperación de SAP HANA. Use este comando con precaución, ya que interrumpe la replicación entre los sitios de producción y de recuperación ante desastres.

Configuración de instantáneas solo para volúmenes de "arranque"

Importante

Esta operación solo se aplica a Azure (instancias grandes).

En algunos casos, los clientes ya tienen herramientas para proteger SAP HANA y solo quieren configurar instantáneas de volumen de "arranque". En este caso, solo es necesario completar los pasos siguientes.

  1. Complete los pasos del 1 al 4 de los requisitos previos para la instalación.

  2. Habilitar la comunicación con el almacenamiento.

  3. Descargue y ejecute el instalador para instalar las herramientas de instantánea.

  4. Complete la configuración de las herramientas de instantáneas.

  5. Obtenga la lista de volúmenes que se van a agregar al archivo de configuración azacsnap; en este ejemplo, el nombre de usuario de Storage es cl25h50backup y la dirección IP de Storage es 10.1.1.10

    ssh cl25h50backup@10.1.1.10 "volume show -volume *boot*"
    
    Last login time: 7/20/2021 23:54:03
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v51_vol aggr_n01_ssd online RW 150GB 57.24GB  61%
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v52_vol aggr_n01_ssd online RW 150GB 81.06GB  45%
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v53_vol aggr_n01_ssd online RW 150GB 79.56GB  46%
    3 entries were displayed.
    

    Nota:

    En este ejemplo, este host forma parte de un sistema de 3 nodos de escalabilidad horizontal y los tres volúmenes de arranque se pueden ver desde este host. Esto significa que los tres volúmenes de arranque pueden ser instantáneas de este host y que los tres deben agregarse al archivo de configuración en el paso siguiente.

  6. Cree otro archivo de configuración tal y como se indica a continuación. Los detalles del volumen de arranque deben estar en la estrofa OtherVolume:

    azacsnap -c configure --configuration new --configfile BootVolume.json
    
    Building new config file
    Add comment to config file (blank entry to exit adding comments): Boot only config file.
    Add comment to config file (blank entry to exit adding comments):
    Add database to config? (y/n) [n]: y
    HANA SID (for example, H80): X
    HANA Instance Number (for example, 00): X
    HANA HDB User Store Key (for example, `hdbuserstore List`): X
    HANA Server's Address (hostname or IP address): X
    Add ANF Storage to database section? (y/n) [n]:
    Add HLI Storage to database section? (y/n) [n]: y
    Add DATA Volume to HLI Storage section of Database section? (y/n) [n]:
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v51_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v52_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v53_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]:
    Add HLI Storage to database section? (y/n) [n]:
    Add database to config? (y/n) [n]:
    
    Editing configuration complete, writing output to 'BootVolume.json'.
    
  7. Compruebe el archivo de configuración, consulte el ejemplo siguiente:

    Use el comando cat para ver el contenido del archivo de configuración:

    cat BootVolume.json
    
    {
      "version": "5.0",
      "logPath": "./logs",
      "securityPath": "./security",
      "comments": [
        "Boot only config file."
      ],
      "database": [
        {
          "hana": {
            "serverAddress": "X",
            "sid": "X",
            "instanceNumber": "X",
            "hdbUserStoreName": "X",
            "savePointAbortWaitSeconds": 600,
            "hliStorage": [
              {
                "dataVolume": [],
                "otherVolume": [
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v51_vol"
                  },
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v52_vol"
                  },
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v53_vol"
                  }
                ]
              }
            ],
            "anfStorage": []
          }
        }
      ]
    }
    
  8. Prueba de una copia de seguridad de volumen de arranque

    azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.json
    
  9. Compruebe que aparece, tenga en cuenta la adición de la opción --snapshotfilter para limitar la lista de instantáneas devuelta.

    azacsnap -c details --snapshotfilter TestBootVolume --configfile BootVolume.json
    

    Salida del comando:

    List snapshot details called with snapshotFilter 'TestBootVolume'
    #, Volume, Snapshot, Create Time, HANA Backup ID, Snapshot Size
    #1, t250_sles_boot_sollabams07v51_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v51_vol, , , Size used by Snapshots, 1.31GB
    #1, t250_sles_boot_sollabams07v52_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v52_vol, , , Size used by Snapshots, 1.31GB
    #1, t250_sles_boot_sollabams07v53_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v53_vol, , , Size used by Snapshots, 1.31GB
    
  10. Opcional Configure la copia de seguridad automática de instantáneas con crontab o un programador adecuado capaz de ejecutar los comandos de copia de seguridad de azacsnap.

Nota:

No es necesario configurar la comunicación con SAP HANA.

Restauración de una instantánea de "arranque"

Importante

Esta operación solo se destina a Azure (instancias grandes). El servidor se restaurará hasta el momento en que se tomó la instantánea.

Se puede recuperar una instantánea de "arranque" tal y como se indica a continuación:

  1. El cliente debe apagar el servidor.
  2. Después de apagar el servidor, el cliente tendrá que abrir una solicitud de servicio que contenga el identificador de la máquina y la instantánea que se va a restaurar.

    Los clientes pueden abrir una solicitud de servicio a través de Azure Portal.

  3. Microsoft restaura el LUN del sistema operativo mediante el identificador de máquina y la instantánea especificados y, a continuación, arranca el servidor.
  4. A continuación, el cliente debe confirmar que el servidor ha arrancado y se encuentra en buen estado.

No se realizará ningún otro paso después de la restauración.

Hechos clave que se deben conocer sobre las instantáneas

Atributos clave de las instantáneas de volumen de almacenamiento:

  • Ubicación de las instantáneas: las instantáneas se pueden encontrar en un directorio virtual (.snapshot) dentro del volumen. Consulte los siguientes ejemplos de Azure (instancias grandes).

    • Base de datos: /hana/data/<SID>/mnt00001/.snapshot
    • Elementos compartidos: /hana/shared/<SID>/.snapshot
    • Registros: /hana/logbackups/<SID>/.snapshot
    • Arranque: las instantáneas de arranque para HLI son no visibles desde el nivel de sistema operativo, pero se pueden mostrar con azacsnap -c details.

    Nota:

    .snapshot es una carpeta virtual oculta de solo lectura que proporciona acceso de solo lectura a las instantáneas.

  • Instantánea máxima: el hardware puede admitir hasta 250 instantáneas por volumen. El comando snapshot mantiene un número máximo de instantáneas para el prefijo en función del conjunto de retención en la línea de comandos. Se eliminan más instantáneas, más allá del número de retención con el mismo prefijo.

  • Nombre de instantánea: el nombre de la instantánea incluye la etiqueta de prefijo proporcionada por el cliente.

  • Tamaño de la instantánea: depende del tamaño o los cambios en el nivel de base de datos.

  • Ubicación de los archivos de registro: los archivos de registro generados por los comandos se muestran en carpetas, tal y como se define en el archivo de configuración JSON, que, de forma predeterminada, es una subcarpeta en la que se ejecuta el comando (por ejemplo, ./logs).

Pasos siguientes