다음을 통해 공유


Azure 애플리케이션 일치 스냅숏 도구 사용을 위한 팁과 요령

이 문서에서는 AzAcSnap을 사용할 때 유용한 팁과 요령을 제공합니다.

azacsnap 동작을 제어하는 전역 재정의 설정

AzAcSnap 8에는 azacsnap이 실행되는 것과 동일한(현재 작업) 디렉터리에 있어야 하는 새 전역 설정 파일(.azacsnaprc)이 도입되었습니다. 파일 이름은 .azacsnaprc이며 파일 이름 맨 앞에 점 '.' 문자를 사용하여 표준 디렉터리 목록에 숨겨져 있습니다. 이 파일을 사용하면 AzAcSnap의 동작을 제어하는 전역 설정을 지정할 수 있습니다. 형식은 지원되는 사용자 지정 변수와 새 재정의 값이 있는 줄당 하나의 항목입니다.

전역 재정의 설정 파일을 추가/편집하거나 환경 변수로 설정하여 제어할 수 있는 설정은 다음과 같습니다.

  • MAINLOG_LOCATION: azacsnap.log(으)로 지칭되며 AzAcSnap 8에 도입된 "main-log" 출력 파일의 위치를 사용자 지정합니다. 값은 절대 경로여야 하고 기본값은 현재 작업 디렉터인 '.'이어야 합니다. 예예를 들어, "main-log" 출력 파일이 /home/azacsnap/bin/logs(으)로 이동하도록 하려면 .azacsnaprc 파일에 다음을 추가합니다.
    • MAINLOG_LOCATION=/home/azacsnap/bin/logs
  • AzAcSnap이 Azure REST API 호출을 할 Azure 관리 엔드포인트의 위치를 사용자 지정하는 AZURE_MANAGEMENT_ENDPOINT는 AzAcSnap 9a에 도입되었습니다. 값은 URL 경로이고 기본값은 'https://management.azure.com'이어야 합니다. 예를 들어 모든 관리 호출이 US Govt Cloud용 Azure 관리 엔드포인트(ref: 개발자를 위한 Azure Government 지침)로 이동하도록 AzAcSnap을 구성하려면 .azacsnaprc 파일에 다음을 추가합니다.
    • AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net

참고 항목

AzAcSnap 9a부터는 이러한 모든 값을 .azacsnaprc 파일 대신 명령줄 환경 변수로도 설정할 수 있습니다. 예를 들어 Linux에서는 AZURE_MANAGEMENT_ENDPOINT을(를) export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net(으)로 설정한 후 AzAcSnap을 실행할 수 있습니다.

main-log 구문 분석

AzAcSnap 8은 AzAcSnap의 실행을 더 간단하게 구문 분석할 수 있는 새로운 "main-log"를 도입했습니다. 이 파일이 활용된 예로 AzAcSnap이 시작된 시간, 걸린 시간 및 스냅샷 이름을 보여 주는 SAP HANA 백업 카탈로그를 들 수 있습니다. AzAcSnap에서는 이 개념을 확장하여 AzAcSnap 명령에 대한 정보, 특히 -c 옵션을 포함하도록 했으며, 파일에는 다음과 같은 헤더가 있습니다.

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

AzAcSnap이 실행되면 사용된 -c 명령에 따라 로그에 적절한 정보가 추가됩니다. 출력의 예는 다음과 같습니다.

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;

이 형식을 사용하면 Linux 명령 watch, grep, head, tailcolumn을 사용하여 파일을 구문 분석할 수 있게 하며 AzAcSnap 백업을 지속적으로 업데이트할 수 있습니다. AzAcSnap을 모니터링하는 단일 셸 스크립트에서 이러한 명령의 조합 예는 다음과 같습니다.

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

2초마다 새로 고쳐지는 다음 출력을 생성합니다.

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

서비스 주체 권한 제한

AzAcSnap 서비스 주체의 범위를 제한해야 할 수도 있습니다. Azure 리소스의 세분화된 액세스 관리에 대한 자세한 내용은 Azure RBAC 설명서를 검토하세요.

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

복원 옵션이 제대로 작동하려면 AzAcSnap 서비스 주체도 볼륨을 만들 수 있어야 합니다. 이 경우 역할 정의에 추가 “Actions” 절이 추가되어야 하므로 전체 서비스 주체는 다음 예와 같습니다.

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

수동으로 스냅샷 만들기

백업 명령(azacsnap -c backup)을 실행하기 전에 테스트 명령을 실행하여 구성을 확인하고 성공적으로 실행되었는지 확인합니다. 이러한 테스트가 바르게 실행되면 azacsnap가 설치된 SAP HANA 데이터베이스 및 Azure Large Instance 또는 Azure NetApp Files 시스템에 있는 SAP HANA의 기본 스토리지 시스템과 통신할 수 있음이 입증되었습니다.

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

그런 다음 수동 데이터베이스 스냅샷 백업을 수행하려면 다음 명령을 실행합니다.

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

자동 스냅샷 백업 설정

Unix/Linux 시스템에서는 일반적으로 시스템에서 명령 실행을 자동화하는 데 cron을 사용합니다. 스냅샷 도구의 표준 실행은 사용자의 crontab을 설정하는 것입니다.

다음 예는 사용자 azacsnapcrontab을 사용해서 스냅샷을 자동화하는 사례입니다.

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)

위의 crontab에 대한 설명입니다.

  • MAILTO="": 값이 비어 있으면 cron이 crontab 항목을 실행할 때 로컬 Linux 사용자에게 자동으로 메일을 보내지 못합니다.
  • crontab 항목의 시간 설정 축약형 버전은 별도의 설명이 필요 없습니다.
    • @monthly = 한 달에 한 번 실행합니다. 즉, “0 0 1 * *”입니다.
    • @weekly = 매주 한 번 실행합니다. 즉, “0 0 * * 0”입니다.
    • @daily = 하루에 한 번 실행합니다. 즉, “0 0 * * *”입니다.
    • @hourly = 한 시간에 한 번 실행합니다. 즉, “0 * * * *”입니다.
  • 처음 다섯 개의 열을 사용하여 시간을 설정합니다. 다음 열 예제를 참조하세요.
    • 0,15,30,45: 15분마다
    • 0-23: 매 시간
    • * : 매일
    • * : 매월
    • * : 모든 요일
  • 괄호 “()” 안에 포함된 실행 명령줄
    • . /home/azacsnap/.profile = 사용자의 .profile로 풀해서 $PATH 등의 환경을 설정합니다.
    • cd /home/azacsnap/bin = 실행 디렉터리를 구성 파일이 있는 위치 “/home/azacsnap/bin”으로 변경합니다.
    • azacsnap -c ..... = 모든 옵션을 포함하여 실행할 전체 azacsnap 명령입니다.

cron 및 crontab 파일의 형식에 대한 자세한 내용은 cron을 참조하세요.

참고 항목

사용자는 스냅샷이 성공적으로 생성되고 있는지 확인하기 위해 cron 작업을 모니터링해야 합니다.

AzAcSnap 로그 파일 관리

AzAcSnap은 디버깅을 지원하고 올바른 작업의 유효성을 검사하기 위해 해당 작업의 출력을 로그 파일에 씁니다. 이러한 로그 파일은 적극적으로 관리되지 않는 한, 계속 증가합니다. 다행히 UNIX 기반 시스템에는 logrotate라는 로그 파일을 관리하고 보관하는 도구가 있습니다.

다음 출력은 logrotate에 대한 예제 구성을 제공합니다. 이 구성은 최대 31개의 로그를 유지하고(약 1개월 동안) 로그 파일이 10k보다 크면 파일 이름에 숫자를 추가하여 이름을 바꾸는 방식으로 순환하고 압축합니다.

# azacsnap logrotate configuration file
compress

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

logrotate.conf 파일을 만든 후에는 정기적으로 logrotate 명령을 실행하여 AzAcSnap 로그 파일을 적절하게 보관해야 합니다. cron을 사용하여 logrotate 명령을 자동화할 수 있습니다. 다음 출력은 azacsnap 사용자의 crontab 중 한 줄이며, 이 예제에서는 구성 파일 ~/logrotate.conf를 사용하여 매일 logrotate를 실행합니다.

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

참고 항목

위의 예제에서 logrotate.conf 파일은 사용자의 홈(~) 디렉터리에 있습니다.

며칠 후 azacsnap 로그 파일은 다음 디렉터리 목록과 유사하게 표시됩니다.

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

스냅샷 모니터링

정상적인 시스템이 되도록 하려면 다음 조건을 모니터링해야 합니다.

  1. 사용 가능한 디스크 공간. 스냅샷은 이전 디스크 블록을 스냅샷에 유지하므로 블록 수준 변경률에 따라 디스크 공간을 천천히 소비합니다.
    1. 디스크 공간 관리를 자동화하는 데 유용하도록 --retention--trim 옵션을 사용하여 이전 스냅샷 및 데이터베이스 로그 파일을 자동으로 정리합니다.
  2. 스냅샷 도구의 성공적 실행
    1. *.result 파일을 확인해서 최근에 실행한 azacsnap의 성공 혹은 실패 여부를 파악합니다.
    2. /var/log/messages 에서 azacsnap 명령의 출력을 확인합니다.
  3. 다른 시스템에 주기적으로 복원하여 스냅샷의 일관성을 유지합니다.

참고 항목

스냅샷 상세 정보를 나열하려면 azacsnap -c details 명령을 실행합니다.

스냅샷 삭제

스냅샷을 삭제하려면 azacsnap -c delete 명령을 사용합니다. OS 수준에서 스냅샷 삭제는 불가능합니다. 스토리지 스냅샷을 삭제하려면 올바른 명령(azacsnap -c delete)을 사용해야 합니다.

Important

스냅샷을 삭제하는 경우 유의하세요. 삭제한 후에 삭제된 스냅샷 복구는 불가능합니다.

스냅샷 복원

스토리지 볼륨 스냅샷은 새 볼륨으로 복원할 수 있습니다(-c restore --restore snaptovol). Azure Large Instance의 경우 볼륨을 스냅샷으로 되돌릴 수 있습니다(-c restore --restore revertvolume).

참고 항목

제공된 데이터베이스 복구 명령이 없음입니다.

스냅샷은 SAP HANA 데이터 영역에 다시 복사할 수 있지만 복사본이 만들어질 때 SAP HANA가 실행 중이 아니어야 합니다(cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*).

Azure Large Instance의 경우 서비스 요청을 시작해 Microsoft 작업 팀에 문의하여 기존의 사용 가능한 스냅샷 중에서 원하는 스냅샷을 복원할 수 있습니다. Azure Portal을 통해 서비스 요청을 시작할 수 있습니다.

재해 복구 장애 조치를 수행하기로 결정한 경우 DR 사이트의 azacsnap -c restore --restore revertvolume 명령이 SAP HANA 복구를 위해 최신(/hana/data/hana/logbackups) 볼륨 스냅샷을 자동으로 사용할 수 있게 합니다. 프로덕션 및 DR 사이트 간 복제가 중단되는 경우 이 명령을 주의해서 사용합니다.

‘부팅’ 볼륨에 대해서만 스냅샷 설정

Important

이 작업은 Azure Large Instance에만 적용됩니다.

일부 경우에는 고객이 이미 SAP HANA를 보호하고 ‘부팅’ 볼륨 스냅샷을 구성할 수 있는 도구를 소유하고 있을 수 있습니다. 이 경우 다음 단계만 완료하면 됩니다.

  1. 설치를 위한 사전 필수 구성 요소 1-4단계를 완료합니다.

  2. 스토리지와의 통신을 사용합니다.

  3. 설치 프로그램을 다운로드하고 실행해서 스냅샷 도구를 설치합니다.

  4. 스냅샷 도구의 설치를 완료합니다.

  5. azacsnap 구성 파일에 추가할 볼륨 목록을 가져옵니다. 이 예에서 스토리지 사용자 이름은 cl25h50backup이고 스토리지 IP 주소는 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.
    

    참고 항목

    이 예에서 이 호스트는 3개 노드 스케일 아웃 시스템의 일부이며 이 호스트에서 3개의 부팅 볼륨을 모두 볼 수 있습니다. 즉, 3개의 부팅 볼륨이 모두 이 호스트에서 스냅샷될 수 있으며 다음 단계에서 3개 모두를 구성 파일에 추가해야 합니다.

  6. 다음과 같이 새 구성 파일을 만듭니다. 부팅 볼륨 세부 정보는 OtherVolume stanza에 있어야 합니다.

    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. 구성 파일을 확인하고 다음 예제를 참조하세요.

    구성 파일의 콘텐츠를 cat 명령을 사용하여 표시합니다.

    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. 부팅 볼륨 백업 테스트

    azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.json
    
  9. 나열되어 있는지 확인하고 --snapshotfilter 옵션을 추가하여 반환되는 스냅샷 목록을 제한합니다.

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

    명령 출력:

    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. 선택 사항 crontab 또는 azacsnap 백업 명령을 실행할 수 있는 적절한 스케줄러를 사용하여 자동 스냅샷 백업을 설정합니다.

참고 항목

SAP HANA와의 통신 설정은 필요하지 않습니다.

‘부팅’ 스냅샷 복원

Important

이 작업은 Azure Large Instance에서만 가능합니다. 서버가 스냅샷이 만들어진 시점으로 복원됩니다.

‘부팅’ 스냅샷은 다음과 같이 복구할 수 있습니다.

  1. 고객은 서버를 종료해야 합니다.
  2. 서버가 종료된 후 고객은 복원할 머신 ID와 스냅샷이 포함된 서비스 요청을 열어야 합니다.

    고객은 Azure Portal을 통해 서비스 요청을 시작할 수 있습니다.

  3. Microsoft는 지정된 머신 ID와 스냅샷을 사용하여 운영 체제 LUN을 복원한 다음, 서버를 부팅합니다.
  4. 그러면 고객은 서버가 부팅되고 정상 상태인지 확인해야 합니다.

복원 후 수행할 다른 단계는 없습니다.

스냅샷에 대해 알아야 할 주요 사항

스토리지 볼륨 스냅샷의 주요 특성

  • 스냅샷 위치: 스냅샷은 볼륨 내의 가상 디렉터리(.snapshot)에서 찾을 수 있습니다. Azure Large Instance에 대한 다음 예제를 참조하세요.

    • 데이터베이스: /hana/data/<SID>/mnt00001/.snapshot
    • 공유: /hana/shared/<SID>/.snapshot
    • 로그: /hana/logbackups/<SID>/.snapshot
    • 부팅: HLI의 부팅 스냅샷은 OS 수준에서 표시되지 않지만 azacsnap -c details을 사용하여 나열할 수 있습니다.

    참고 항목

    .snapshot는 스냅샷에 읽기 전용 액세스를 제공하는 읽기 전용 숨겨진 가상 폴더입니다.

  • 최대 스냅샷: 하드웨어는 볼륨당 최대 250개의 스냅샷을 유지할 수 있습니다. 스냅샷 명령은 명령줄에 설정된 보존에 따라 접두사에 대한 최대 스냅샷 수를 유지합니다. 동일한 접두사를 가진 보존 번호 이외의 스냅샷이 추가로 삭제됩니다.

  • 스냅샷 이름: 스냅샷 이름에는 고객이 작성한 접두사 레이블이 포함됩니다.

  • 스냅샷의 크기: 데이터베이스 수준의 크기/변경 내용에 따라 달라집니다.

  • 로그 파일 위치: 명령으로 생성되는 로그 파일은 JSON 구성 파일에 정의된 폴더에 출력됩니다. 이 파일은 기본값으로 명령이 실행되는 하위 폴더입니다(예: ./logs).

다음 단계