Tipps und Tricks zur Verwendung des Tools für konsistente Momentaufnahmen in Azure-Anwendungen für Azure NetApp Files
Dieser Artikel enthält Tipps und Tricks, die bei der Verwendung von AzAcSnap hilfreich sein können.
Globale Außerkraftsetzungseinstellungen zur Steuerung des AzAcSnap-Verhaltens
In AzAcSnap 8 wurde eine neue globale Einstellungsdatei (.azacsnaprc
) eingeführt, die sich im gleichen Verzeichnis (dem aktuellen Arbeitsverzeichnis) befindet, in dem AzAcSnap ausgeführt wird. Der Dateiname lautet .azacsnaprc
. Durch Verwenden des Punkts „.“ am Anfang des Dateinamens wird die Datei aus Standardverzeichnisauflistungen ausgeblendet. In der Datei können globale Einstellungen, die das Verhalten von AzAcSnap steuern, festgelegt werden. Sie hat folgendes Format: ein Eintrag pro Zeile mit einer unterstützten Anpassungsvariablen und einem neuen Außerkraftsetzungswert.
Einstellungen, die durch Hinzufügen/Bearbeiten der globalen Datei für Außerkraftsetzungseinstellungen oder durch Festlegen als Umgebungsvariablen gesteuert werden können:
- MAINLOG_LOCATION: Damit lässt sich der Speicherort der Hauptprotokoll-Ausgabedatei anpassen, die
azacsnap.log
heißt und in AzAcSnap 8 eingeführt wurde. Als Werte sind der absolute Pfade und der Standardwert = '.' (das aktuelle Arbeitsverzeichnis) zulässig. Um z. B. sicherzustellen, dass die Hauptprotokoll-Ausgabedatei in das Verzeichnis/home/azacsnap/bin/logs
ausgegeben wird, fügen Sie der.azacsnaprc
-Datei Folgendes hinzu:MAINLOG_LOCATION=/home/azacsnap/bin/logs
- AZURE_MANAGEMENT_ENDPOINT: Dient zum Anpassen des Standorts des Azure Management-Endpunkts, den AzAcSnap für Azure REST-API-Aufrufe verwendet, und wurde in AzAcSnap 9a eingeführt. Als Werte sind URL-Pfade und der Standardwert = 'https://management.azure.com' zulässig. Um beispielsweise AzAcSnap so zu konfigurieren, dass alle Verwaltungsaufrufe an den Azure Management Endpoint for US Govt Cloud weitergeleitet werden (siehe Azure Government Guidance for developers), fügen Sie der Datei
.azacsnaprc
Folgendes hinzu:AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net
Hinweis
Ab AzAcSnap 9a können alle diese Werte auch als Befehlszeilenumgebungsvariablen oder anstelle der Datei .azacsnaprc
festgelegt werden. Beispielsweise kann unter Linux die Einstellung AZURE_MANAGEMENT_ENDPOINT
mit export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net
festgelegt werden, bevor AzAcSnap ausgeführt wird.
Analyse des Hauptprotokolls
In AzAcSnap 8 wurde ein neues Hauptprotokoll eingeführt, um eine einfachere Analyse der Ausführung von AzAcSnap zu ermöglichen. Vorbild für diese Datei ist der SAP HANA-Sicherungskatalog, aus dem hervorgeht, wann AzAcSnap gestartet wurde, wie lange die Ausführung gedauert hat und wie der Name der Momentaufnahme lautet. Bei AzAcSnap wurde diese Idee erweitert, um Informationen zu den einzelnen AzAcSnap-Befehlen, insbesondere die -c
-Optionen, einzuschließen. Die Datei verfügt über die folgenden Header:
DATE_TIME,OPERATION_NAME,STATUS,SID,DATABASE_TYPE,DURATION,SNAPSHOT_NAME,AZACSNAP_VERSION,AZACSNAP_CONFIG_FILE,VOLUME
Wenn AzAcSnap ausgeführt wird, werden abhängig vom verwendeten -c
-Befehl die entsprechenden Informationen an das Protokoll angefügt. Beispiele für die Ausgabe sind:
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;
Durch dieses Format kann die Datei mit den Linux-Befehlen watch
, grep
, head
, tail
und column
analysiert werden, um fortlaufende Updates von AzAcSnap-Sicherungen zu erhalten. Eine Beispielkombination dieser Befehle in einem einzigen Shellskript zum Überwachen von AzAcSnap sieht wie folgt aus:
#!/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
Erzeugt die folgende Ausgabe, die alle zwei Sekunden aktualisiert wird.
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
Begrenzen von Dienstprinzipalberechtigungen
Möglicherweise ist es erforderlich, den Berechtigungsbereich des AzAcSnap-Dienstprinzipals einzuschränken. Weitere Informationen zur fein abgestuften Zugriffsverwaltung von Azure-Ressourcen finden Sie in der Azure RBAC-Dokumentation.
Im Folgenden finden Sie eine Beispielrollendefinition mit den mindestens erforderlichen Aktionen, die für die Funktion von AzAcSnap erforderlich sind.
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>"] \
}'
Damit Wiederherstellungsoptionen erfolgreich funktionieren, muss der AzAcSnap-Dienstprinzipal auch Volumes erstellen können. In diesem Fall benötigt die Rollendefinition eine zusätzliche „Action“-Klausel. Daher sollte der vollständige Dienstprinzipal wie im folgenden Beispiel aussehen.
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>"] \
}'
Manuelles Erstellen von Momentaufnahmen
Überprüfen Sie vor dem Ausführen jeglicher Sicherungsbefehle (azacsnap -c backup
) die Konfiguration, indem Sie die Testbefehle ausführen und überprüfen, ob Sie erfolgreich ausgeführt werden. Die korrekte Ausführung dieser Tests hat gezeigt, dass azacsnap
mit der installierten SAP HANA-Datenbank und dem zugrunde liegenden Speichersystem von SAP HANA in Azure (große Instanzen) oder dem Azure NetApp Files-System kommunizieren kann.
azacsnap -c test --test hana
azacsnap -c test --test storage
Führen Sie dann zur Erstellung einer manuellen Datenbankmomentaufnahme den folgenden Befehl aus:
azacsnap -c backup --volume data --prefix hana_TEST --retention=1
Einrichten der automatischen Momentaufnahmensicherung
Auf Unix/Linux-Systemen ist es gängige Praxis, die Ausführung von Befehlen auf einem System mit cron
zu automatisieren. Das Standardverfahren für die Momentaufnahmetools besteht darin, die crontab
des Benutzers einzurichten.
Es folgt ein Beispiel für einen crontab
für den Benutzer azacsnap
zum Automatisieren von Momentaufnahmen.
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)
Erläuterung der obigen crontab.
MAILTO=""
: Durch Angabe eines leeren Werts wird verhindert, dass cron automatisch versucht, eine E-Mail an den lokalen Linux-Benutzer zu senden, wenn der crontab-Eintrag ausgeführt wird.- Abgekürzte Versionen zur zeitlichen Steuerung von crontab-Einträgen sind selbsterklärend:
@monthly
= Einmal im Monat ausführen,d. h. „0 0 1 * *“.@weekly
= Einmal in der Woche ausführen, d. h. „0 0 * * 0“@daily
= Einmal am Tag ausführen, d. h. „0 0 * * *“@hourly
= Einmal pro Stunde ausführen, d. h. „0 * * * *“
- Die ersten fünf Spalten werden verwendet, um Zeiten festzulegen. Weitere Informationen hierzu finden Sie in den folgenden Beispielen zu Spalten:
0,15,30,45
: Alle 15 Minuten0-23
: Stündlich*
: Täglich*
: Monatlich*
: Jeden Tag der Woche
- Die auszuführende Befehlszeile ist in runde Klammern „()“ eingeschlossen.
. /home/azacsnap/.profile
= Profil von Benutzer*innen mithilfe von Pull Requests übertragen, um ihre Umgebung einzurichten (einschließlich „$PATH“ usw.)cd /home/azacsnap/bin
= Ausführungsverzeichnis in den Speicherort „/home/azacsnap/bin“ ändern, in dem sich die Konfigurationsdateien befindenazacsnap -c .....
= Der vollständige azacsnap-Befehl, der ausgeführt werden soll, einschließlich aller Optionen.
Weitere Informationen zu cron und dem Format der crontab-Datei finden Sie unter cron.
Hinweis
Benutzer sind verantwortlich für die Überwachung der cron-Aufträge, um sicherzustellen, dass Momentaufnahmen erfolgreich generiert werden.
Verwalten von AzAcSnap-Protokolldateien
AzAcSnap schreibt die Ausgabe seines Vorgangs in Protokolldateien, um das Debuggen zu unterstützen und den richtigen Vorgang zu überprüfen. Diese Protokolldateien werden immer umfangreicher, sofern sie nicht aktiv verwaltet werden. Glücklicherweise beinhalten UNIX-basierte Systeme ein Tool namens logrotate zum Verwalten und Archivieren von Protokolldateien.
Die folgende Ausgabe stellt eine Beispielkonfiguration für logrotate dar. Diese Konfiguration behält maximal 31 Protokolle (etwa einen Monat lang) bei. Wenn die Protokolldateien größer als 10 KB sind, werden sie durch Umbenennung mit einer an den Dateinamen angehängten Zahl rotiert und komprimiert.
# azacsnap logrotate configuration file
compress
~/bin/azacsnap*.log {
rotate 31
size 10k
}
Nachdem die Datei logrotate.conf
erstellt wurde, sollte der Befehl logrotate
regelmäßig ausgeführt werden, um AzAcSnap-Protokolldateien entsprechend zu archivieren. Die Automatisierung des logrotate
-Befehls kann mithilfe von cron erfolgen. Die folgende Ausgabe ist eine Zeile des crontab des AzAcSnap-Benutzers. In diesem Beispiel wird logrotate täglich mithilfe der Konfigurationsdatei ~/logrotate.conf
ausgeführt.
@daily /usr/sbin/logrotate -s ~/logrotate.state ~/logrotate.conf >> ~/logrotate.log
Hinweis
Im oben gezeigten Beispiel befindet sich die Datei „logrotate.conf“ im Basisverzeichnis (~) des Benutzers.
Nach mehreren Tagen sollten die AzAcSnap-Protokolldateien ähnlich wie im folgenden Verzeichniseintrag aussehen.
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
Überwachen der Momentaufnahmen
Die folgenden Bedingungen sollten überwacht werden, um ein fehlerfreies System zu gewährleisten:
- Verfügbarer Datenträgerspeicherplatz. Momentaufnahmen verbrauchen entsprechend der Änderungsrate auf Blockebene langsam Festplattenplatz, da ältere Festplattenblöcke in der Momentaufnahme erhalten bleiben.
- Verwenden Sie zum Automatisieren der Verwaltung des Speicherplatzes auf dem Datenträger die Optionen
--retention
und--trim
, um die alten Momentaufnahmen und Datenbankprotokolldateien automatisch zu bereinigen.
- Verwenden Sie zum Automatisieren der Verwaltung des Speicherplatzes auf dem Datenträger die Optionen
- Erfolgreiche Ausführung der Momentaufnahmetools
- Überprüfen Sie die Datei
*.result
auf den Erfolg oder das Fehlschlagen der letzten Ausführung vonazacsnap
. - Überprüfen Sie
/var/log/messages
auf Ausgaben des Befehlsazacsnap
.
- Überprüfen Sie die Datei
- Konsistenz der Momentaufnahmen, indem diese regelmäßig auf einem anderen System wiederhergestellt werden.
Hinweis
Um Momentaufnahmedetails aufzulisten, führen Sie den Befehl azacsnap -c details
aus.
Löschen einer Momentaufnahme
Um eine Momentaufnahme zu löschen, verwenden Sie den Befehl azacsnap -c delete
. Es ist nicht möglich, Momentaufnahmen auf Betriebssystemebene zu löschen. Sie müssen den richtigen Befehl (azacsnap -c delete
) verwenden, um die Speichermomentaufnahmen zu löschen.
Wichtig
Seien Sie besonders vorsichtig, wenn Sie eine Momentaufnahme löschen. Nach dem Löschen ist es UNMÖGLICH, die gelöschten Momentaufnahmen wiederherzustellen.
Wiederherstellen einer Momentaufnahme
Eine Speichervolume-Momentaufnahme kann auf einem neuen Volume wiederhergestellt (-c restore --restore snaptovol
) werden. Bei Azure (große Instanzen) kann das Volume wieder in eine Momentaufnahme (-c restore --restore revertvolume
) umgewandelt werden.
Hinweis
Es wird KEIN Datenbankwiederherstellungsbefehl bereitgestellt.
Eine Momentaufnahme kann zurück in den SAP HANA-Datenbereich kopiert werden, aber SAP HANA darf nicht ausgeführt werden, wenn eine Kopie erstellt wird (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*
).
Für Azure (große Instanzen) können Sie sich an das Microsoft-Betriebsteam wenden, indem Sie eine Serviceanfrage zum Wiederherstellen einer gewünschten Momentaufnahme aus den vorhandenen verfügbaren Momentaufnahmen öffnen. Sie können eine Serviceanfrage im Azure-Portal öffnen.
Wenn Sie ein Notfallwiederherstellungs-Failover durchführen möchten, stellt der Befehl azacsnap -c restore --restore revertvolume
am Standort der Notfallwiederherstellung automatisch die neuesten Volumemomentaufnahmen(/hana/data
und /hana/logbackups
) zur Verfügung, um eine SAP HANA-Wiederherstellung zu ermöglichen. Verwenden Sie diesen Befehl mit Vorsicht, da er die Replikation zwischen Produktions- und Notfallwiederherstellungsstandorten unterbricht.
Einrichten von Momentaufnahmen nur für Startvolumes
Wichtig
Dieser Vorgang gilt nur für Azure (große Instanzen).
In einigen Fällen verfügen Kunden bereits über Tools zum Schutz von SAP HANA und möchten nur Startvolume-Momentaufnahmen konfigurieren. In diesem Fall müssen Sie nur die folgenden Schritte durchführen.
Führen Sie die Schritte 1–4 der erforderlichen Komponenten für die Installation aus.
Aktivieren der Kommunikation mit dem Speicher
Herunterladen und Ausführen des Installationsprogramms, um die Momentaufnahmetools zu installieren.
Abschließen der Einrichtung der Momentaufnahmetools.
Abrufen der Liste der Volumes, die der Konfigurationsdatei „azacsnap“ hinzugefügt werden sollen. In diesem Beispiel lautet der Speicherbenutzername
cl25h50backup
und die Speicher-IP-Adresse10.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.
Hinweis
In diesem Beispiel ist dieser Host Teil eines horizontalen Skalierungssystems mit 3 Knoten, wobei alle drei Startvolumes von diesem Host aus zu sehen sind. Dies bedeutet, dass von diesem Host aus Momentaufnahmen aller drei Startvolumes erstellt werden können, und alle drei sollten im nächsten Schritt der Konfigurationsdatei hinzugefügt werden.
Erstellen einer neuen Konfigurationsdatei wie folgt. Die Details zum Startvolume müssen sich im Abschnitt „OtherVolume“ befinden:
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'.
Überprüfen Sie die Konfigurationsdatei, wobei Sie sich hierbei auf das folgende Beispiel beziehen:
Verwenden Sie den Befehl
cat
, um den Inhalt der Konfigurationsdatei anzuzeigen: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": [] } } ] }
Testen einer Startvolumesicherung
azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.json
Überprüfen Sie, ob sie aufgeführt ist, und fügen Sie die Option
--snapshotfilter
hinzu, um die Liste der zurückgegebenen Momentaufnahmen einzugrenzen.azacsnap -c details --snapshotfilter TestBootVolume --configfile BootVolume.json
Befehlsausgabe:
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
Optional Richten Sie automatische Momentaufnahmesicherung mit
crontab
oder einem geeigneten Zeitplaner ein, der dieazacsnap
-Sicherungsbefehle ausführen kann.
Hinweis
Das Einrichten der Kommunikation mit SAP HANA ist nicht erforderlich.
Wiederherstellen einer Startmomentaufnahme
Wichtig
Dieser Vorgang gilt nur für Azure (große Instanzen). Der Serverzustand zu dem Zeitpunkt, an dem die Momentaufnahme erstellt wurde, wird wiederhergestellt.
Eine Startmomentaufnahme kann wie folgt wiederhergestellt werden:
- Der Kunde muss den Server herunterfahren.
- Nachdem der Server heruntergefahren wurde, muss der Kunde eine Serviceanfrage öffnen, die die Computer-ID und die wiederherzustellende Momentaufnahme enthält.
Kunden können eine Serviceanfrage im Azure-Portal öffnen.
- Microsoft stellt die Betriebssystem-LUN mithilfe der angegebenen Computer-ID und der Momentaufnahme wieder her und startet dann den Server.
- Der Kunde muss dann überprüfen, ob der Server gestartet wurde und fehlerfrei ist.
Nach der Wiederherstellung müssen keine weiteren Schritte ausgeführt werden.
Wichtiges Faktenwissen über Momentaufnahmen
Hauptattribute von Speichervolume-Momentaufnahmen:
Speicherort von Momentaufnahmen: Momentaufnahmen befinden sich in einem virtuellen Verzeichnis (
.snapshot
) innerhalb des Volumes. Sehen Sie sich das folgende Beispiel für Azure (große Instanzen) an:- Datenbank:
/hana/data/<SID>/mnt00001/.snapshot
- Freigegeben:
/hana/shared/<SID>/.snapshot
- Protokolle:
/hana/logbackups/<SID>/.snapshot
- Start: Startmomentaufnahmen für HLI werden auf Betriebssystemebene nicht angezeigt, können jedoch mit
azacsnap -c details
aufgelistet werden.
Hinweis
.snapshot
ist ein schreibgeschützter, ausgeblendeter virtueller Ordner, der schreibgeschützten Zugriff auf die Momentaufnahmen gewährt.- Datenbank:
Max. Momentaufnahme: Die Hardware kann bis zu 250 Momentaufnahmen pro Volume unterstützen. Der snapshot-Befehl behält eine maximale Anzahl von Momentaufnahmen für das Präfix basierend auf dem in der Befehlszeile festgelegten Aufbewahrungssatz bei. Alle weiteren Momentaufnahmen, die über die Aufbewahrungszahl hinausgehen und das gleiche Präfix haben, werden gelöscht.
Name der Momentaufnahme: Der Name der Momentaufnahme enthält die vom Kunden bereitgestellte Präfixbezeichnung.
Größe der Momentaufnahme: Dies hängt von der Größe/Änderungen auf Datenbankebene ab.
Speicherort von Protokolldateien: Die von den Befehlen generierten Protokolldateien werden in Ordner ausgegeben, die in der JSON-Konfigurationsdatei definiert sind. Standardmäßig handelt es sich hierbei um einen Unterordner des Ordners, in dem der Befehl ausgeführt wird (z. B.
./logs
).