SAP HANA データベースは、低い目標復旧ポイント (RPO) と長期的なリテンション期間を必要とする重要なワークロードです。 この記事では、Azure 仮想マシン (VM) 上で実行されるスケールアウト トポロジの SAP HANA データベースを、Azure portal から Azure Backup を使用して Recovery Services コンテナーにバックアップする方法について説明します。
スケールアウト構成では、単一のSAP HANAシステムが複数のノードに分散されます。 スケールアウトのプライマリノードはシステムデータベースをホストし、ワーカーノードはテナントデータベースやその他のサービスをホストします。 Azure Backupはスケーリングアウトシステム内のすべてのノードに統合されたバックアップチェーンを提供するため、ノードレベルの管理は不要です。
サポートされている SAP HANA データベースのバックアップと復元のシナリオ、リージョンの可用性、および制限事項については、 サポート マトリックスを参照してください。 よく寄せられる質問については、 よく寄せられる質問を参照してください。
主な概念
- スケーリングアウトプライマリ:HANAシステムデータベースが動作するVMです。
- ワーカーノード:スケールアウトシステム内でテナントデータベースやサービスをホストするが、アクティブなシステムデータベースを実行しない他のVMです。
- 仮想ホスト名:スケーリングアウトプライマリノードに自動的に解決される仮想ネットワーク名(物理ホスト名の代わりにこの名前を使用)。
前提条件
Azure VM上でSAP HANAスケールアウトデータベースをバックアップする前に、以下の点を必ず確認してください:
- HANAスケーリングアウトシステム内のすべてのVMと同じリージョンおよびサブスクリプション内で、 リカバリーサービスのヴォルト を特定し、作成してください。
- すべてのVM(プライマリノードとワーカーノード)がAzureとの通信のためにインターネットに接続されていることを確認してください。
- スケーリングアウトシステム内の すべてのVM (プライマリノードとワーカーノードの両方)でスケーリングアウト事前登録スクリプトを実行してください。 最新の事前登録スクリプトは こちらからダウンロードできます。
- すべてのノードで同じに適用される固有のスケールアウト識別子(SUV)を使いましょう(SAPは英数字の値を推奨しています)。
- システムデータベースのポート番号(通常は
3<instance-number>13、例えば3001300)を使用します。 - SAP HANA サーバー VM 名とリソース グループ名の合計長が、Azure Resource Manager VM の場合は 84 文字、クラシック VM の場合は 77 文字を超えないようにします。 この制限は、サービスが一部の文字を予約しているため存在します。
リカバリー サービス ボールトを作成する
Recovery Services ボールトは、時間の経過と共に作成される復旧ポイントを格納する管理エンティティです。 バックアップ関連の操作を実行するためのインターフェイスを提供します。 たとえば、オンデマンドのバックアップの作成、復元の実行、バックアップ ポリシーの作成などの操作です。
Recovery Services コンテナーを作成するには、次の手順に従います。
Azure portal にサインインする
回復性を検索し、回復性ダッシュボードに移動します。
ボールト ペインで、+ ボールト を選択します。
[Recovery Services コンテナー]>[続行] の順に選択します。
[ Recovery Services コンテナーの作成 ] ウィンドウで、次の値を入力します。
[サブスクリプション] : 使用するサブスクリプションを選択します。 1 つのサブスクリプションのみのメンバーの場合は、その名前が表示されます。 どのサブスクリプションを使用すればよいかわからない場合は、既定のサブスクリプションを使用してください。 職場または学校アカウントが複数の Azure サブスクリプションに関連付けられている場合にのみ、複数の選択肢が表示されます。
[リソース グループ] :既存のリソース グループを使用するか、新しいリソース グループを作成します。 サブスクリプションで使用可能なリソース グループの一覧を表示するには、[ 既存のものを使用] を選択します。 次に、ドロップダウン リストでリソースを選択します。 新しいリソース グループを作成するには、[新規作成] を選択し、名前を入力します。 リソース グループの詳細については、「Azure Resource Manager の概要」を参照してください。
[コンテナー名]: コンテナーを識別するフレンドリ名を入力します。 名前は、Azure サブスクリプションに対して一意である必要があります。 2 文字以上で、50 文字以下の名前を指定します。 名前の先頭にはアルファベットを使用する必要があります。また、名前に使用できるのはアルファベット、数字、ハイフンのみです。
[リージョン]: コンテナーの地理的リージョンを選択します。 データ ソースを保護するためのコンテナーを作成するには、コンテナーがデータ ソースと同じリージョン内にある "必要があります"。
Important
データ ソースの場所が不明な場合は、ウィンドウを閉じます。 ポータルの自分のリソースの一覧に移動します。 複数のリージョンにデータ ソースがある場合は、リージョンごとに Recovery Services コンテナーを作成します。 最初の場所にコンテナーを作成してから、別の場所にコンテナーを作成してください。 バックアップ データを格納するためにストレージ アカウントを指定する必要はありません。 Recovery Services コンテナーと Azure Backup は、その手順を自動的に処理します。
値を指定したら、[ 確認と作成] を選択します。
Recovery Services コンテナーの作成を完了するには、[作成] を選択します。
Recovery Services ボルトの作成に時間がかかることがあります。 右上の [通知] 領域で、状態の通知を監視します。 作成されたコンテナーは、Recovery Services コンテナーのリストに表示されます。 コンテナーが表示されない場合は、[最新の情報に更新] を選択します。
Azure Backup では、復旧ポイントが作成された後、バックアップ ポリシーに従って有効期限が切れる前に削除できないようにするために役立つ不変コンテナーがサポートされるようになりました。 ランサムウェア攻撃や悪意のあるアクターなど、さまざまな脅威からバックアップ データを保護するために、不変性を元に戻すことができないようにすることができます。 不変コンテナーの詳細についてはAzure Backupを参照してください。
事前登録スクリプトを使ってHANAスケールアウトノードをバックアップ用に準備します
事前登録スクリプトは、必要なデータベースユーザーおよびユーザーストアエントリを作成することで、HANAスケールアウトシステムのバックアップ準備を行います。 スケールアウトシステム内の すべてのノード でスクリプトを実行しなければなりません。
スクリプト実行用のカスタムバックアップユーザーを作成します
プライマリノードのみで、HANAシステム内でカスタムバックアップユーザーを作成します:
SYSTEMユーザーとしてHANAデータベースに接続します。
hdbsql -t -U SYSTEMKEYバックアップユーザーを作成するために、以下のSQLクエリを実行します:
CREATE USER AZUREWLBACKUPHANAUSER PASSWORD "<password>" NO FORCE_FIRST_PASSWORD_CHANGE ALTER USER AZUREWLBACKUPHANAUSER DISABLE PASSWORD LIFETIME ALTER USER AZUREWLBACKUPHANAUSER RESET CONNECT ATTEMPTS ALTER USER AZUREWLBACKUPHANAUSER ACTIVATE USER NOWバックアップ作業に使う安全なパスワードに
<password>置き換えてください。
各ノードにユーザーストアエントリを設定します
必要なユーザーストアエントリを設定するには、スケーリングアウトシステムの 各ノード で仮想ホスト名(またはプライマリノードホスト名)とプライマリノードのシステムデータベースポートを使って以下のコマンドを実行します。
Note
スケールアウトシステムがプライマリノードに仮想ホスト名を使用している場合は、以下のコマンドで仮想ホスト名を使いましょう。 そうでなければ、プライマリノードの物理ホスト名を使いましょう。
SYSTEMKEYエントリを作成する:
hdbuserstore SET SYSTEMKEY <primary-hostname>:<system-db-port> SYSTEM <password>Example:
hdbuserstore SET SYSTEMKEY jgaikjpeso1-m1:30013 SYSTEM MyPassword123Where:
-
<primary-hostname>: スケールアウトプライマリノードの仮想または物理ホスト名 -
<system-db-port>: システムデータベースのポート(例えば、3001300) -
<password>:システムデータベースのパスワード
-
各ノードでバックアップキーエントリを作成します:
hdbuserstore SET AZUREWLBACKUPHANAUSER <primary-hostname>:<system-db-port>@SYSTEMDB AZUREWLBACKUPHANAUSER "<backup-password>"Example:
hdbuserstore SET AZUREWLBACKUPHANAUSER jgaikjpeso1-m1:30013@SYSTEMDB AZUREWLBACKUPHANAUSER "MyBackupPassword123"プライマリノードの
AZUREWLBACKUPHANAUSERデータベースユーザー用に作成したのと同じパスワードを使いましょう。
すべてのノードで事前登録スクリプトを実行します
スケールアウトの事前登録スクリプトをダウンロードし、スケーリングアウトシステムの各ノードでルートユーザーとして実行してください。
./msawb-plugin-config-com-sap-hana-scale-out.sh -a --sid <instance-name> -n <instance-number> --system-key SYSTEMKEY -suv <scale-out-unique-id> -p <system-db-port> -bk AZUREWLBACKUPHANAUSER
Example:
./msawb-plugin-config-com-sap-hana-scale-out.sh -a --sid HN1 -n 00 --system-key SYSTEMKEY -suv hn1Scaleoutysuid1 -p 30013 -bk AZUREWLBACKUPHANAUSER
Where:
-
<instance-name>: SAP HANAシステム識別子(SID)、例えばHN1 -
<instance-number>: インスタンス番号、例えば00 -
<scale-out-unique-id>: スケールアウトシステム用の一意の英数字識別子(すべてのノードで同様) -
<system-db-port>: システムデータベースのポート番号、例えば30013 -
SYSTEMKEY: hdbuserstoreのシステムキーエントリ名(as-isを使う) -
AZUREWLBACKUPHANAUSER: hdbuserstoreのバックアップキーエントリの名前(as-isを使います)
VMを登録し、データベースを発見する
スケーリングアウトシステムの各ノードごとにVMを登録しデータベースを発見するには、以下の手順に従ってください:
Azureポータルで「レジリエンシー」に行き、+保護構成を選択します。
Configure protection ペインの「Datasource type」で「Azure VM 上の SAP HANA」を選択し、「Continue」を選択します。
Start: Configure Backup ペインで、Select vault を選択して Recovery Services コンテナーを選び、次に 続行 を選択します。
スケーリングアウトシステム内の各VM(プライマリノードとワーカーノードの両方)について:
VMを登録するために 「追加 」を選択してください。
「 Register VMs 」ペインでVMを選択し、次に 「Register」を選択してください。
VMが登録された後、「 Discover DBs 」を選択して、そのVM上のHANAデータベースを発見します。
Note
ディスカバリープロセスでは、各ノードにAzure Backupワークロード拡張を展開します。 各ノードで発見が完了するまで数分待ちます。
スケールアウトシステムのバックアップを設定する
すべてのノードを登録しデータベースを発見したら、スケーリングアップシステムのバックアップ保護を設定してください。
Azure portal で 回復性 に移動し、ノードが検出されたものと同じ Recovery Services コンテナーを開きます。
バックアップ目標ペインで「バックアップの設定」を選択してください。
「 バックアップするアイテムを選択する」で、HANAスケールアウトシステムを選択します。 システムはすべてのノードを表す単一の論理ユニットとして現れます。
バックアップポリシーで既存のバックアップポリシーを選択するか、新しいポリシーを作成します。 スケールアウトシステムでは、以下の設定を使用します。
- 完全なバックアップ:週に1回
- 差動バックアップ:毎日
- インクリメンタルバックアップ:1日に複数回(必要に応じて)
- ログバックアップ:最低15分ごと
Note
スケールアウトシステムの場合、Azure Backupはすべてのノード間で自動的にバックアップを調整します。 各ノードごとにバックアップを設定する必要はありません。
選択内容を確認してから 「バックアップを有効にする」を選択してください。
バックアップを有効にすると、Azure Backupがスケールアウトシステム内のすべてのノードでバックアップスケジュールを管理します。
オンデマンドバックアップを実行します
初期のスケジュールバックアップが終了した後、以下の手順に従ってAzureポータルからオンデマンドのフルバックアップを実行することができます。
Azureポータルで、Recovery Servicesのボールトを開きます。
保護されたアイテムの中でバックアップアイテムを選択し、Azure VMでSAP HANAを選択します。
スケールアウト用のHANAシステムを選択してください。
「Backup Items」ペインで「今すぐバックアップ」を選択してください。
バックアップの種類(Full、Differential、Incremental)を選択し、 OK を選択してバックアップをトリガーします。
初期の完全なバックアップが完了すると、HANAバックアップエンジンがポリシーに基づくスケジュールで自動的にログバックアップをトリガーします。
バックアップの監視と管理
バックアップジョブの監視、バックアップ設定の管理、スケーリングアウトHANAシステムの保護停止については、「Azure BackupによるバックアップされたSAP HANAデータベースの管理」をご覧ください。
次のステップ
- Azure VM上でSAP HANAデータベースを復元します。
- Azure BackupでバックアップされたSAP HANAデータベースを管理します。
- SAP HANAのバックアップ問題をトラブルシューティングしましょう。
- サポートされている構成や制限については、SAP HANAバックアップサポートマトリックスをご覧ください。