Udostępnij przez


Porady dotyczące korzystania z narzędzia migawki zgodnej z aplikacją Azure

Ten artykuł zawiera porady, które mogą być przydatne podczas korzystania z modułu AzAcSnap.

Ustawienia globalnego zastępowania do kontrolowania zachowania azacsnap

AzAcSnap 8 wprowadził nowy plik ustawień globalnych (.azacsnaprc), który musi znajdować się w tym samym katalogu roboczym, w którym jest wykonywany azacsnap. Nazwa pliku to .azacsnaprc i używając znaku kropki "." jako początku nazwy pliku powoduje ukrycie go w standardowych listach katalogów. Plik umożliwia ustawienie globalnych ustawień, które kontrolują zachowanie narzędzia AzAcSnap. Format to jeden wpis na wiersz z obsługiwaną zmienną dostosowywania i nową wartością zastępującą.

Ustawienia, które można kontrolować, dodając/edytując plik ustawień globalnych lub ustawiając je jako zmienne środowiskowe:

  • AZURE_ENVIRONMENT (z modułu AzAcSnap w wersji 11b), aby dostosować połączenie z właściwym punktem końcowym zarządzania. Wartości mogą być następujące: AzurePublicCloud, AzureGovernment, AzureChina, AzureGermany — wartość domyślna to "AzurePublicCloud". Aby na przykład skonfigurować moduł AzAcSnap tak, aby wszystkie wywołania zarządzania były kierowane do punktu końcowego zarządzania platformy Azure w chmurze rządowej USA, dodaj do pliku następujący wpis .azacsnaprc.

    • AZURE_ENVIRONMENT=AzureGovernment

    Uwaga

    Dotyczy tylko AZURE_ENVIRONMENT AzAcSnap 11b (lub nowszego).

  • AZURE_MANAGEMENT_ENDPOINT (tylko dla modułu AzAcSnap 9a, 10, 10a), aby dostosować lokalizację punktu końcowego zarządzania platformy Azure, do którego moduł AzAcSnap wykonuje wywołania interfejsu API REST platformy Azure, został wprowadzony w narzędziu AzAcSnap 9a. Wartości powinny być ścieżkami adresów URL i wartością domyślną = 'https://management.azure.com'. Aby na przykład skonfigurować moduł AzAcSnap, aby upewnić się, że wszystkie wywołania zarządzania przechodzą do punktu końcowego zarządzania platformy Azure dla chmury instytucji rządowych USA (ref: Wskazówki dotyczące platformy Azure dla instytucji rządowych dla deweloperów), dodaj następujące informacje do pliku .azacsnaprc:

    • AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net

    Uwaga

    AZURE_MANAGEMENT_ENDPOINT Dotyczy tylko polecenia AzAcSnap 9a, 10, 10a, nie ustawiaj tego dla polecenia AzAcSnap 11 lub nowszego.

  • EXTERNAL_CMD_TIMEOUT_SECS dostosowuje limit czasu dla poleceń powłoki zewnętrznej. Wartości powinny być liczbami całkowitymi i wartością domyślną = 300. Aby na przykład ustawić limit czasu zewnętrznego polecenia na 10 minut (600 sekund), dodaj następujące polecenie do .azacsnaprc pliku:

    • EXTERNAL_CMD_TIMEOUT_SECS=600

    Uwaga

    Od azAcSnap 11 EXTERNAL_CMD_TIMEOUT_SECS dotyczy tylko poleceń bazy danych Db2.

  • MAINLOG_LOCATION który dostosowuje lokalizację pliku wyjściowego main-log, który nazywa się azacsnap.log i został wprowadzony w AzAcSnap 8. Wartości powinny być ścieżkami bezwzględnymi, a wartością domyślną jest '.' (która jest bieżącym katalogiem roboczym). Aby na przykład upewnić się, że plik wyjściowy "main-log" zostanie przekierowany do /home/azacsnap/bin/logs, dodaj następujący kod do pliku .azacsnaprc:

    • MAINLOG_LOCATION=/home/azacsnap/bin/logs

Uwaga

Od AzAcSnap 9a wszystkie te wartości można ustawić jako zmienne środowiskowe wiersza polecenia, lub zamiast pliku .azacsnaprc. Na przykład w systemie Linux AZURE_MANAGEMENT_ENDPOINT można ustawić za pomocą export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net przed uruchomieniem AzAcSnap.

Parsowanie głównych logów

Polecenie AzAcSnap 8 wprowadziło nowy "main-log", aby zapewnić prostsze analizowanie uruchomień AzAcSnap. Inspiracją dla tego pliku jest katalog kopii zapasowych SAP HANA, który pokazuje, kiedy AzAcSnap został uruchomiony, ile trwał proces i jaka jest nazwa migawki. W przypadku polecenia AzAcSnap ten pomysł jest bardziej szczegółowo uwzględniany w celu uwzględnienia informacji dla każdego z poleceń AzAcSnap, a w szczególności -c opcji, a plik ma następujące nagłówki:

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

Gdy polecenie AzAcSnap jest uruchamiane, dołącza do dziennika odpowiednie informacje w zależności od użytego -c polecenia, przykłady danych wyjściowych są następujące:

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;

Ten format sprawia, że plik może być analizowany za pomocą poleceń systemu Linux watch, grep, head, tail i column, w celu uzyskania ciągłych aktualizacji kopii zapasowych AzAcSnap. Przykładowa kombinacja tych poleceń w pojedynczym skrypcie powłoki do monitorowania AzAcSnap jest następująca:

#!/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

Tworzy następujące dane wyjściowe odświeżane co dwie sekundy.

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

Zrozumienie sufiksu nazwy migawki

Nazwa migawki AzAcSnap ma specjalnie wygenerowany sufiks, aby zapobiec kolizjom nazewnictwa i zapewnić unikatowe nazwy migawek. Sufiks jest oparty na czasie uruchomienia polecenia AzAcSnap w celu utworzenia migawki do najbliższej dziesięciotysięcznej części sekundy, która jest konwertowana na system szesnastkowy, aby zminimalizować długość nazwy migawki. Poniższy przykładowy skrypt powłoki może służyć do konwertowania sufiksu szesnastkowego na czas wygenerowania nazwy migawki.

#!/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"

Można go uruchomić, aby przekonwertować sufiks w poniższym przykładzie.

$ hex-to-datetime.sh FFF1C5E5CE8
The decimal value of FFF1C5E5CE8 = 17588367023336
Divide 17588367023336 / 10000
Thu Sep 25 21:45:02 UTC 2025

Ograniczanie uprawnień podmiotu usługi

Może być konieczne ograniczenie zakresu jednostki usługi AzAcSnap. Zapoznaj się z dokumentacją kontroli dostępu opartej na rolach platformy Azure , aby uzyskać więcej informacji na temat szczegółowego zarządzania dostępem do zasobów platformy Azure.

Poniższy przykład interfejsu wiersza polecenia platformy Azure zawiera definicję roli z minimalnymi wymaganymi akcjami wymaganymi do działania w narzędziu AzAcSnap.

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>"] \
}'

Aby opcje przywracania działały pomyślnie, główna jednostka usługi AzAcSnap musi również mieć możliwość tworzenia woluminów. W tym przypadku definicja roli wymaga dodania dodatkowej klauzuli "Actions", dlatego kompletny pryncypał usługi powinien wyglądać jak w poniższym przykładzie.

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>"] \
}'

Rób migawki ręcznie

Przed wykonaniem jakichkolwiek poleceń kopii zapasowej (azacsnap -c backup) sprawdź konfigurację, uruchamiając polecenia testowe i sprawdź, czy zostały wykonane pomyślnie. Poprawne wykonanie tych testów wykazało, że azacsnap potrafi komunikować się z zainstalowaną bazą danych SAP HANA i podstawowym systemem przechowywania danych SAP HANA w systemach Azure Large Instance lub Azure NetApp Files.

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

Następnie, aby wykonać ręczną kopię zapasową migawki bazy danych, uruchom następujące polecenie:

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

Konfigurowanie automatycznej kopii zapasowej migawki

Typowym rozwiązaniem w systemach cron Unix/Linux jest automatyzowanie uruchamiania poleceń w systemie. Standardową praktyką dla narzędzi migawek jest skonfigurowanie crontab użytkownika.

Przykładowy element crontab umożliwiający użytkownikowi azacsnap zautomatyzowanie migawek jest następujący.

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)

Wyjaśnienie przykładowych danych wyjściowych crontab.

  • MAILTO="": mając pustą wartość cron MAILTO, nie spróbuje wysłać wiadomości e-mail do lokalnego użytkownika systemu Linux podczas wykonywania wpisu crontab.
  • Skrócone wersje chronometrażu dla wpisów crontab są objaśniające:
    • @monthly = Uruchom raz w miesiącu, czyli "0 0 1 * *".
    • @weekly = Uruchamiany raz w tygodniu, czyli "0 0 * * 0".
    • @daily = Uruchamiany raz dziennie, czyli "0 0 * * *".
    • @hourly = Uruchamiany raz na godzinę, czyli "0 * * * * *".
  • Pierwsze pięć kolumn służy do wyznaczania czasów. Zapoznaj się z następującymi przykładami kolumn:
    • 0,15,30,45: co 15 minut
    • 0-23: co godzinę
    • * :Codziennie
    • * : co miesiąc
    • * : Każdego dnia tygodnia
  • Wiersz polecenia do wykonania w nawiasach okrągłych "()"
    • . /home/azacsnap/.profile = załadować profil użytkownika, aby skonfigurować jego środowisko, w tym $PATH itd.
    • cd /home/azacsnap/bin = zmień katalog wykonywania na lokalizację "/home/azacsnap/bin", gdzie znajdują się pliki konfiguracji.
    • azacsnap -c ..... = pełne polecenie azacsnap do uruchomienia, w tym wszystkie opcje.

Aby uzyskać więcej informacji na temat cron i formatu pliku crontab, zobacz cron.

Uwaga

Użytkownicy są odpowiedzialni za monitorowanie zadań cron w celu zapewnienia pomyślnego wygenerowania migawek.

Zarządzanie plikami dziennika AzAcSnap

AzAcSnap zapisuje dane wyjściowe operacji w celu rejestrowania plików w celu ułatwienia debugowania i sprawdzania poprawności operacji. Te pliki dziennika nadal rosną, chyba że są aktywnie zarządzane. Na szczęście systemy z systemem UNIX mają narzędzie do zarządzania plikami dziennika i archiwizowania ich o nazwie logrotate.

Przykład konfiguracji dla narzędzia logrotate przedstawiono poniżej. Ta konfiguracja przechowuje maksymalnie 31 dzienników, około jednego miesiąca. Gdy pliki dziennika są większe niż 10 000, obraca je przez zmianę nazwy z liczbą dodaną do nazwy pliku i kompresuje je.

# azacsnap logrotate configuration file
compress

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

Po utworzeniu logrotate.conf pliku polecenie powinno być uruchamiane regularnie w logrotate celu zarchiwizowania plików dziennika AzAcSnap. Automatyzowanie logrotate polecenia można wykonać przy użyciu narzędzia cron. Następujący wynik to jedna linia crontab użytkownika azacsnap. W tym przykładzie narzędzie logrotate jest uruchamiane codziennie przy użyciu pliku konfiguracji ~/logrotate.conf.

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

Uwaga

W powyższym przykładzie plik logrotate.conf znajduje się w katalogu głównym użytkownika (~).

Po kilku dniach pliki dziennika azacsnap powinny wyglądać podobnie do poniższej listy katalogów.

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

Monitoruj migawki

Należy monitorować następujące warunki w celu zapewnienia dobrej kondycji systemu:

  1. Dostępne miejsce na dysku. Migawki powoli zużywają miejsce na dysku w zależności od współczynnika zmian na poziomie bloków, ponieważ starsze bloki dysku są zachowywane w migawce.
    1. Aby zautomatyzować zarządzanie miejscem na dysku, użyj opcji --retention i --trim do automatycznego czyszczenia starych migawek i plików dziennika bazy danych.
  2. Pomyślne wykonanie narzędzi migawek
    1. Sprawdź plik pod kątem *.result powodzenia lub niepowodzenia najnowszego uruchomienia programu azacsnap.
    2. Sprawdź /var/log/messages dane wyjściowe polecenia azacsnap .
  3. Zapewnienie spójności migawek poprzez okresowe przywracanie ich do innego systemu.

Uwaga

Aby wyświetlić szczegóły migawki, wykonaj polecenie azacsnap -c details.

Usuń migawkę

Aby usunąć migawkę, użyj polecenia azacsnap -c delete. Nie można usunąć migawek z poziomu systemu operacyjnego. Aby usunąć migawki magazynu, należy użyć poprawnego polecenia (azacsnap -c delete).

Ważne

Czujność podczas usuwania migawki. Po usunięciu nie można odzyskać usuniętych migawek.

Przywracanie migawki

Migawkę woluminu magazynu można przywrócić do nowego woluminu (-c restore --restore snaptovol). W przypadku dużego wystąpienia platformy Azure wolumin można przywrócić do migawki (-c restore --restore revertvolume).

Uwaga

Nie podano polecenia odzyskiwania bazy danych.

Migawkę można skopiować z powrotem do obszaru danych SAP HANA, ale platforma SAP HANA nie może być uruchomiona po utworzeniu kopii (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*).

W przypadku dużego wystąpienia platformy Azure możesz skontaktować się z zespołem operacyjnym firmy Microsoft, otwierając żądanie obsługi w celu przywrócenia żądanej migawki z istniejących dostępnych migawek. Żądanie obsługi można otworzyć za pośrednictwem witryny Azure Portal.

Jeśli zdecydujesz się na przejście w tryb failover odzyskiwania po awarii, azacsnap -c restore --restore revertvolume polecenie w lokacji odzyskiwania po awarii automatycznie udostępni najnowsze migawki woluminów (/hana/data i /hana/logbackups) w celu umożliwienia odzyskiwania oprogramowania SAP HANA. Używaj tego polecenia z ostrożnością, ponieważ przerywa replikację między lokacjami produkcyjnymi i DR.

Konfigurowanie migawek tylko dla woluminów rozruchowych

Ważne

Ta operacja dotyczy tylko Azure Large Instance.

W niektórych przypadkach klienci mają już narzędzia do ochrony platformy SAP HANA i tylko chcą skonfigurować migawki woluminów "rozruchu". W takim przypadku należy wykonać tylko następujące czynności.

  1. Wykonaj kroki 1–4 wymagań wstępnych dotyczących instalacji.

  2. Włącz komunikację z magazynem.

  3. Pobierz i uruchom instalator, aby zainstalować narzędzia do migawek.

  4. Ukończ konfigurację narzędzi migawek.

  5. Pobierz listę woluminów, które mają zostać dodane do pliku konfiguracji azacsnap, w tym przykładzie nazwa użytkownika magazynu to cl25h50backup , a adres IP magazynu to 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.
    

    Uwaga

    W tym przykładzie ten host jest częścią trzech węzłów Scale-Out systemu, a wszystkie 3 woluminy rozruchowe można zobaczyć na tym hoście. Ta konfiguracja oznacza, że wszystkie trzy woluminy rozruchowe mogą być migawkami z tego hosta, a wszystkie trzy powinny zostać dodane do pliku konfiguracji w następnym kroku.

  6. Utwórz nowy plik konfiguracji w następujący sposób. Szczegóły woluminu rozruchowego muszą znajdować się w sekcji 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. Sprawdź plik konfiguracji. Zapoznaj się z następującym przykładem:

    Użyj cat polecenia , aby wyświetlić zawartość pliku konfiguracji:

    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. Testowanie kopii zapasowej woluminu rozruchowego

    azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.json
    
  9. Sprawdź, czy migawka została utworzona, wyświetlając listę migawek przy użyciu -c details opcji . Zwróć uwagę na --snapshotfilter dodanie opcji, aby ograniczyć zwracaną listę migawek.

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

    Dane wyjściowe polecenia:

    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. Opcjonalnie Skonfiguruj automatyczną kopię zapasową migawki za pomocą crontab, lub odpowiedniego harmonogramu, który może uruchamiać azacsnap polecenia kopii zapasowej.

Uwaga

Konfigurowanie komunikacji z platformą SAP HANA nie jest wymagane.

Przywróć migawkę rozruchu

Ważne

Ta operacja dotyczy tylko dużego wystąpienia platformy Azure. Serwer zostanie przywrócony do punktu, w którym wykonano migawkę.

Migawkę rozruchu można odzyskać w następujący sposób:

  1. Klient musi zamknąć serwer.
  2. Po zamknięciu serwera klient będzie musiał otworzyć żądanie obsługi zawierające identyfikator komputera i migawkę, aby przywrócić.

    Klienci mogą otworzyć żądanie obsługi za pośrednictwem witryny Azure Portal.

  3. Microsoft przywraca LUN systemu operacyjnego, używając określonego identyfikatora maszyny i migawki, a następnie uruchamia serwer.
  4. Następnie klient musi potwierdzić, że serwer jest uruchomiony i w dobrej kondycji.

Nie ma innych kroków, które należy wykonać po przywróceniu.

Kluczowe fakty dotyczące migawek

Kluczowe atrybuty migawek woluminów magazynu:

  • Lokalizacja migawek: migawki można znaleźć w katalogu wirtualnym (.snapshot) w woluminie. Zobacz następujące przykłady dla usługi Azure Large Instance (ALI):

    • Baza danych: /hana/data/<SID>/mnt00001/.snapshot
    • Udostępnione: /hana/shared/<SID>/.snapshot
    • Dzienniki: /hana/logbackups/<SID>/.snapshot
    • Rozruch: migawki rozruchu dla ali nie są widoczne na poziomie systemu operacyjnego, ale można je wymienić przy użyciu polecenia azacsnap -c details.

    Uwaga

    .snapshot to ukryty folder wirtualny zapewniający dostęp do migawek w trybie tylko do odczytu.

  • Maksymalna migawka: Sprzęt może utrzymywać maksymalnie 250 migawek na wolumin. Polecenie migawki przechowuje maksymalną liczbę migawek dla prefiksu zgodnie z zasadami zachowywania określonymi w wierszu polecenia. Wszystkie migawki, które przekraczają numer przechowywania z tym samym prefiksem, są usuwane.

  • Nazwa migawki: Nazwa migawki zawiera etykietę prefiksową dostarczoną przez klienta.

  • Rozmiar migawki: Zależy od rozmiaru/zmian na poziomie bazy danych.

  • Lokalizacja pliku dziennika: Pliki dziennika generowane przez polecenia są danymi wyjściowymi do folderów zdefiniowanych w pliku konfiguracji JSON, który domyślnie jest podfolderem, w którym polecenie jest uruchamiane (na przykład ./logs).

Następne kroki