次の方法で共有


Azure アプリケーション整合性スナップショット ツールの使用に関するヒント

この記事では、AzAcSnap を使用するときに役立つ可能性のあるヒントを提供します。

azacsnap の動作を制御するためのグローバル オーバーライド設定

AzAcSnap 8 では、新しいグローバル設定ファイル (.azacsnaprc) が導入されました。このファイルは、azacsnap が実行されるのと同じ (現在の作業) ディレクトリに配置する必要があります。 ファイル名は .azacsnaprc され、ファイル名の先頭にドット '.' 文字を使用すると、標準のディレクトリ一覧に表示されなくなります。 このファイルを使用すると、AzAcSnap の動作を制御するグローバル設定を設定できます。 この形式は 1 行に 1 つのエントリで、サポートされているカスタム変数と新しいオーバーライド値を含みます。

設定。グローバルオーバーライド設定ファイルを追加/編集するか、環境変数として設定することで制御できます。

  • AZURE_ENVIRONMENT を使用して、適切な管理エンドポイントへの接続をカスタマイズします。 値には、AzurePublicCloud、AzureGovernment、AzureChina、AzureGermany のいずれかを指定できます。既定値は "AzurePublicCloud" です。 たとえば、すべての管理呼び出しが Azure Management Endpoint for US Government Cloud に送信されるように AzAcSnap を構成するには、 .azacsnaprc ファイルに次のコードを追加します。

    • AZURE_ENVIRONMENT=AzureGovernment

    AZURE_ENVIRONMENTは、AzAcSnap 11b (またはそれ以降) にのみ適用されます。

  • azAcSnap が Azure REST API 呼び出しを行う Azure 管理エンドポイントの場所をカスタマイズするAZURE_MANAGEMENT_ENDPOINT (AzAcSnap 9a、10、10a のみ) が AzAcSnap 9a で導入されました。 値は URL パスで、既定値は 'https://management.azure.com' にする必要があります。 たとえば、すべての管理呼び出しが Azure Management Endpoint for US Government Cloud (ref: 開発者向け Azure Government ガイダンス) に送信されるように AzAcSnap を構成するには、 .azacsnaprc ファイルに次のコードを追加します。

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

    AZURE_MANAGEMENT_ENDPOINT AzAcSnap 9a、10、10a にのみ適用されます。AzAcSnap 11 以降には設定しないでください。

  • EXTERNAL_CMD_TIMEOUT_SECS は、外部シェル コマンドのタイムアウトをカスタマイズします。 値は整数で、既定値は 300 にする必要があります。 たとえば、外部コマンドのタイムアウトを 10 分 (600 秒) に設定するには、次を .azacsnaprc ファイルに追加します。

    • EXTERNAL_CMD_TIMEOUT_SECS=600

    AzAcSnap 11 の時点では、 EXTERNAL_CMD_TIMEOUT_SECS は Db2 データベース コマンドにのみ適用されます。

  • MAINLOG_LOCATIONazacsnap.logと呼ばれ、AzAcSnap 8 で導入された "main-log" 出力ファイルの場所をカスタマイズします。 値は絶対パスで、既定値は '.' にする必要があります。(現在の作業ディレクトリです)。 たとえば、"main-log" 出力ファイルが /home/azacsnap/bin/logs に出力されるようにするには、 .azacsnaprc ファイルに次のコードを追加します。

    • MAINLOG_LOCATION=/home/azacsnap/bin/logs

AzAcSnap 9a の時点では、これらの値はすべてコマンド ライン環境変数として設定することも、 .azacsnaprc ファイルとして設定することもできます。 たとえば、Linux では、AzAcSnap を実行する前に AZURE_MANAGEMENT_ENDPOINTexport AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.netを設定できます。

メイン ログの解析

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;

この形式では、AzAcSnap バックアップの継続的な更新を取得するために、Linux コマンド watchgrepheadtailcolumn でファイルを解析できるようになります。 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 スナップショット名には、名前の競合を防ぎ、一意のスナップショット名を確保するために特別に生成されたサフィックスがあります。 サフィックスは、AzAcSnap が実行されて最も近い 10,000 分の 1 秒にスナップショットが作成された時刻に基づきます。スナップショット名の長さを最小限に抑えるために 16 進数に変換されます。 次のシェル スクリプトの例を使用して、16 進数のサフィックスをスナップショット名が生成された時刻に変換できます。

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

次の例では、サフィックスを変換するために実行できます。

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

サービス プリンシパルのアクセス許可を制限する

AzAcSnap サービス プリンシパルのスコープを制限することが必要な場合があります。 Azure リソースのきめ細かなアクセス管理の詳細については、 Azure ロールベース のアクセス制御に関するドキュメントを参照してください。

次の Azure CLI の例では、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 データベースと、SAP HANA on Azure L インスタンス または Azure NetApp Files システムの基になるストレージ システムと通信できることを証明しました。

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

次に、データベース スナップショットの手動バックアップを作成するには、次のコマンドを実行します。

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

スナップショットの自動バックアップを設定する

Unix/Linux システムでは、 cron を使用してシステムでのコマンドの実行を自動化するのが一般的です。 スナップショット ツールの標準的なプラクティスは、ユーザーの crontabを設定することです。

ユーザーがスナップショットを自動化crontabazacsnapの例を次に示します。

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="": MAILTO cron に空の値を指定しても、crontab エントリの実行時にローカル Linux ユーザーに電子メールを送信しようとはしません。
  • crontab エントリのタイミングの短縮形のバージョンは、次のとおりです。
    • @monthly = 1 か月に 1 回実行します。つまり、"0 0 1 * *" です。
    • @weekly = 週に 1 回実行します。つまり、"0 0 * * 0" です。
    • @daily = 1 日に 1 回実行します。つまり、"0 0 * * *" です。
    • @hourly = 1 時間に 1 回実行します。つまり、"0 * * * * *" です。
  • 最初の 5 つの列は、時刻を指定するために使用されます。 次の列の例を参照してください。
    • 0,15,30,45: 15 分ごと
    • 0-23: 1 時間ごと
    • * :毎日
    • * :毎月
    • * : 毎日
  • 角かっこ "()" 内に含まれる実行するコマンド ライン
    • . /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 ログ ファイルを適宜アーカイブする必要があります。 logrotateコマンドの自動化は cron を使用して行うことができます。 次の出力は、azacsnap ユーザーの crontab の 1 行です。この例では、構成ファイル ~/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) を使用する必要があります。

Von Bedeutung

スナップショットを削除するときは注意してください。 一度削除すると、削除されたスナップショットを回復 することはできません

スナップショットを復元する

ストレージ ボリューム スナップショットは、新しいボリューム (-c restore --restore snaptovol) に復元できます。 Azure L インスタンスの場合、ボリュームをスナップショット (-c restore --restore revertvolume) に戻すことができます。

指定されたデータベース回復コマンド はありません

スナップショットを SAP HANA データ領域にコピーし直すことができますが、コピーが行われたときに SAP HANA を実行することはできません (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*)。

Azure L インスタンスの場合は、既存の使用可能なスナップショットから目的のスナップショットを復元するサービス要求を開いて、Microsoft 運用チームに問い合わせることができます。 Azure portal を使用してサービス要求を開くことができます。

ディザスター リカバリー フェールオーバーを実行する場合は、ディザスター リカバリー (DR) サイトの azacsnap -c restore --restore revertvolume コマンドによって、最新の (/hana/data および /hana/logbackups) ボリューム スナップショットを自動的に使用して SAP HANA 復旧を可能にします。 運用サイトと DR サイト間のレプリケーションが中断されるため、このコマンドは注意して使用してください。

"ブート" ボリュームのみのスナップショットを設定する

Von Bedeutung

この操作は、Azure L インスタンスにのみ適用されます。

場合によっては、お客様には 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.
    

    この例では、このホストはシステム Scale-Out 3 つのノードの一部であり、このホストから 3 つのブート ボリュームすべてを確認できます。 このセットアップは、3 つのブート ボリュームすべてをこのホストからスナップショットにすることができ、次の手順で 3 つすべてを構成ファイルに追加する必要があることを意味します。

  6. 次のように新しい構成ファイルを作成します。 ブート ボリュームの詳細は、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. 構成ファイルを確認します。 次の例を参照してください。

    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. -c details オプションを使用してスナップショットを一覧表示して、スナップショットが作成されたことを確認します。 --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 との通信を設定する必要はありません。

"ブート" スナップショットを復元する

Von Bedeutung

この操作は、Azure L インスタンス専用です。 サーバーは、スナップショットが作成された時点に復元されます。

"ブート" スナップショットは、次のように復旧できます。

  1. お客様は、サーバーをシャットダウンする必要があります。
  2. サーバーがシャットダウンされた後、お客様は、復元するマシン ID とスナップショットを含むサービス要求を開く必要があります。

    お客様は、 Azure portal を使用してサービス要求を開くことができます。

  3. Microsoft は、指定されたマシン ID とスナップショットを使用してオペレーティング システム LUN を復元し、サーバーを起動します。
  4. その後、お客様は、サーバーが起動され、正常であることを確認する必要があります。

復元後に実行する他の手順はありません。

スナップショットについて知っておくべき重要な事実

ストレージ ボリューム スナップショットの主な属性:

  • スナップショットの場所: スナップショットは、ボリューム内の仮想ディレクトリ (.snapshot) にあります。 Azure L インスタンス (ALI) の次の例を参照してください。

    • データベース: /hana/data/<SID>/mnt00001/.snapshot
    • シェアード: /hana/shared/<SID>/.snapshot
    • ログ: /hana/logbackups/<SID>/.snapshot
    • ブート: ALI のブート スナップショットは OS レベルからは 表示されません が、 azacsnap -c detailsを使用して一覧表示できます。

    .snapshot は、スナップショットへの読み取り専用アクセスを提供する読み取り専用の非表示 の仮想 フォルダーです。

  • 最大スナップショット: ハードウェアは、ボリュームあたり最大 250 個のスナップショットを保持できます。 snapshot コマンドは、コマンド ラインで設定されたリテンション期間に基づいて、プレフィックスのスナップショットの最大数を保持します。 同じプレフィックスを持つ保持番号を超えるスナップショットは削除されます。

  • スナップショット名: スナップショット名には、顧客が指定したプレフィックス ラベルが含まれます。

  • スナップショットのサイズ: データベース レベルのサイズ/変更によって異なります。

  • ログ ファイルの場所: コマンドによって生成されたログ ファイルは、JSON 構成ファイルで定義されているフォルダーに出力されます。既定では、コマンドが実行されるサブフォルダー (たとえば、 ./logs)。

次のステップ