ディスク スナップショットを使用して SAP HANA のバックアップと復元を行う

このガイドでは、 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 以降でサポートされています。

その方法は次のとおりです。

  1. Compute Engine VM インスタンスまたは Bare Metal Solution サーバーと SSH 接続を確立します。
  2. 次のコマンドを実行します。

    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 プロジェクトの ID
  • HANA_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 データベースのユーザー名を指定します。

-hdbuserstore-key を指定する場合は、-hana-db-user 引数の指定をスキップできます。

-password

バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。

-password-secret または -hdbuserstore-key 引数を使用している場合は、この引数を指定しないでください。-password を使用する代わりに、いずれかを使用することをおすすめします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-password-secret

省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。

Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-hdbuserstore-key

SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア(hdbuserstore鍵を指定します。

認証に hdbuserstore 鍵を使用するには、次の点に注意してください。

  • SAP ツール hdbsqlhdbuserstore が、エージェントをホストする Compute インスタンスにインストールされている。
  • hdbuserstore キーが、特定の 1 つの SAP HANA インスタンスに対応している。複数の SAP HANA インスタンスのホスト名を含む鍵は使用できません。
  • SIDadm ユーザーは、このキーを使用して SAP HANA データベースにクエリを実行できます。ここで、SIDsid パラメータに指定した値を参照します。これを検証するには、SIDadm ユーザーとして次のコマンドを実行します。
    hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。

-hdbuserstore-key を指定する場合、引数 -host-port-hana-db-user を省略できます。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-host 省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。
-project 省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。
-abandon-prepared 省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。
-snapshot-name

省略可。作成するディスク スナップショットの名前を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。

デフォルトでは、スナップショットには snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS という形式の名前が付けられます。

-snapshot-description 省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。
-snapshot-type

省略可。/hana/data ボリュームをホストするディスクに作成するスナップショットのタイプを指定します。この引数は、/hana/data ボリュームが複数のディスクでホストされている場合にのみ適用されます。

デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: STANDARDARCHIVE。これらのスナップショット タイプについては、アーカイブ ディスクと標準ディスクのスナップショットについてをご覧ください。

この引数は、エージェントのバージョン 3.6 以降でサポートされています。

-group-snapshot-name

省略可。/hana/data ボリュームをホストするディスクのスナップショットのスナップショット グループ名を指定します。

デフォルトでは、スナップショット グループ名は CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMSS という形式で設定されます。ここで、CONSISTENCY_GROUP_NAME は、ディスク整合性グループを作成するで作成したディスク整合性グループの名前です。

この引数は、エージェントのバージョン 3.6 以降でサポートされています。

-labels 省略可。作成するディスク スナップショットに関連付けるラベル値ペアを 1 つ以上指定します。例: -labels="label1=value1,label2=value2"
-storage-location 省略可。ディスク スナップショットを保存する Cloud Storage マルチリージョンまたは Cloud Storage リージョンを指定します。
-freeze-file-system

省略可。エージェントが SAP HANA データベースのファイル システムを固定するかどうかを指定します。デフォルト値は false です。

この引数は、エージェントのバージョン 3.2 以降でサポートされています。

-send-metrics-to-monitoring 省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。
-loglevel 省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debuginfowarnerror です。
-confirm-data-snapshot-after-create

省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、-storage-location 引数に対して指定された Cloud Storage バケットへのアップロードを確認する必要はない場合は、値 TRUE を指定します。

デフォルト値は FALSE です。この場合、エージェントは CREATE オペレーションと UPLOAD オペレーションの両方が完了した後にスナップショットの作成を確認します。

この引数は、エージェントのバージョン 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 プロジェクトの ID
  • HANA_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 データベースのユーザー名を指定します。

-hdbuserstore-key を指定する場合は、-hana-db-user 引数の指定をスキップできます。

-password

バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。

-password-secret または -hdbuserstore-key 引数を使用している場合は、この引数を指定しないでください。-password を使用する代わりに、いずれかを使用することをおすすめします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-password-secret

省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。

Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-hdbuserstore-key

SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア(hdbuserstore鍵を指定します。

認証に hdbuserstore 鍵を使用するには、次の点に注意してください。

  • SAP ツール hdbsqlhdbuserstore が、エージェントをホストする Compute インスタンスにインストールされている。
  • hdbuserstore キーが、特定の 1 つの SAP HANA インスタンスに対応している。複数の SAP HANA インスタンスのホスト名を含む鍵は使用できません。
  • SIDadm ユーザーは、このキーを使用して SAP HANA データベースにクエリを実行できます。ここで、SIDsid パラメータに指定した値を参照します。これを検証するには、SIDadm ユーザーとして次のコマンドを実行します。
    hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。

-hdbuserstore-key を指定する場合、引数 -host-port-hana-db-user を省略できます。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-host 省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。
-project 省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。
-abandon-prepared 省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。
-snapshot-name

省略可。作成するディスク スナップショットの名前を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。

デフォルトでは、スナップショットには snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS という形式の名前が付けられます。

-snapshot-description 省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。
-snapshot-type

省略可。/hana/data ボリュームをホストするディスクに作成するスナップショットのタイプを指定します。この引数は、/hana/data ボリュームが複数のディスクでホストされている場合にのみ適用されます。

デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: STANDARDARCHIVE。これらのスナップショット タイプについては、アーカイブ ディスクと標準ディスクのスナップショットについてをご覧ください。

この引数は、エージェントのバージョン 3.6 以降でサポートされています。

-group-snapshot-name

省略可。/hana/data ボリュームをホストするディスクのスナップショットのスナップショット グループ名を指定します。

デフォルトでは、スナップショット グループ名は CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMSS という形式で設定されます。ここで、CONSISTENCY_GROUP_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 データベースのファイル システムを固定するかどうかを指定します。デフォルト値は false です。

この引数は、エージェントのバージョン 3.2 以降でサポートされています。

-send-metrics-to-monitoring 省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。
-loglevel 省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debuginfowarnerror です。
-confirm-data-snapshot-after-create

省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、-storage-location 引数に対して指定された Cloud Storage バケットへのアップロードを確認する必要はない場合は、値 TRUE を指定します。

デフォルト値は FALSE です。この場合、エージェントは CREATE オペレーションと UPLOAD オペレーションの両方が完了した後にスナップショットの作成を確認します。

この引数は、エージェントのバージョン 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 プロジェクトの ID
  • HANA_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 データベースのユーザー名を指定します。

-hdbuserstore-key を指定する場合は、-hana-db-user 引数の指定をスキップできます。

-password

バックアップの作成に使用する SAP HANA データベース ユーザーのパスワードを指定します。

-password-secret または -hdbuserstore-key 引数を使用している場合は、この引数を指定しないでください。-password を使用する代わりに、いずれかを使用することをおすすめします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-password-secret

省略可。Secret Manager を使用して SAP HANA データベース ユーザーのパスワードを保存する場合は、対応するシークレット名を指定します。

Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-hdbuserstore-key

SAP HANA システムに安全に接続するには、そのシステム用に作成したセキュア ユーザーストア(hdbuserstore鍵を指定します。

認証に hdbuserstore 鍵を使用するには、次の点に注意してください。

  • SAP ツール hdbsqlhdbuserstore が、エージェントをホストする Compute インスタンスにインストールされている。
  • hdbuserstore キーが、特定の 1 つの SAP HANA インスタンスに対応している。複数の SAP HANA インスタンスのホスト名を含む鍵は使用できません。
  • SIDadm ユーザーは、このキーを使用して SAP HANA データベースにクエリを実行できます。ここで、SIDsid パラメータに指定した値を参照します。これを検証するには、SIDadm ユーザーとして次のコマンドを実行します。
    hdbsql -U HDB_USERSTORE_KEY "SELECT * FROM DUMMY"

この構成パラメータは、エージェントのバージョン 3.3 以降でサポートされています。

-hdbuserstore-key を指定する場合、引数 -host-port-hana-db-user を省略できます。

SAP HANA 認証の場合、エージェントは次の優先順位を使用します。指定されている場合、-hdbuserstore-key 引数は -password 引数よりも優先され、これは -password-secret 引数よりも優先されます。hanadiskbackup コマンドを実行するときに、指定する認証オプションは 1 つだけにすることをおすすめします。

-host 省略可。SAP HANA システムをホストする Compute Engine インスタンスの IP アドレスを指定します。デフォルト値は localhost です。
-project 省略可。SAP HANA インスタンスが実行されている Google Cloud プロジェクトの ID を指定します。
-abandon-prepared 省略可。既存のスナップショット ベースのバックアップを無視するかどうかを指定します。デフォルト値は false です。
-snapshot-name

省略可。作成するディスク スナップショットの名前を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。

デフォルトでは、スナップショットには snapshot-SOURCE_DISK_NAME-YYYYMMDD-HHMMSS という形式の名前が付けられます。

-snapshot-description 省略可。ディスク スナップショットの説明を指定します。この引数は、/hana/data ボリュームが 1 つのディスクでホストされている場合にのみ適用されます。
-snapshot-type

省略可。/hana/data ボリュームをホストするディスクに作成するスナップショットのタイプを指定します。この引数は、/hana/data ボリュームが複数のディスクでホストされている場合にのみ適用されます。

デフォルトでは、エージェントは標準スナップショットを作成します。この引数でサポートされる値: STANDARDARCHIVE。これらのスナップショット タイプについては、アーカイブ ディスクと標準ディスクのスナップショットについてをご覧ください。

この引数は、エージェントのバージョン 3.6 以降でサポートされています。

-group-snapshot-name

省略可。/hana/data ボリュームをホストするディスクのスナップショットのスナップショット グループ名を指定します。

デフォルトでは、スナップショット グループ名は CONSISTENCY_GROUP_NAME-YYYYMMDD-HHMMSS という形式で設定されます。ここで、CONSISTENCY_GROUP_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 データベースのファイル システムを固定するかどうかを指定します。デフォルト値は false です。

この引数は、エージェントのバージョン 3.2 以降でサポートされています。

-send-metrics-to-monitoring 省略可。スナップショット作成の実行ステータスを Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。
-loglevel 省略可。スナップショット作成オペレーションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debuginfowarnerror です。
-confirm-data-snapshot-after-create

省略可。スナップショットの作成直後に SAP HANA へのスナップショットの作成を確認する必要があるものの、-storage-location 引数に対して指定された Cloud Storage バケットへのアップロードを確認する必要はない場合は、値 TRUE を指定します。

デフォルト値は FALSE です。この場合、エージェントは CREATE オペレーションと UPLOAD オペレーションの両方が完了した後にスナップショットの作成を確認します。

この引数は、エージェントのバージョン 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 バックアップ カタログのディスク スナップショット ベースのバックアップに割り当てられたバックアップ ID
  • SNAPSHOT_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)が設定されます。
  • SOURCE_DISK_NAME: この値は、hanadiskbackup コマンドでの -source-disk 引数の使用方法によって決まります。
  • CONSISTENCY_GROUP_NAME: この値は、hanadiskbackup コマンドでの -group-snapshot-name 引数の使用方法によって決まります
  • YYYYMMDD-HHMMMSS: スナップショットが作成された日時です。

ディスク スナップショット ベースのバックアップを使用してデータベースを復元する

Google Cloudの SAP 用エージェントのディスク スナップショット機能を使用して SAP HANA データベースを復元するには、次のシナリオの手順をご覧ください。

スケールアップ システムのデータベースを復元する

Google Cloudにデプロイされた SAP HANA スケールアップ システムのデータベースを復元するには、次の操作を行います。

  1. エージェントの 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 プロジェクトの ID
    • SID: 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 コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。

  2. 必要なオプションを使用して SAP HANA データベースを復元します。

    スナップショット時刻に復元する

    ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。

    1. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    2. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    4. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      TENANT_SID は、テナント データベースの SID に置き換えます。

    特定の時点に復元する

    SAP HANA データベースを特定の時点に復元する手順は次のとおりです。

    1. Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に /hana/log ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。
    2. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    3. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    5. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      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 スケールアップ システムのデータベースを復元するには、次の手順を完了します。

  1. プライマリ SAP HANA ノードに、/hana/data ボリュームをホストしているディスクのスナップショットがあることを確認します。

  2. root ユーザーとして、HA クラスタをメンテナンス モードに切り替えます。Pacemaker を使用している場合は、次のコマンドを実行します。

    RHEL

    pcs property set maintenance-mode=true

    SLES

    crm configure property maintenance-mode=true
  3. HA クラスタのプライマリ ノードとスタンバイ ノードの両方で次のコマンドを実行して、SAP HANA データベース インスタンスを停止します。

    HDB stop
  4. SAP HANA HA システムのプライマリ ノードに切り替えます。

  5. エージェントの 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 プロジェクトの ID
    • SID: 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 コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。

  6. SAP HANA HA システムのセカンダリ ノードの登録を解除します。

    hdbnsutil -sr_unregister
  7. SAP HANA HA システムのプライマリ ノードで、SAP HANA システムのレプリケーションを無効にします。

    hdbnsutil -sr_disable
  8. プライマリ ノードで、必要なオプションを使用して SAP HANA データベースを復元します。

    スナップショット時刻に復元する

    ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。

    1. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    2. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    4. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      TENANT_SID は、テナント データベースの SID に置き換えます。

    特定の時点に復元する

    SAP HANA データベースを特定の時点に復元する手順は次のとおりです。

    1. Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に /hana/log ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。
    2. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    3. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    5. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      TENANT_SID は、テナント データベースの SID に置き換えます。

  9. プライマリ ノードで、SAP HANA システム レプリケーションを有効にします。

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  10. スタンバイ ノードをプライマリ ノードに再登録します。

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  11. スタンバイ ノードのデータベースがプライマリ ノード内のデータベースと完全に同期していることを確認します。

  12. root ユーザーとして、HA クラスタのメンテナンス モードを終了します。Pacemaker を使用している場合は、次のコマンドを実行します。

    RHEL

    pcs property set maintenance-mode=false

    SLES

    crm configure property maintenance-mode=false

スケールアップ DR デプロイ用にデータベースを復元する

Google Cloudに障害復旧ソリューションを使用してデプロイされた SAP HANA スケールアップ システムのデータベースを復元するには、次の手順を完了します。

  1. DR デプロイのプライマリ インスタンスとスタンバイ インスタンスの両方で次のコマンドを実行して、SAP HANA データベースを停止します。

    HDB stop
  2. SAP HANA DR デプロイメントのプライマリ インスタンスに切り替えます。

  3. エージェントの 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 プロジェクトの ID
    • SID: 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 コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。

  4. プライマリ インスタンスで、SAP HANA システム レプリケーションを無効にします。

    hdbnsutil -sr_disable
  5. プライマリ インスタンスで、必要なオプションを使用して SAP HANA データベースを復元します。

    スナップショット時刻に復元する

    ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。

    1. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    2. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    4. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      TENANT_SID は、テナント データベースの SID に置き換えます。

    特定の時点に復元する

    SAP HANA データベースを特定の時点に復元する手順は次のとおりです。

    1. Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に /hana/log ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。
    2. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    3. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    5. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      TENANT_SID は、テナント データベースの SID に置き換えます。

  6. プライマリ インスタンスで、SAP HANA システム レプリケーションを有効にします。

    hdbnsutil -sr_enable --name=PRIMARY_SITE_NAME
  7. スタンバイ インスタンスをプライマリ インスタンスに登録します。

    hdbnsutil -sr_register
       --name=SECONDARY_SITE_NAME
       --remoteHost=PRIMARY_HOST_NAME
       --remoteInstance=INSTANCE_NUMBER
       --replicationMode=sync
       --operationMode=logreplay
  8. スタンバイ インスタンスのデータベースが、プライマリ インスタンスのデータベースと完全に同期していることを確認します。

スケールアウト システムのデータベースを復元する

ホスト自動フェイルオーバー ソリューションなしでGoogle Cloud にデプロイされた SAP HANA スケールアウト システムのデータベースを復元するには、次の操作を行います。

  1. スケールアウト デプロイの各ノードで、SAP HANA を停止します。

    HDB STOP
    
  2. 各ノードで、root ユーザーとして /hana/data ボリュームをマウント解除します。

    これを行う方法については、ご使用の SAP HANA バージョンの SAP のドキュメントをご覧ください。

  3. エージェントの 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 プロジェクトの ID
    • SID: SAP HANA システムの SAP システム識別子(SID)
    • SOURCE_SNAPSHOT_GROUP_NAME: 新しいディスクの作成に使用するスナップショット グループの名前
    • NEW_DISK_TYPE: 作成するディスクのタイプ。詳細については、ディスクの復元でサポートされている引数-new-disk-type の説明をご覧ください。
    • NEW_DISK_PREFIX: 新しいディスクの名前に追加する接頭辞
    • COMMA_SEPARATED_DISK_NAMES_FOR_RECOVERY: スナップショット ベースのバックアップを使用して復元するディスク名のカンマ区切りリスト

    hanadiskrestore コマンドで使用できる引数については、ディスクの復元でサポートされている引数をご覧ください。

  4. 各ワーカーノードで、root ユーザーとしてボリューム グループを再スキャンします。

    /sbin/dmsetup remove_all
    /sbin/vgscan -v --mknodes
    /sbin/vgchange -ay
    /sbin/lvscan
    mount -av
    
  5. 各ワーカーノードで、root ユーザーとして、必要なオプションを使用して SAP HANA データベースを復元します。

    スナップショット時刻に復元する

    ディスク スナップショットが作成された時点に SAP HANA データベースを復元するには、次の操作を行います。

    1. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    2. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command="RECOVER DATA USING SNAPSHOT CLEAR LOG;"
    3. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    4. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATA FOR TENANT_SID USING SNAPSHOT CLEAR LOG

      TENANT_SID は、テナント データベースの SID に置き換えます。

    特定の時点に復元する

    SAP HANA データベースを特定の時点に復元する手順は次のとおりです。

    1. Google Cloudの SAP 用エージェントの Backint 機能を使用して、Cloud Storage に /hana/log ボリュームのバックアップが作成されていることを確認します。この機能の詳細については、Backint を使用した SAP HANA のバックアップと復元をご覧ください。
    2. SIDadm ユーザーに切り替えます。
      su - SID_LCadm

      SID_LC は、SAP HANA システムの SID に置き換えます。すべて小文字を使用します。

    3. 次のコマンドを実行して、システム データベースを復元します。
      HDBSettings.sh recoverSys.py --command "RECOVER DATABASE UNTIL TIMESTAMP 'YYYY-MM-DD HH:MM:SS' CLEAR LOG USING SNAPSHOT"
    4. システム データベースに接続します。たとえば、次のコマンドを実行します。
      hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

      次のように置き換えます。

      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
      • INSTANCE_NUMBER: SAP HANA インスタンス番号
    5. テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。
      RECOVER DATABASE FOR TENANT_SID UNTIL TIMESTAMP '2099-12-31 12:00:00' CLEAR LOG USING SNAPSHOT

      TENANT_SID は、テナント データベースの SID に置き換えます。

  6. 各ワーカーノードで SAP HANA データベースを起動します。

  7. スケールアウト デプロイのマスターノードに対して手順 3~5 を繰り返します。

ディスクの復元でサポートされている引数

次の表に、エージェントの hanadiskrestore コマンドでサポートされる引数を示します。

引数 説明
-sid SAP HANA システムの SAP システム識別子(SID)を指定します。
-data-disk-name 省略可。/hana/data ボリュームをホストするソースディスクの名前を指定します。

注: バージョン 3.4 以降、引数 -data-disk-name-data-disk-zone は、hanadiskrestore コマンドと併用する場合は省略可能です。これは、エージェントが /hana/data ボリュームをホストするディスクを自動検出できるためです。ただし、これらの引数を指定すると、エージェントの自動検出がオーバーライドされます。

-source-disks

復元するデプロイメントで /hana/data ボリュームをホストしているディスクの名前を指定します。ディスク名はカンマで区切ります。例: -source-disks="disk-name-1, disk-name-2"

この引数は、 Google Cloudの SAP 用エージェントのバージョン 3.7 以降でサポートされています。この引数は、スケールアウト システムの復元に必要です。ストライプ ディスクを使用して /hana/data ボリュームをホストするスケールアップ システムの場合は省略可能です。単一ディスクを使用して /hana/data ボリュームをホストするスケールアップ システムではサポートされていません。

-data-disk-zone 省略可。/hana/data ボリュームをホストするソースディスクがデプロイされているゾーンを指定します。

注: バージョン 3.4 以降、引数 -data-disk-name-data-disk-zone は、hanadiskrestore コマンドと併用する場合は省略可能です。これは、エージェントが /hana/data ボリュームをホストするディスクを自動検出できるためです。ただし、これらの引数を指定すると、エージェントの自動検出がオーバーライドされます。

-source-snapshot /hana/data ボリュームが 1 つのディスクでホストされている場合は、復元に使用するディスク スナップショットの名前を指定します。
-new-disk-name 新しいディスクに設定する名前を指定します。この引数は、/hana/data ボリュームが複数のディスクでホストされている場合は適用されません。
-group-snapshot-name

復元に使用するスナップショット グループ名を指定します。

この引数は、エージェントのバージョン 3.6 以降でサポートされています。この引数は、単一ディスクを使用して /hana/data ボリュームをホストする SAP HANA スケールアップ システムではサポートされていません。

-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/data ボリュームをホストする SAP HANA スケールアップ システムの復元中はサポートされていません。

-hana-sidadm 省略可。SIDadm(SAP HANA システムのオペレーティング システム ユーザー)を指定します。
-force-stop-hana 省略可。復元オペレーションを開始する前に SAP HANA を強制的に停止する場合は、この引数を指定し、値を true に設定します。デフォルト値は false です。
-provisioned-iops 省略可。Hyperdisk ボリュームを作成する場合は、処理する IOPS(1 秒あたりの入出力オペレーション)を指定します。
-provisioned-throughput 省略可。Hyperdisk ボリュームを作成する場合は、サポートするスループットを指定します。
-labels-on-detached-disk

省略可。復元された /hana/data ディレクトリをホストする新しいディスクを作成する場合は、この引数を使用して、切断されたディスクに関連付けるラベル値ペアを指定します。ラベルをカンマで区切ります。例: -labels-on-detached-disk="label1=value1,label2=value2"

この引数は、エージェントのバージョン 3.4 以降でサポートされています。

-send-metrics-to-monitoring

省略可。スナップショットの復元の所要時間を Cloud Monitoring に送信するかどうかを指定します。デフォルト値は TRUE です。

この引数は、エージェントのバージョン 3.4 以降でサポートされています。

-disk-size-gb

省略可。新しいディスクのサイズを GB で指定します。デフォルトでは、新しいディスクは既存のディスクと同じサイズになります。

新しいディスクのサイズは、既存のディスクよりも小さくしないでください。

-loglevel 省略可。hanadiskrestore コマンドで実行するすべてのアクションのロギングレベルを指定します。デフォルトのロギングレベルは info です。使用可能なログレベルは、debuginfowarnerror です。

システムのコピーまたはシステムの更新を行う

SAP HANA システムのディスク スナップショット ベースのバックアップを使用して別の SAP HANA システムを復元するには、次の手順を完了します。

  1. ソースシステムでエージェントの hanadiskbackup コマンドを実行して、スナップショット ベースのバックアップを作成します。手順については、ディスク スナップショット ベースのバックアップを作成するをご覧ください。
  2. ソースシステムとターゲット システムの SID が異なる場合は、ターゲット システムと一致するようにソースシステムの /hana/data/SID ディレクトリの名前を変更します。

    mv /hana/data/SOURCE_SID /hana/data/TARGET_SID

    次のように置き換えます。

    • SOURCE_SID: ソース SAP HANA システムの SID
    • TARGET_SID: ターゲット SAP HANA システムの SID
  3. ターゲット システムでエージェントの hanadiskrestore コマンドを実行して、/hana/data ボリュームをホストしているディスクを復元します。

  4. ソース SAP HANA システムでデータ暗号化を有効にしている場合は、復元を行う前に、暗号鍵をターゲット システムにインポートする必要があります。ソースシステムでデータ暗号化を有効にしていない場合は、この手順をスキップします。

    データ暗号鍵をターゲット システムにインポートするには、次の操作を行います。

    1. システム データベースの暗号鍵のバックアップを作成します。

      hdbnsutil -backupRootKeys FILE_NAME_SYS.rkb --type=ALL --database_name=SYSTEMDB

      FILE_NAME_SYS は、システム データベースの暗号鍵バックアップに設定する名前に置き換えます。必要に応じて、このファイルを保存するパスを含めることができます。

    2. ソースシステムで、テナント データベースごとに次のコマンドを実行して、テナント データベースの暗号鍵のバックアップを作成します。

      hdbnsutil -backupRootKeys FILE_NAME_TENANT.rkb --type=ALL --database_name=TENANT_DB_NAME

      次のように置き換えます。

      • FILE_NAME_TENANT: テナント データベースの暗号鍵バックアップに設定する名前。必要に応じて、このファイルを保存するパスを含めることができます。
      • TENANT_DB_NAME: テナント データベース名
    3. バックアップを確認します。

      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
    4. ターゲット システムで、システム データベースのバックアップされた暗号鍵をインポートします。

      hdbnsutil -recoverRootKeys FILE_NAME_SYS.rkb --dbid=SYSTEM_DB_ID --password=SYSTEM_DB_PASSWORD

      次のように置き換えます。

      • SYSTEM_DB_ID: システム データベース ID
      • SYSTEM_DB_PASSWORD: システム データベースのパスワード
    5. テナント データベースごとに次のコマンドを実行して、テナント データベースのバックアップされた暗号鍵をインポートします。

      hdbnsutil -recoverRootKeys FILE_NAME_TENANT.rkb --dbid=TENANT_DB_ID --password=TENANT_DB_PASSWORD

      次のように置き換えます。

      • TENANT_DB_ID: テナント データベース ID
      • TENANT_DB_PASSWORD: テナント データベースのパスワード
  5. ターゲット システムで、システム データベースを復元します。

    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"
  6. テナント データベースにソースシステムの SID を設定する場合、SAP HANA ドキュメントの Rename a Tenant Database の手順に沿って名前を変更できます。

  7. ターゲット システムで、システム データベースに接続します。たとえば、次のコマンドを実行します。

    hdbsql -d SYSTEMDB -u system -p "SYSTEM_DB_PASSWORD" -i INSTANCE_NUMBER

    INSTANCE_NUMBER は、SAP HANA システム データベースのインスタンス番号に置き換えます。

  8. ターゲット システムで、テナント データベースごとに次のコマンドを実行して、テナント データベースを復元します。

    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
  9. ターゲット システムで、テナント データベースごとに次のコマンドを実行して、テナント データベースに接続します。

    hdbsql -d TENANT_SID -u system -p "TENANT_DB_PASSWORD" -i INSTANCE_NUMBER

    次のように置き換えます。

    • TENANT_SID: テナント データベースの SID
    • INSTANCE_NUMBER: テナント データベース インスタンス番号
  10. 次の手順で、ターゲット データベースのデータの整合性を検証します。

    1. ターゲット システムを停止します。

      HDB stop
    2. SIDadm ユーザーとして、hdbpersdiag ツールを実行します。

      hdbpersdiag -c 'check all' -e HANA_DATA_DIRECTORY

      HANA_DATA_DIRECTORY は、SAP HANA データ ボリューム ディレクトリに置き換えます(例: /hana/data/SBX/mnt00001/hdb00001)。

  11. データの整合性検証が失敗した場合は、次の手順を完了します。

    1. ターゲット システムの場合は、システム データベースとすべてのテナント データベースでデータ暗号化が有効になっていることを確認します。

      SELECT * FROM SYS.M_ENCRYPTION_OVERVIEW
    2. データベースのデータ暗号化が FALSE の場合は、データ暗号化を有効にします。

      ALTER SYSTEM PERSISTENCE ENCRYPTION ON;
      ALTER SYSTEM LOG ENCRYPTION ON;
      ALTER SYSTEM BACKUP ENCRYPTION ON;
    3. hdbpersdiag ツールを使用してデータの整合性を再検証します。

スナップショットの整合性を検証する

このセクションでは、SAP の hdbpersdiag ツールを使用してディスク スナップショット内のデータの整合性を検証する方法について説明します。ディスク スナップショット ベースのバックアップと復元について Google Cloud が推奨するその他のベスト プラクティスについては、ベスト プラクティスをご覧ください。

スナップショットの整合性を検証するには、次の手順を完了します。

  1. エージェントの 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 ゾーン
  2. ディスクを 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 ゾーン
  3. 任意の SSH メソッドを使用してコンピューティング インスタンスに接続します。

  4. 新しいディスクを一時ファイル システムとしてマウントします。

    1. 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
    2. VG UUID を使用して、ボリューム グループの名前を変更します。上記の例では Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR です。

      vgrename Fa52zl-AROR-LH2k-aG4z-LbrB-cvTz-TZhEfR vg_hana_data_temp
      
    3. ボリューム グループと論理ボリュームを有効にします。

      vgchange -a y vg_hana_data_temp
      lvchange -a y /dev/vg_hana_data_temp/data
      
    4. 論理ボリュームを一時ファイル システムにマウントします(例: /hana/data_temp)。

      mkdir /hana/data_temp
      mount /dev/vg_hana_data_temp/data /hana/data_temp
      
    5. すべてのディスクが正しくマウントされていることを確認します。

      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
  5. SIDadm ユーザーとして、一時ファイル システムに含まれるデータ ボリュームに対して hdbpersdiag ツールを実行します。

    for directory in $(find /hana/data_temp/SID/mnt00001/hdb* -type d); do hdbpersdiag -c -e 'check all' $directory; done
    
  6. hdbpersdiag ツールの出力を確認します。

  7. 今後、この整合性チェックを実行する場合は、新しいボリューム グループを残しておきます。実行しない場合は削除します。

  8. コンピューティング インスタンスからディスクを切断します。gcloud compute instances detach-disk コマンドを実行します。

    COMPUTE_INSTANCE_NAME \
       --disk=DISK_NAME \
       --zone=ZONE
    
  9. ディスクを削除します。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 用エージェントの診断情報をご覧ください。