Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Tipps, die hilfreich sein können, wenn Sie AzAcSnap verwenden.
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:
AZURE_ENVIRONMENT (von AzAcSnap 11b), um die Konnektivität mit dem richtigen Verwaltungsendpunkt anzupassen. Die Werte können eine von: AzurePublicCloud, AzureGovernment, AzureChina, AzureGermany – der Standardwert ist "AzurePublicCloud". Um z. B. AzAcSnap zu konfigurieren, um sicherzustellen, dass alle Verwaltungsaufrufe zum Azure Management Endpoint for US Government Cloud gehen, fügen Sie der
.azacsnaprcDatei Folgendes hinzu:AZURE_ENVIRONMENT=AzureGovernment
Hinweis
Dies
AZURE_ENVIRONMENTgilt nur für AzAcSnap 11b (oder höher).AZURE_MANAGEMENT_ENDPOINT (nur für AzAcSnap 9a, 10, 10a), um den Standort des Azure-Verwaltungsendpunkts anzupassen, an den AzAcSnap Azure REST-API-Aufrufe vornehmen, wurde in AzAcSnap 9a eingeführt. Als Werte sind URL-Pfade und der Standardwert = 'https://management.azure.com' zulässig. Um z. B. AzAcSnap zu konfigurieren, um sicherzustellen, dass alle Verwaltungsaufrufe an den Azure Management Endpoint for US Government Cloud (ref: Azure Government Guidance for developers) gehen, fügen Sie der
.azacsnaprcDatei Folgendes hinzu:AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net
Hinweis
AZURE_MANAGEMENT_ENDPOINTgilt nur für AzAcSnap 9a, 10, 10a, setzen Sie dies nicht für AzAcSnap 11 oder höher ein.EXTERNAL_CMD_TIMEOUT_SECS passt das Timeout für externe Shellbefehle an. Werte sollten ganze Zahlen und der Standardwert = 300 sein. Wenn Sie beispielsweise das Timeout für externe Befehle auf 10 Minuten (600 Sekunden) festlegen möchten, fügen Sie der Datei Folgendes hinzu
.azacsnaprc:EXTERNAL_CMD_TIMEOUT_SECS=600
Hinweis
Ab AzAcSnap 11 gilt
EXTERNAL_CMD_TIMEOUT_SECSnur für Db2-Datenbankbefehle.MAINLOG_LOCATION: Damit lässt sich der Speicherort der Hauptprotokoll-Ausgabedatei anpassen, die
azacsnap.logheißt und in AzAcSnap 8 eingeführt wurde. Als Werte sind der absolute Pfade und der Standardwert = '.' (das aktuelle Arbeitsverzeichnis) zulässig. Um zum Beispiel sicherzustellen, dass die Ausgabedatei "main-log" zum/home/azacsnap/bin/logshinzugefügt wird, fügen Sie Folgendes zur.azacsnaprcDatei hinzu:MAINLOG_LOCATION=/home/azacsnap/bin/logs
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
Grundlegendes zum Suffix des Snapshotnamens
Der AzAcSnap-Snapshotname weist ein speziell generiertes Suffix auf, um Namenskonflikte zu verhindern und eindeutige Snapshotnamen sicherzustellen. Das Suffix basiert auf dem Zeitpunkt, zu dem AzAcSnap ausgeführt wird, um die Momentaufnahme auf die nächsten zehntausendstel einer Sekunde zu erstellen, die in eine Hexadezimalzahl konvertiert wird, um die Länge des Momentaufnahmenamens zu minimieren. Das folgende Beispiel eines Shellskripts kann für die Konvertierung des Hexadezimalsuffix in den Zeitpunkt der Erstellung des Snapshotnamens verwendet werden.
#!/bin/sh
# hex-to-datetime.sh
# Prompt for hex number if not provided
if [ -z "$1" ]; then
echo "Type a hex number:"
read hex_num
else
hex_num="$1"
fi
# Convert hex to decimal
dec_num=$(echo "ibase=16; $hex_num" | bc)
printf "The decimal value of %s = %d\n" "$hex_num" "$dec_num"
# Determine how many digits to shift (if needed)
len_decnum=$(echo "$dec_num" | wc -c)
len_decnum=$((len_decnum - 1)) # Remove newline
# If the decimal number is longer than 10 digits, scale it down
if [ "$len_decnum" -gt 10 ]; then
num_of_zeros=$((len_decnum - 10))
divide_by="1$(printf "%0${num_of_zeros}d" 0)"
echo "Divide $dec_num / $divide_by"
dec_num_seconds=$(echo "$dec_num / $divide_by" | bc)
else
dec_num_seconds="$dec_num"
fi
# Convert to human-readable date
date --date="@$dec_num_seconds"
Es kann ausgeführt werden, um das Suffix im folgenden Beispiel zu konvertieren.
$ hex-to-datetime.sh FFF1C5E5CE8
The decimal value of FFF1C5E5CE8 = 17588367023336
Divide 17588367023336 / 10000
Thu Sep 25 21:45:02 UTC 2025
Begrenzen von Dienstprinzipalberechtigungen
Möglicherweise ist es erforderlich, den Berechtigungsbereich des AzAcSnap-Dienstprinzipals einzuschränken. Lesen Sie die Dokumentation zur rollenbasierten Zugriffssteuerung in Azure, um weitere Details zur detaillierten Zugriffsverwaltung von Azure-Ressourcen zu erhalten.
Im folgenden Beispiel der Azure CLI wird eine Rollendefinition mit den Aktionen bereitgestellt, die für AzAcSnap mindestens 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 hanaazacsnap -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 Beispiel-Crontabausgabe.
-
MAILTO="": wenn ein leerer Wert für MAILTO cron nicht versucht, den lokalen Linux-Benutzer per E-Mail zu senden, wenn der Eintrag Crontab 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 Uhrzeiten festzulegen. Weitere Informationen finden Sie in den folgenden Spaltenbeispielen:
-
0,15,30,45: Alle 15 Minuten -
0-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 befinden -
azacsnap -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 Cronjobs, 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 speichert maximal 31 Protokolle, etwa einen Monat. Wenn die Protokolldateien größer als 10.000 sind, werden sie gedreht, indem sie mit einer Zahl umbenannt werden, die dem Dateinamen hinzugefügt wurde, 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
--retentionund--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
*.resultauf den Erfolg oder das Fehlschlagen der letzten Ausführung vonazacsnap. - Überprüfen Sie
/var/log/messagesauf 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.
Von Bedeutung
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 das Failover für die Notfallwiederherstellung ausführen möchten, stellt der Befehl azacsnap -c restore --restore revertvolume am Ort der Notfallwiederherstellung (DR) automatisch die neuesten (/hana/data und /hana/logbackups) Volume-Momentaufnahmen zur Verfügung, um eine Wiederherstellung von SAP HANA zu ermöglichen. Verwenden Sie diesen Befehl mit Vorsicht, da er die Replikation zwischen Produktions- und Notfallwiederherstellungsstandorten unterbricht.
Einrichten von Momentaufnahmen für nur Startvolumes
Von Bedeutung
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 bis 4 der Vorraussetzungen 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
cl25h50backupund 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 Systems für die horizontale Skalierung mit drei Knoten, und alle drei Startvolumes können von diesem Host aus angezeigt werden. Dieses Setup bedeutet, dass alle drei Startvolumes Momentaufnahmen von diesem Host sein könne. Alle drei sollten der Konfigurationsdatei im nächsten Schritt 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.jsonBuilding 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. Weitere Informationen finden Sie im folgenden Beispiel:
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 die Momentaufnahme erstellt wurde, indem Sie die Momentaufnahmen mithilfe der Option
-c detailsauflisten. Durch Hinzufügen der Option--snapshotfilterkönnen Sie die angegebene Liste der Momentaufnahmen einschränken.azacsnap -c details --snapshotfilter TestBootVolume --configfile BootVolume.jsonBefehlsausgabe:
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.31GBOptional Richten Sie automatische Momentaufnahmesicherung mit
crontaboder einem geeigneten Zeitplaner ein, der dieazacsnap-Sicherungsbefehle ausführen kann.
Hinweis
Das Einrichten der Kommunikation mit SAP HANA ist nicht erforderlich.
Wiederherstellen einer Startmomentaufnahme
Von Bedeutung
Dieser Vorgang gilt nur für Azure Large Instance. Der Server wird an dem Punkt wiederhergestellt, an dem die Momentaufnahme erstellt wurde.
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 die folgenden Beispiele für Azure Large Instance (ALI) an:- Datenbank:
/hana/data/<SID>/mnt00001/.snapshot - Freigegeben:
/hana/shared/<SID>/.snapshot - Protokolle:
/hana/logbackups/<SID>/.snapshot - Start: Startmomentaufnahmen für ALI sind auf Betriebssystemebene nicht sichtbar, können aber mit
azacsnap -c detailsaufgelistet werden.
Hinweis
.snapshotist 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).