このガイドでは、 Google Cloudの SAP 用エージェントのディスク スナップショット機能を使用して、SAP HANA データベースをバックアップして復元する方法について説明します。
この機能については、ディスク スナップショットを使用した SAP HANA のバックアップと復元をご覧ください。
始める前に
- Google Cloudの SAP 用エージェントのインストールを検証する手順については、 Google Cloudの SAP 用エージェントを Compute Engine インスタンスにインストールして構成するをご覧ください。
次のように、SAP HANA システムが Compute Engine インスタンスにデプロイされていることを確認します。
- ホスト自動フェイルオーバー ソリューションと一緒にデプロイされることはありません。詳細については、スケールアウト デプロイでスナップショットを使用するをご覧ください。
- SAP 認定オペレーティング システム(OS)を使用している。詳細については、 Google Cloudでの SAP HANA に対する OS サポートをご覧ください。
/hana/data
ボリュームが、1 つ以上の SSD ベースの Persistent Disk ボリュームまたは Hyperdisk ボリュームに独立してホストされている。これらのディスクには、他の SAP HANA ボリュームがホストされないようにする必要があります。SAP Note 2039883 - FAQ: SAP HANA database and data snapshots(storage snapshots) に説明されているように、SAP HANA データベースを復元できるようにするため、ストレージ スナップショットにデータベースのログ領域が含まれないようにする必要があります。
複数のディスクを使用して
/hana/data
ボリュームをホストしている場合、エージェントのディスク スナップショット機能は、基盤となるディスクが Hyperdisk ボリュームの場合にのみ使用できます。/hana/data
ボリュームが論理ボリュームにマッピングされている。これにより、エージェントはディスク スナップショット ベースのバックアップまたは復元オペレーション中にマウント ポイントを正しく処理できます。- 基盤となるインフラストラクチャが、Terraform などの Infrastructure as Code(IaC)ツールを使用してデプロイされていない。詳細については、IaC ツールベースのデプロイでスナップショットを使用するをご覧ください。
権限の設定
Google Cloudの SAP 用エージェントのディスク スナップショット機能を使用して SAP HANA データベースのバックアップと復元を行うには、次の権限を設定する必要があります。
ディスク スナップショットを作成するため、次の IAM 権限を付与します。
1 つのデータディスクでスケールアップする
/hana/data
ボリュームが 1 つの Persistent Disk ボリュームまたは Hyperdisk ボリュームにホストされている場合は、Compute Engine インスタンスに次の権限を付与します。compute.disks.create compute.disks.createSnapshot compute.disks.get compute.disks.setLabels compute.disks.use compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.snapshots.create compute.snapshots.get compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
ストライプ化されたデータディスクによるスケールアップ
/hana/data
ボリュームが複数の Persistent Disk ボリュームまたは Hyperdisk ボリュームにホストされている場合は、Compute Engine インスタンスに次の権限を付与します。compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
ホスト自動フェイルオーバーを除くスケールアウト
スケールアウト デプロイの場合は、Compute Engine インスタンスに次の権限を付与します。
compute.disks.addResourcePolicies compute.disks.create compute.disks.get compute.disks.list compute.disks.removeResourcePolicies compute.disks.use compute.disks.useReadOnly compute.globalOperations.get compute.instances.attachDisk compute.instances.detachDisk compute.instances.get compute.instantSnapshotGroups.create compute.instantSnapshotGroups.delete compute.instantSnapshotGroups.get compute.instantSnapshotGroups.list compute.instantSnapshots.list compute.instantSnapshots.useReadOnly compute.resourcePolicies.create compute.resourcePolicies.use compute.resourcePolicies.useReadOnly compute.resourcePolicies.delete compute.snapshots.create compute.snapshots.get compute.snapshots.list compute.snapshots.setLabels compute.snapshots.useReadOnly compute.zoneOperations.get
ディスク スナップショット ベースのバックアップを作成するには、エージェントで使用される SAP HANA データベースのユーザーに
BACKUP OPERATOR
権限またはBACKUP ADMIN
権限が必要です。詳細については、SAP ドキュメントの Authorizations Needed for Backup and Recovery をご覧ください。SAP HANA データベースのバックアップと復元を行うには、エージェントのコマンドを実行するオペレーティング システム ユーザーが
root
ユーザーであるか、次のコマンドを実行するためのsudo
アクセス権を持っている必要があります。また、次のように、/etc/sudoers.d
ディレクトリにグループを作成してsudo
アクセス権を付与することもできます。%sapagent_snapshot_sudoers ALL=(ALL:ALL) NOPASSWD:/sbin/lvdisplay, /sbin/vgscan, /sbin/dmsetup, /sbin/lvscan, /usr/sbin/xfs_freeze, /usr/bin/google_cloud_sap_agent
ディスク スナップショット ベースのバックアップと復元の設定を検証する
エージェントを使用して SAP HANA システムのディスク スナップショット ベースのバックアップと復元オペレーションを実行するための正しい Google Cloud 設定がされているかどうかを確認できます。これを行うには、エージェントの status
コマンドを実行します。これは、エージェントのバージョン 3.7 以降でサポートされています。
その方法は次のとおりです。
- Compute Engine VM インスタンスまたは Bare Metal Solution サーバーと SSH 接続を確立します。
次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent status
ディスク スナップショット ベースのバックアップと復元の設定が正しければ、出力には次のものが含まれます。構成には、
default
以外の値が設定されている場合があります。Agent Status: ... Systemd Service Enabled: True Systemd Service Running: True Cloud API Full Scopes: True Configuration File: /etc/google-cloud-sap-agent/configuration.json Configuration Valid: True ... ---------------------------------------------------------------------------- Disk Snapshot: Enabled Status: Fully Functional IAM Permissions: All granted ...
ディスク整合性グループを作成
/hana/data
ボリュームが 1 つのディスクでホストされている場合は、このセクションをスキップしてください。
/hana/data
ボリュームが複数のディスクでホストされている場合は、整合性グループを作成し、/hana/data
ボリュームをホストするディスクをその整合性グループに追加する必要があります。整合性グループは、ディスクと同じリージョンに作成する必要があります。
作成方法については、整合性グループを作成するをご覧ください。
整合性グループ名をメモしておきます。これは、スナップショット ベースのバックアップの作成中にエージェントによって使用されます。
ディスク スナップショット ベースのバックアップを作成する
SAP HANA データベースの /hana/data
ボリュームにディスク スナップショット ベースのバックアップを作成するには、 Google Cloudの SAP 用エージェントの hanadiskbackup
コマンドを実行します。
1 つのデータディスクでスケールアップする
SAP HANA データベースの /hana/data
ボリュームにディスク スナップショット ベースのバックアップを作成するには、 Google Cloudの SAP 用エージェントの hanadiskbackup
コマンドを実行します。
バージョン 3.3 以降、引数 -source-disk
と -source-disk-zone
は、hanadiskbackup
コマンドと併用する場合は省略可能です。これは、エージェントが /hana/data
ディレクトリをホストするディスクを自動検出できるためです。ただし、これらの引数を指定すると、エージェントの自動検出がオーバーライドされます。
- SAP HANA 認証に
hdbuserstore
キーを使用する場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- SAP HANA 認証にユーザー名と Secret Manager シークレットを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- SAP HANA 認証にユーザー名とパスワードを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
次のように置き換えます。
DESTINATION_PROJECT_ID
: ディスク スナップショットを作成するGoogle Cloud プロジェクトの IDHANA_HOST_ADDRESS
: SAP HANA データベースをホストする Compute Engine インスタンスのホスト名または IP アドレス高可用性(HA)システムでは、プライマリ SAP HANA ノードのローカルホストのホスト名または IP アドレスを指定します。プライマリ ノードを識別するために、クラスタで使用されている仮想 IP(VIP)を使用しないでください。障害復旧(DR)デプロイメントでは、プライマリ SAP HANA インスタンスのローカルホストのホスト名または IP アドレスを指定します。
HANA_PORT_NUMBER
: バックアップと復元のリクエストを受け入れる SAP HANA ポートSID
: SAP HANA システムの SAP システム識別子(SID)HANA_USERNAME
: バックアップの作成に使用する SAP HANA データベースのユーザー名HDB_USERSTORE_KEY
: 指定した SAP HANA ユーザーを認証するためにhdbuserstore
キーを作成した場合は、そのキーを指定しますHANA_USER_PWD_SECRET_NAME
: Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。HANA_PASSWORD
: SAP HANA 認証に書式なしテキスト パスワードで/hana/data
ボリュームをホストするディスク名のカンマ区切りリスト
次の表に、hanadiskbackup
コマンドでサポートされている引数を示します。
引数 | 説明 |
---|---|
-port |
バックアップと復元のリクエストを受け入れる SAP HANA ポートを指定します。 |
-sid |
SAP HANA システムの SAP システム識別子(SID)を指定します。 |
-hana-db-user |
バックアップの作成に使用する SAP HANA データベースのユーザー名を指定します。
|
-password |
バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-password-secret |
省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。 Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。 SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-hdbuserstore-key |
SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア( 認証に
この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-host |
省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。 |
-project |
省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。 |
-abandon-prepared |
省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。 |
-snapshot-name |
省略可。作成するディスク スナップショットの名前を指定します。この引数は、 デフォルトでは、スナップショットには |
-snapshot-description |
省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。 |
-snapshot-type |
省略可。 デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-group-snapshot-name |
省略可。 デフォルトでは、スナップショット グループ名は この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-labels |
省略可。作成するディスク スナップショットに関連付けるラベル値ペアを 1 つ以上指定します。例: -labels="label1=value1,label2=value2" 。 |
-storage-location |
省略可。ディスク スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンを指定します。 |
-freeze-file-system |
省略可。エージェントが SAP HANA データベースのファイル システムを固定するかどうかを指定します。デフォルト値は この引数は、エージェントのバージョン 3.2 以降でサポートされています。 |
-send-metrics-to-monitoring |
省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。 |
-loglevel |
省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debug 、info 、warn 、error です。 |
-confirm-data-snapshot-after-create |
省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、 デフォルト値は この引数は、エージェントのバージョン 3.4 以降でサポートされています。 |
ストライプ化されたデータディスクによるスケールアップ
SAP HANA データベースの /hana/data
ボリュームにディスク スナップショット ベースのバックアップを作成するには、 Google Cloudの SAP 用エージェントの hanadiskbackup
コマンドを実行します。
バージョン 3.3 以降、引数 -source-disk
と -source-disk-zone
は、hanadiskbackup
コマンドと併用する場合は省略可能です。これは、エージェントが /hana/data
ディレクトリをホストするディスクを自動検出できるためです。ただし、これらの引数を指定すると、エージェントの自動検出がオーバーライドされます。
- SAP HANA 認証に
hdbuserstore
キーを使用する場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY
- SAP HANA 認証にユーザー名と Secret Manager シークレットを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME
- SAP HANA 認証にユーザー名とパスワードを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD
次のように置き換えます。
DESTINATION_PROJECT_ID
: ディスク スナップショットを作成するGoogle Cloud プロジェクトの IDHANA_HOST_ADDRESS
: SAP HANA データベースをホストする Compute Engine インスタンスのホスト名または IP アドレス高可用性(HA)システムでは、プライマリ SAP HANA ノードのローカルホストのホスト名または IP アドレスを指定します。プライマリ ノードを識別するために、クラスタで使用されている仮想 IP(VIP)を使用しないでください。障害復旧(DR)デプロイメントでは、プライマリ SAP HANA インスタンスのローカルホストのホスト名または IP アドレスを指定します。
HANA_PORT_NUMBER
: バックアップと復元のリクエストを受け入れる SAP HANA ポートSID
: SAP HANA システムの SAP システム識別子(SID)HANA_USERNAME
: バックアップの作成に使用する SAP HANA データベースのユーザー名HDB_USERSTORE_KEY
: 指定した SAP HANA ユーザーを認証するためにhdbuserstore
キーを作成した場合は、そのキーを指定しますHANA_USER_PWD_SECRET_NAME
: Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。HANA_PASSWORD
: SAP HANA 認証に書式なしテキスト パスワードで/hana/data
ボリュームをホストするディスク名のカンマ区切りリスト
次の表に、hanadiskbackup
コマンドでサポートされている引数を示します。
引数 | 説明 |
---|---|
-port |
バックアップと復元のリクエストを受け入れる SAP HANA ポートを指定します。 |
-sid |
SAP HANA システムの SAP システム識別子(SID)を指定します。 |
-hana-db-user |
バックアップの作成に使用する SAP HANA データベースのユーザー名を指定します。
|
-password |
バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-password-secret |
省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。 Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。 SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-hdbuserstore-key |
SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア( 認証に
この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-host |
省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。 |
-project |
省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。 |
-abandon-prepared |
省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。 |
-snapshot-name |
省略可。作成するディスク スナップショットの名前を指定します。この引数は、 デフォルトでは、スナップショットには |
-snapshot-description |
省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。 |
-snapshot-type |
省略可。 デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-group-snapshot-name |
省略可。 デフォルトでは、スナップショット グループ名は この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-labels |
省略可。作成するディスク スナップショットに関連付けるラベル値ペアを 1 つ以上指定します。例: -labels="label1=value1,label2=value2" 。 |
-source-disks |
省略可。 デプロイメントで /hana/data ボリュームをホストするディスクの名前を指定します。ディスク名はカンマで区切ります。例: -source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
省略可。ディスク スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンを指定します。 |
-freeze-file-system |
省略可。エージェントが SAP HANA データベースのファイル システムを固定するかどうかを指定します。デフォルト値は この引数は、エージェントのバージョン 3.2 以降でサポートされています。 |
-send-metrics-to-monitoring |
省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。 |
-loglevel |
省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debug 、info 、warn 、error です。 |
-confirm-data-snapshot-after-create |
省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、 デフォルト値は この引数は、エージェントのバージョン 3.4 以降でサポートされています。 |
ホスト自動フェイルオーバーを除くスケールアウト
SAP HANA データベースの /hana/data
ボリュームにディスク スナップショット ベースのバックアップを作成するには、 Google Cloudの SAP 用エージェントの hanadiskbackup
コマンドを実行します。
- SAP HANA 認証に
hdbuserstore
キーを使用する場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -sid=SID \ -hdbuserstore-key=HDB_USERSTORE_KEY \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- SAP HANA 認証にユーザー名と Secret Manager シークレットを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password-secret=HANA_USER_PWD_SECRET_NAME \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
- SAP HANA 認証にユーザー名とパスワードを使用する場合は、次のコマンドを実行します。
sudo /usr/bin/google_cloud_sap_agent hanadiskbackup \ -project=DESTINATION_PROJECT_ID \ -host=HANA_HOST_ADDRESS \ -port=HANA_PORT_NUMBER \ -sid=SID \ -hana-db-user=HANA_USERNAME \ -password=HANA_PASSWORD \ -source-disks="COMMA_SEPARATED_DISK_NAMES"
次のように置き換えます。
DESTINATION_PROJECT_ID
: ディスク スナップショットを作成するGoogle Cloud プロジェクトの IDHANA_HOST_ADDRESS
: SAP HANA データベースをホストする Compute Engine インスタンスのホスト名または IP アドレス高可用性(HA)システムでは、プライマリ SAP HANA ノードのローカルホストのホスト名または IP アドレスを指定します。プライマリ ノードを識別するために、クラスタで使用されている仮想 IP(VIP)を使用しないでください。障害復旧(DR)デプロイメントでは、プライマリ SAP HANA インスタンスのローカルホストのホスト名または IP アドレスを指定します。
HANA_PORT_NUMBER
: バックアップと復元のリクエストを受け入れる SAP HANA ポートSID
: SAP HANA システムの SAP システム識別子(SID)HANA_USERNAME
: バックアップの作成に使用する SAP HANA データベースのユーザー名HDB_USERSTORE_KEY
: 指定した SAP HANA ユーザーを認証するためにhdbuserstore
キーを作成した場合は、そのキーを指定しますHANA_USER_PWD_SECRET_NAME
: Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。HANA_PASSWORD
: SAP HANA 認証に書式なしテキスト パスワードを使用している場合は、そのパスワードを指定します。COMMA_SEPARATED_DISK_NAMES
: スケールアウト システムで/hana/data
ボリュームをホストするディスク名のカンマ区切りリスト
次の表に、hanadiskbackup
コマンドでサポートされている引数を示します。
引数 | 説明 |
---|---|
-port |
バックアップと復元のリクエストを受け入れる SAP HANA ポートを指定します。 |
-sid |
SAP HANA システムの SAP システム識別子(SID)を指定します。 |
-hana-db-user |
バックアップの作成に使用する SAP HANA データベースのユーザー名を指定します。
|
-password |
バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-password-secret |
省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。 Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。 SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-hdbuserstore-key |
SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア( 認証に
この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。
SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、 |
-host |
省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。 |
-project |
省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。 |
-abandon-prepared |
省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。 |
-snapshot-name |
省略可。作成するディスク スナップショットの名前を指定します。この引数は、 デフォルトでは、スナップショットには |
-snapshot-description |
省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。 |
-snapshot-type |
省略可。 デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-group-snapshot-name |
省略可。 デフォルトでは、スナップショット グループ名は この引数は、エージェントのバージョン 3.6 以降でサポートされています。 |
-labels |
省略可。作成するディスク スナップショットに関連付けるラベル値ペアを 1 つ以上指定します。例: -labels="label1=value1,label2=value2" 。 |
-source-disks |
スケールアウトデプロイメントで /hana/data ボリュームをホストするディスクの名前を指定します。ディスク名はカンマで区切ります。例: -source-disks="disk-name-1, disk-name-2" 。 |
-storage-location |
省略可。ディスク スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンを指定します。 |
-freeze-file-system |
省略可。エージェントが SAP HANA データベースのファイル システムを固定するかどうかを指定します。デフォルト値は この引数は、エージェントのバージョン 3.2 以降でサポートされています。 |
-send-metrics-to-monitoring |
省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。 |
-loglevel |
省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debug 、info 、warn 、error です。 |
-confirm-data-snapshot-after-create |
省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、 デフォルト値は この引数は、エージェントのバージョン 3.4 以降でサポートされています。 |
ディスク スナップショットを確認する
ディスク スナップショットが作成されたことを確認するには、次のオプションを使用します。
Google Cloud コンソールで、Compute Engine の [スナップショット] ページに移動し、ディスク名を使用してエントリをフィルタします。
/hana/data
ボリュームが 1 つのディスクでホストされている場合は、スナップショット名を使用してフィルタすることもできます。/hana/data
ボリュームが複数のディスクでホストされている場合は、スナップショット グループの名前を使用してフィルタすることもできます。また、エージェントの次のログファイルでディスク スナップショットの詳細を確認することもできます。
/var/log/google-cloud-sap-agent/hanadiskbackup.log
SAP HANA バックアップ カタログを確認する
hanadiskbackup
コマンドは、ディスク スナップショット ベースのバックアップを作成するだけでなく、SAP HANA バックアップ カタログにエントリを作成します。以下は、SAP HANA バックアップ カタログのスナップショット ベースのバックアップ エントリを表示する SQL クエリの例です。
SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot'
出力は次のようになります。
BACKUP_ID,STATE_NAME,COMMENT BACKUP_ID,"successful","SNAPSHOT_IDENTIFIER"
この出力には次の値が含まれます。
BACKUP_ID
: SAP HANA バックアップ カタログのディスク スナップショット ベースのバックアップに割り当てられたバックアップ IDSNAPSHOT_IDENTIFIER
:- 1 つのディスク上の
/hana/data
ボリュームの場合、この ID の値は、hanadiskbackup
コマンドでの-snapshot-name
引数の使用方法によって決まります。この引数を指定しなかった場合、引数のデフォルト値(snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS
)が設定されます。 /hana/
ボリュームが複数のディスクでホストされている場合、この ID の値は、hanadiskbackup
コマンドでの-group-snapshot-name
引数の使用方法によって決まります。この引数を指定しなかった場合、引数のデフォルト値(CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMMSS
)が設定されます。
- 1 つのディスク上の
SOURCE_DISK_NAME
: この値は、hanadiskbackup
コマンドでの-source-disk
引数の使用方法によって決まります。CONSISTENCY_GROUP_NAME
: この値は、hanadiskbackup
コマンドでの-group-snapshot-name
引数の使用方法によって決まりますYYYYMMDD-HHMMMSS
: スナップショットが作成された日時です。
ディスク スナップショット ベースのバックアップを使用してデータベースを復元する
Google Cloudの SAP 用エージェントのディスク スナップショット機能を使用して SAP HANA データベースを復元するには、次のシナリオの手順をご覧ください。
- スケールアップ システムのデータベースを復元する
- スケールアップ HA システムのデータベースを復元する
- スケールアップ DR デプロイ用にデータベースを復元する
- スケールアウト システムのデータベースを復元する
- システムのコピーまたはシステムの更新を行う
スケールアップ システムのデータベースを復元する
Google Cloudにデプロイされた SAP HANA スケールアップ システムのデータベースを復元するには、次の操作を行います。
エージェントの
hanadiskrestore
コマンドを実行して、/hana/data
ボリュームをホストしているディスクを復元します。/hana/data
ボリュームが 1 つのディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
/hana/data
ボリュームが複数のディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
: ディスク スナップショットが存在するGoogle Cloud プロジェクトの IDSID
: SAP HANA システムの SAP システム識別子(SID)SOURCE_SNAPSHOT_NAME
:/hana/data
ボリュームが 1 つのディスクでホストされている場合は、新しいディスクの作成に使用するディスク スナップショットの名前を指定します。SOURCE_SNAPSHOT_GROUP_NAME
:/hana/data
ボリュームが複数のディスクでホストされている場合は、新しいディスクの作成に使用するスナップショット グループ名を指定します。NEW_DISK_NAME
: 新しいディスクに設定する名前。詳細については、ディスクの復元でサポートされている引数の-new-disk-name
の説明をご覧ください。NEW_DISK_TYPE
: 作成するディスクのタイプ。詳細については、ディスクの復元でサポートされている引数の-new-disk-type
の説明をご覧ください。NEW_DISK_PREFIX
: 新しいディスクの名前に追加する接頭辞COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
: スナップショット ベースのバックアップを使用して復元するディスク名のカンマ区切りリスト
hanadiskrestore
コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。必要なオプションを使用して SAP HANA データベースを復元します。
スナップショット時刻に復元する
ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。
SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
TENANT_SID
は、テナント データベースの SID に置き換えます。
特定の時点に復元する
SAP HANA データベースを特定の時点に復元する手順は次のとおりです。
- Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に
/hana/log
ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。 SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
TENANT_SID
は、テナント データベースの SID に置き換えます。
スケールアップ HA システムのデータベースを復元する
Google Cloudの高可用性(HA)クラスタにデプロイされた SAP HANA スケールアップ システムのデータベースを復元するには、次の手順を完了します。
プライマリ SAP HANA ノードに、
/hana/data
ボリュームをホストしているディスクのスナップショットがあることを確認します。root ユーザーとして、HA クラスタをメンテナンス モードに切り替えます。Pacemaker を使用している場合は、次のコマンドを実行します。
RHEL
pcs property set maintenance-mode=true
SLES
crm configure property maintenance-mode=true
HA クラスタのプライマリ ノードとスタンバイ ノードの両方で次のコマンドを実行して、SAP HANA データベース インスタンスを停止します。
HDB stop
SAP HANA HA システムのプライマリ ノードに切り替えます。
エージェントの
hanadiskrestore
コマンドを実行して、/hana/data
ボリュームをホストしているディスクを復元します。/hana/data
ボリュームが 1 つのディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
/hana/data
ボリュームが複数のディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
: ディスク スナップショットが存在するGoogle Cloud プロジェクトの IDSID
: SAP HANA システムの SAP システム識別子(SID)SOURCE_SNAPSHOT_NAME
:/hana/data
ボリュームが 1 つのディスクでホストされている場合は、新しいディスクの作成に使用するディスク スナップショットの名前を指定します。SOURCE_SNAPSHOT_GROUP_NAME
:/hana/data
ボリュームが複数のディスクでホストされている場合は、新しいディスクの作成に使用するスナップショット グループ名を指定します。NEW_DISK_NAME
: 新しいディスクに設定する名前。詳細については、ディスクの復元でサポートされている引数の-new-disk-name
の説明をご覧ください。NEW_DISK_TYPE
: 作成するディスクのタイプ。詳細については、ディスクの復元でサポートされている引数の-new-disk-type
の説明をご覧ください。NEW_DISK_PREFIX
: 新しいディスクの名前に追加する接頭辞COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
: スナップショット ベースのバックアップを使用して復元するディスク名のカンマ区切りリスト
hanadiskrestore
コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。SAP HANA HA システムのセカンダリ ノードの登録を解除します。
hdbnsutil -sr_unregister
SAP HANA HA システムのプライマリ ノードで、SAP HANA システムのレプリケーションを無効にします。
hdbnsutil -sr_disable
プライマリ ノードで、必要なオプションを使用して SAP HANA データベースを復元します。
スナップショット時刻に復元する
ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。
SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
TENANT_SID
は、テナント データベースの SID に置き換えます。
特定の時点に復元する
SAP HANA データベースを特定の時点に復元する手順は次のとおりです。
- Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に
/hana/log
ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。 SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
TENANT_SID
は、テナント データベースの SID に置き換えます。
プライマリ ノードで、SAP HANA システム レプリケーションを有効にします。
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
スタンバイ ノードをプライマリ ノードに再登録します。
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
スタンバイ ノードのデータベースがプライマリ ノード内のデータベースと完全に同期していることを確認します。
root ユーザーとして、HA クラスタのメンテナンス モードを終了します。Pacemaker を使用している場合は、次のコマンドを実行します。
RHEL
pcs property set maintenance-mode=false
SLES
crm configure property maintenance-mode=false
スケールアップ DR デプロイ用にデータベースを復元する
Google Cloudに障害復旧ソリューションを使用してデプロイされた SAP HANA スケールアップ システムのデータベースを復元するには、次の手順を完了します。
DR デプロイのプライマリ インスタンスとスタンバイ インスタンスの両方で次のコマンドを実行して、SAP HANA データベースを停止します。
HDB stop
SAP HANA DR デプロイメントのプライマリ インスタンスに切り替えます。
エージェントの
hanadiskrestore
コマンドを実行して、/hana/data
ボリュームをホストしているディスクを復元します。/hana/data
ボリュームが 1 つのディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -source-snapshot=SOURCE_SNAPSHOT_NAME \ [-new-disk-name=NEW_DISK_NAME \ -new-disk-type=NEW_DISK_TYPE]
/hana/data
ボリュームが複数のディスクでホストされている場合は、次のコマンドを実行します。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ [-source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ -new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
: ディスク スナップショットが存在するGoogle Cloud プロジェクトの IDSID
: SAP HANA システムの SAP システム識別子(SID)SOURCE_SNAPSHOT_NAME
:/hana/data
ボリュームが 1 つのディスクでホストされている場合は、新しいディスクの作成に使用するディスク スナップショットの名前を指定します。SOURCE_SNAPSHOT_GROUP_NAME
:/hana/data
ボリュームが複数のディスクでホストされている場合は、新しいディスクの作成に使用するスナップショット グループ名を指定します。NEW_DISK_NAME
: 新しいディスクに設定する名前。詳細については、ディスクの復元でサポートされている引数の-new-disk-name
の説明をご覧ください。NEW_DISK_TYPE
: 作成するディスクのタイプ。詳細については、ディスクの復元でサポートされている引数の-new-disk-type
の説明をご覧ください。NEW_DISK_PREFIX
: 新しいディスクの名前に追加する接頭辞COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
: スナップショット ベースのバックアップを使用して復元するディスク名のカンマ区切りリスト
hanadiskrestore
コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。プライマリ インスタンスで、SAP HANA システム レプリケーションを無効にします。
hdbnsutil -sr_disable
プライマリ インスタンスで、必要なオプションを使用して SAP HANA データベースを復元します。
スナップショット時刻に復元する
ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。
SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
TENANT_SID
は、テナント データベースの SID に置き換えます。
特定の時点に復元する
SAP HANA データベースを特定の時点に復元する手順は次のとおりです。
- Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に
/hana/log
ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。 SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
TENANT_SID
は、テナント データベースの SID に置き換えます。
プライマリ インスタンスで、SAP HANA システム レプリケーションを有効にします。
hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
スタンバイ インスタンスをプライマリ インスタンスに登録します。
hdbnsutil -sr_register --name=SECONDARY_SITE_NAME --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INSTANCE_NUMBER --replicationMode=sync --operationMode=logreplay
スタンバイ インスタンスのデータベースが、プライマリ インスタンスのデータベースと完全に同期していることを確認します。
スケールアウト システムのデータベースを復元する
ホスト自動フェイルオーバー ソリューションなしでGoogle Cloud にデプロイされた SAP HANA スケールアウト システムのデータベースを復元するには、次の操作を行います。
スケールアウト デプロイの各ノードで、SAP HANA を停止します。
HDB STOP
各ノードで、root ユーザーとして
/hana/data
ボリュームをマウント解除します。これを行う方法については、ご使用の SAP HANA バージョンの SAP のドキュメントをご覧ください。
エージェントの
hanadiskrestore
コマンドを実行して、/hana/data
ボリュームをホストしているディスクを復元します。 次のように置き換えます。sudo /usr/bin/google_cloud_sap_agent hanadiskrestore \ -project=SOURCE_PROJECT_ID \ -sid=SID \ -group-snapshot-name=SOURCE_SNAPSHOT_GROUP_NAME \ -source-disks=COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY \ [-new-disk-type=NEW_DISK_TYPE \ -new-disk-prefix=NEW_DISK_PREFIX]
SOURCE_PROJECT_ID
: ディスク スナップショットが存在するGoogle Cloud プロジェクトの IDSID
: SAP HANA システムの SAP システム識別子(SID)SOURCE_SNAPSHOT_GROUP_NAME
: 新しいディスクの作成に使用するスナップショット グループの名前NEW_DISK_TYPE
: 作成するディスクのタイプ。詳細については、ディスクの復元でサポートされている引数の-new-disk-type
の説明をご覧ください。NEW_DISK_PREFIX
: 新しいディスクの名前に追加する接頭辞COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY
: スナップショット ベースのバックアップを使用して復元するディスク名のカンマ区切りリスト
hanadiskrestore
コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。各ワーカーノードで、root ユーザーとしてボリューム グループを再スキャンします。
/sbin/dmsetup remove_all /sbin/vgscan -v --mknodes /sbin/vgchange -ay /sbin/lvscan mount -av
各ワーカーノードで、root ユーザーとして、必要なオプションを使用して SAP HANA データベースを復元します。
スナップショット時刻に復元する
ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。
SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG
TENANT_SID
は、テナント データベースの SID に置き換えます。
特定の時点に復元する
SAP HANA データベースを特定の時点に復元する手順は次のとおりです。
- Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に
/hana/log
ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。 SIDadm
ユーザーに切り替えます。su - SID_LCadm
SID_LC
は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。- 次のコマンドを実行して、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
- システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
SYSTEM_DB_PASSWORD
: システム データベースのパスワードINSTANCE_NUMBER
: SAP HANA インスタンス番号
- テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT
TENANT_SID
は、テナント データベースの SID に置き換えます。
各ワーカーノードで SAP HANA データベースを起動します。
スケールアウト デプロイのマスターノードに対して手順 3~5 を繰り返します。
ディスクの復元でサポートされている引数
次の表に、エージェントの hanadiskrestore
コマンドでサポートされる引数を示します。
引数 | 説明 |
---|---|
-sid |
SAP HANA システムの SAP システム識別子(SID)を指定します。 |
-data-disk-name |
省略可。/hana/data ボリュームをホストするソースディスクの名前を指定します。
注: バージョン 3.4 以降、引数 |
-source-disks |
復元するデプロイメントで この引数は、 Google Cloudの SAP 用エージェントのバージョン 3.7 以降でサポートされています。この引数は、スケールアウト システムの復元に必要です。ストライプ ディスクを使用して |
-data-disk-zone |
省略可。/hana/data ボリュームをホストするソースディスクがデプロイされているゾーンを指定します。注: バージョン 3.4 以降、引数 |
-source-snapshot |
/hana/data ボリュームが 1 つのディスクでホストされている場合は、復元に使用するディスク スナップショットの名前を指定します。 |
-new-disk-name |
新しいディスクに設定する名前を指定します。この引数は、/hana/data ボリュームが複数のディスクでホストされている場合は適用されません。 |
-group-snapshot-name |
復元に使用するスナップショット グループ名を指定します。 この引数は、エージェントのバージョン 3.6 以降でサポートされています。この引数は、単一ディスクを使用して |
-project |
省略可。ソースディスクのスナップショットが存在する Google Cloud プロジェクトの ID を指定します。デフォルトでは、SAP HANA システムが実行されている Google Cloud プロジェクトにスナップショットが作成されます。 |
-csek-key-file |
省略可。hanadiskbackup コマンドで -source-disk-key-file 引数を使用してソースディスク スナップショットを暗号化した場合は、ソースディスク スナップショットに対応する RSA でラップした顧客指定の暗号鍵の JSON ファイルの絶対パスを指定します。鍵ファイルの例を次に示します。[ { "uri": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME", "key": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==", "key-type": "rsa-encrypted" } ] この引数は、エージェントのバージョン 3.2 以降でサポートされています。 |
-new-disk-type |
省略可。作成する Persistent Disk または Hyperdisk のタイプを指定します。デフォルトでは、新しいディスクはソースディスクと同じタイプになります。 SAP HANA での使用が SAP によって認定されている SSD ベースのディスクタイプを指定してください。詳細については、サポートされているディスクタイプをご覧ください。 |
-new-disk-prefix |
省略可。新しいディスクの名前に追加する接頭辞を指定します。 この引数は、エージェントのバージョン 3.7 以降でサポートされています。この引数は、単一ディスクを使用して |
-hana-sidadm |
省略可。SIDadm (SAP HANA システムのオペレーティング システム ユーザー)を指定します。 |
-force-stop-hana |
省略可。復元オペレーションを開始する前に SAP HANA を強制的に停止する場合は、この引数を指定し、値を true に設定します。デフォルト値は false です。 |
-provisioned-iops |
省略可。Hyperdisk ボリュームを作成する場合は、処理する IOPS(1 秒あたりの入出力オペレーション)を指定します。 |
-provisioned-throughput |
省略可。Hyperdisk ボリュームを作成する場合は、サポートするスループットを指定します。 |
-labels-on-detached-disk |
省略可。復元された この引数は、エージェントのバージョン 3.4 以降でサポートされています。 |
-send-metrics-to-monitoring |
省略可。スナップショットの復元の所要時間を Cloud Monitoring に送信するかどうかを指定します。デフォルト値は この引数は、エージェントのバージョン 3.4 以降でサポートされています。 |
-disk-size-gb |
省略可。新しいディスクのサイズを GB で指定します。デフォルトでは、新しいディスクは既存のディスクと同じサイズになります。 新しいディスクのサイズは、既存のディスクよりも小さくしないでください。 |
-loglevel |
省略可。hanadiskrestore コマンドで実行するすべてのアクションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debug 、info 、warn 、error です。 |
システムのコピーまたはシステムの更新を行う
SAP HANA システムのディスク スナップショット ベースのバックアップを使用して別の SAP HANA システムを復元するには、次の手順を完了します。
- ソースシステムでエージェントの
hanadiskbackup
コマンドを実行して、スナップショット ベースのバックアップを作成します。手順については、ディスク スナップショット ベースのバックアップを作成するをご覧ください。 ソースシステムとターゲット システムの SID が異なる場合は、ターゲット システムと一致するようにソースシステムの
/hana/data/SID
ディレクトリの名前を変更します。mv /hana/data/SOURCE_SID /hana/data/TARGET_SID
次のように置き換えます。
SOURCE_SID
: ソース SAP HANA システムの SIDTARGET_SID
: ターゲット SAP HANA システムの SID
ターゲット システムでエージェントの
hanadiskrestore
コマンドを実行して、/hana/data
ボリュームをホストしているディスクを復元します。ソース SAP HANA システムでデータ暗号化を有効にしている場合は、復元を行う前に、暗号鍵をターゲット システムにインポートする必要があります。ソースシステムでデータ暗号化を有効にしていない場合は、この手順をスキップします。
データ暗号鍵をターゲット システムにインポートするには、次の操作を行います。
システム データベースの暗号鍵のバックアップを作成します。
hdbnsutil -backupRootKeys FILE_NAME_SYS.rkb --type=ALL --database_name=SYSTEMDB
FILE_NAME_SYS
は、システム データベースの暗号鍵バックアップに設定する名前に置き換えます。必要に応じて、このファイルを保存するパスを含めることができます。ソースシステムで、テナント データベースごとに次のコマンドを実行して、テナント データベースの暗号鍵のバックアップを作成します。
hdbnsutil -backupRootKeys FILE_NAME_TENANT.rkb --type=ALL --database_name=TENANT_DB_NAME
次のように置き換えます。
FILE_NAME_TENANT
: テナント データベースの暗号鍵バックアップに設定する名前。必要に応じて、このファイルを保存するパスを含めることができます。TENANT_DB_NAME
: テナント データベース名
バックアップを確認します。
ls -ltr *.rkb
出力は次のようになります。
-rw-r----- 1 sbxadm sapsys 1440 Mar 24 21:09 sbxkeys.rkb -rw-r----- 1 sbxadm sapsys 1440 Mar 24 21:12 systemkeys.rkb
ターゲット システムで、システム データベースのバックアップされた暗号鍵をインポートします。
hdbnsutil -recoverRootKeys FILE_NAME_SYS.rkb --dbid=SYSTEM_DB_ID --password=SYSTEM_DB_PASSWORD
次のように置き換えます。
SYSTEM_DB_ID
: システム データベース IDSYSTEM_DB_PASSWORD
: システム データベースのパスワード
テナント データベースごとに次のコマンドを実行して、テナント データベースのバックアップされた暗号鍵をインポートします。
hdbnsutil -recoverRootKeys FILE_NAME_TENANT.rkb --dbid=TENANT_DB_ID --password=TENANT_DB_PASSWORD
次のように置き換えます。
TENANT_DB_ID
: テナント データベース IDTENANT_DB_PASSWORD
: テナント データベースのパスワード
ターゲット システムで、システム データベースを復元します。
HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SOURCE 'SYSTEMDB@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT"
テナント データベースにソースシステムの SID を設定する場合、SAP HANA ドキュメントの Rename a Tenant Database の手順に沿って名前を変更できます。
ターゲット システムで、システム データベースに接続します。たとえば、次のコマンドを実行します。
hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER
INSTANCE_NUMBER
は、SAP HANA システム データベースのインスタンス番号に置き換えます。ターゲット システムで、テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
RECOVER DATABASE FOR TARGET_SID UNTIL TIMESTAMP '2023-12-08 23:59:00' CLEAR LOG USING SOURCE 'TARGET_SID@SOURCE_SID' USING CATALOG BACKINT USING SNAPSHOT
ターゲット システムで、テナント データベースごとに次のコマンドを実行して、テナント データベースに接続します。
hdbsql -d TENANT_SID -u system -p "TENANT_DB_PASSWORD" -i INSTANCE_NUMBER
次のように置き換えます。
TENANT_SID
: テナント データベースの SIDINSTANCE_NUMBER
: テナント データベース インスタンス番号
次の手順で、ターゲット データベースのデータの整合性を検証します。
ターゲット システムを停止します。
HDB stop
SIDadm
ユーザーとして、hdbpersdiag
ツールを実行します。hdbpersdiag -c 'check all' -e HANA_DATA_DIRECTORY
HANA_DATA_DIRECTORY
は、SAP HANA データ ボリューム ディレクトリに置き換えます(例:/hana/data/SBX/mnt00001/hdb00001
)。
データの整合性検証が失敗した場合は、次の手順を完了します。
ターゲット システムの場合は、システム データベースとすべてのテナント データベースでデータ暗号化が有効になっていることを確認します。
SELECT * FROM SYS.M_ENCRYPTION_OVERVIEW
データベースのデータ暗号化が
FALSE
の場合は、データ暗号化を有効にします。ALTER SYSTEM PERSISTENCE ENCRYPTION ON; ALTER SYSTEM LOG ENCRYPTION ON; ALTER SYSTEM BACKUP ENCRYPTION ON;
hdbpersdiag
ツールを使用してデータの整合性を再検証します。
スナップショットの整合性を検証する
このセクションでは、SAP の hdbpersdiag
ツールを使用してディスク スナップショット内のデータの整合性を検証する方法について説明します。ディスク スナップショット ベースのバックアップと復元について Google Cloud が推奨するその他のベスト プラクティスについては、ベスト プラクティスをご覧ください。
スナップショットの整合性を検証するには、次の手順を完了します。
エージェントの
hanadiskbackup
コマンドを使用して、作成したスナップショットからディスクを作成します。gcloud compute disks create
コマンドを実行します。gcloud compute disks create DISK_NAME \ --size=SIZE \ --source-snapshot=SNAPSHOT_NAME \ --type=DISK_TYPE \ --zone=ZONE
次のように置き換えます。
DISK_NAME
: 一時ディスクの名前SIZE
: 一時ディスクのサイズSNAPSHOT_NAME
: ソース スナップショットの名前DISK_TYPE
: 一時ディスクのディスクタイプZONE
: 一時ディスクをデプロイする Compute Engine ゾーン
ディスクを SAP HANA ホスト以外の Compute Engine インスタンスにアタッチします。
gcloud compute instances attach-disk
コマンドを実行します。gcloud compute instances attach-disk COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
次のように置き換えます。
COMPUTE_INSTANCE_NAME
: 作成したディスクをデプロイするコンピューティング インスタンスの名前DISK_NAME
: 作成したディスクの名前ZONE
: コンピューティング インスタンスがデプロイされている Compute Engine ゾーン
任意の SSH メソッドを使用してコンピューティング インスタンスに接続します。
新しいディスクを一時ファイル システムとしてマウントします。
OS レベルで、アクティブな論理ボリュームがないボリューム グループを見つけます。
vgdisplay
出力は次のようになります。
--- Volume group --- VG Name vg_hana_data System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 250.00 GiB PE Size 4.00 MiB Total PE 63999 Alloc PE / Size 63999 / 250.00 GiB Free PE / Size 0 / 0 VG UUID Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
VG UUID を使用して、ボリューム グループの名前を変更します。上記の例では
Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR
です。vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
ボリューム グループと論理ボリュームを有効にします。
vgchange -a y vg_hana_data_temp lvchange -a y /dev/vg_hana_data_temp/data
論理ボリュームを一時ファイル システムにマウントします(例:
/hana/data_temp
)。mkdir /hana/data_temp mount /dev/vg_hana_data_temp/data /hana/data_temp
すべてのディスクが正しくマウントされていることを確認します。
lsblk
出力は次のようになります。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 350G 0 disk └─vg_hana_data_temp-data 254:5 0 250G 0 lvm /hana/data_temp sdc 8:32 0 104G 0 disk └─vg_hana_log-log 254:2 0 104G 0 lvm /hana/log sdd 8:48 0 208G 0 disk └─vg_hana_shared-shared 254:0 0 208G 0 lvm /hana/shared sde 8:64 0 32G 0 disk └─vg_hana_usrsap-usrsap 254:3 0 32G 0 lvm /usr/sap sdf 8:80 0 416G 0 disk └─vg_hanabackup-backup 254:4 0 416G 0 lvm /hanabackup sdh 8:112 0 250G 0 disk └─vg_hana_data-data 254:1 0 250G 0 lvm /hana/data
SIDadm
ユーザーとして、一時ファイル システムに含まれるデータ ボリュームに対してhdbpersdiag
ツールを実行します。for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
hdbpersdiag
ツールの出力を確認します。今後、この整合性チェックを実行する場合は、新しいボリューム グループを残しておきます。実行しない場合は削除します。
コンピューティング インスタンスからディスクを切断します。
gcloud compute instances detach-disk
コマンドを実行します。COMPUTE_INSTANCE_NAME \ --disk=DISK_NAME \ --zone=ZONE
ディスクを削除します。
gcloud compute disks delete
コマンドを実行します。gcloud compute disks delete DISK_NAME \ --zone=ZONE
トラブルシューティング
Google Cloudの SAP 用エージェントは、ディスク スナップショット ベースの SAP HANA のバックアップおよび復元中に発生する可能性のある問題に対処するように設計されていますが、手動による操作が必要になるシナリオもいくつかあります。
Google Cloudの SAP 用エージェントのディスク スナップショット機能に関する問題のトラブルシューティングについては、ディスク スナップショット ベースのバックアップまたは復元に関する問題ご覧ください。
サポートを受ける
Google Cloudの SAP 用エージェントに関する問題を解決するには、必要な診断情報を収集し、Cloud カスタマーケアまでお問い合わせください。詳細については、Google Cloudの SAP 用エージェントの診断情報をご覧ください。