SAP HANA コックピットを使用した管理

SAP HANA の起動と停止

Objective

After completing this lesson, you will be able to さまざまなツールを使用して、SAP HANA を起動および停止します。

SAP HANA の起動シーケンス

インメモリコンピューティングのセキュリティ

SAP HANA インメモリ DB

SAP HANA インメモリデータベースでは、パフォーマンスを最大限に高めるために大半のデータがメモリ内に保持されます。しかしそれでも、障害の場合にフォールバックを提供するために、永続ストレージが使用されます。データおよび UNDO ログ情報 (データの一部) は定期的なセーブポイントで自動的にディスクへ保存されますログでは、すべての変更が REDO ログとしてキャプチャされます。これらの変更は、データベーストランザクションによって COMMIT が実行されるたびに (ディスク書込操作の終了を待ってから)、ディスクに継続的かつ同期的に保存されます。

電源障害後、データベースはディスクベースのデータベースと同じように再起動することができます。

SAP HANA データベースの起動

SAP HANA システムの再起動シーケンスを通じて、システムが完全な稼働状態にすばやく復元されます。

この図は、システムの起動時にストレージから DRAM にデータをロードするための再起動プロセスと最適化の概要を示しています。

注記

システムの再起動後に、メインメモリにただちにロードされるテーブルは、デフォルトでは一部のみです。

  • システムは通常の方法で再起動されます (再起動時間を短くするためにテーブルを "レイジー" に再ロード)。

  • システムは直近の整合性のある状態に復帰します (直近のセーブポイント以降の REDO ログを再生)。

再起動プロセス

この図は、システムデータバックアップ、ロギング、および電源障害の影響のプロセスを示しています。

データベースの再起動時 (クラッシュ後など) には、直近に完了したセーブポイントからのデータをデータボリュームから読み込むことができます。また、直近のセーブポイント以降に書き込まれた REDO ログエントリは、ログボリュームから読み込まれます。

再起動時には、データページのセーブポイントバージョンからシステムが復元されます。この方法では、直近のセーブポイント以降に書き込まれたすべてのデータ変更が自動的にロールバックされます。セーブポイントが復元された後、直近のコミットされた状態を復元するためにログが再生されます。

起動時には、直近のセーブポイントの一部として保存された未コミット状態の変更もロールバックする必要があります。これらの変更を元に戻す際には、UNDO 情報はセーブポイントの一部として保存されます。これは、UNDO レコードを書き込むためのインタフェースを提供する UNDO マネージャによって実行されます。UNDO 情報は、トランザクションごとに 1 つの仮想 UNDO ファイルに書き込まれます。仮想 UNDO ファイルは、データボリュームに保持されるデータページで構成されます。つまり、UNDO エントリは最初にページバッファを通過し、次のセーブポイントまで保持されます。

起動プロセス: パーシスタンスレイヤアクティビティ

注記

SAP HANA システム全体または個別のテナントデータベースの再起動に必要な時間は、ストアの数量とタイプ (ローストアおよびカラムストア)、システムデータベースまたはテナントデータベースの停止方法、およびその他の影響要因に大きく依存します (次のセクションの "起動パフォーマンスの重要な要因" を参照)。

注記

通常のシャットダウンではセーブポイントが書き込まれるため、通常のシャットダウン後に処理が必要な再生ログエントリはありません。

ローストアについては常にそのすべてがロードされますが、メモリにロードされるのは、必須となるカラムテーブルの列のみです。他の列については、要求された場合にロードされます。

たとえば、クエリがあるテーブルの一部の項目 (列) のみを使用する場合、その項目のみがクエリ実行時にメモリにロードされます。すべてのローベーステーブル (通常はシステムテーブル) は、メインメモリで利用可能です。そのテーブルのサイズは、データベースの起動に必要な時間に大きく影響します。起動時間に影響するその他の要因については、図 "SAP HANA 起動プロセス" を参照してください。

起動プロセス

起動パフォーマンスの重要な要因

インメモリデータベースが統合されている SAP HANA システムを起動するために必要な時間は、複数の要因の影響を受けます。以下の一覧は、最も重要な要因の特定に役立ちます。

  • 再生するログの量 (ロールフォワード)

  • コミットされていないトランザクションによる変更の量 (ロールバック)

  • ログボリューム (ディスク) の読込パフォーマンス

  • データボリューム (ディスク) の読込/書込パフォーマンス

  • レイアウト設計: ログとデータのディスク領域の分離 (論理的だけでなく物理的)

起動プロセス: テーブル

SAP HANA の通常運用時には、現在ロードされているカラムテーブルの一覧が追跡されます (1 日 1 回)。再起動時にメインメモリにロードする必要があるテーブルは、この一覧に基づくことになります。こうした方法でカラムテーブルを再ロードすることにより、データベースをより早く完全に稼働状態に復元することができます。ただし、これによりパフォーマンスオーバーヘッドが発生します。また、この方法は非本稼働システムでは不要な場合があります。再ロード機能を無効にするには、indexserver.ini ファイルの sql セクションの reload_tables パラメータを false に設定します。さらに、indexserver.ini の parallel セクションで tables_preloaded_in_parallel パラメータを使用して、属性が並列にロードされるテーブルの数を設定することができます。

注記

個別の列も全カラムテーブルも、プリロードの対象として設定できます。

Preload チェックボックスを選択すると、インデックスサーバの起動後にテーブルが自動的にメモリにロードされます。Preload チェックボックスの現在のステータスは、システムテーブル TABLES の PRELOAD 列に表示されます。この列が取る値は、FULL、PARTIALLY、NO です。また、システムテーブル TABLE_COLUMNS の PRELOAD 列の値については、TRUE または FALSE を取ることができます。

注記

大きなカラムテーブルの項目がメインメモリにない場合、テーブルへの最初のアクセスが大幅に遅くなる可能性があります。これは、クエリを実行する前に、要求されたすべての列がメインメモリにロードされるためです。これは、単独レコードを選択した場合においても当てはまります。

  • プリロードされるテーブルの一覧に関する情報を表示します (プリロードフラグに関連する列ではありません)。
    Code Snippet
    1
    hdbcons "tablepreload i"
  • 全コンテンツを表示します (テーブル一覧)。
    Code Snippet
    1
    hdbcons "tablepreload c -f"
  • データボリューム内の仮想ファイルに追加のプリロード情報を書き込みます。
    Code Snippet
    1
    hdbcons "tablepreload w -s"
  • ヘルプの完全な一覧を表示します。
    Code Snippet
    1
    hdbcons help[Enter]

    特定のコマンドに関する hdbcons ヘルプを表示します。

    Code Snippet
    1
    hdbcons "help tablepreload"

注意

初期クエリを高速化する目的で、単純にすべてのテーブルをプリロード対象として選択すると、起動時間が非常に遅くなることがあります。Preload チェックボックスはチューニングオプションの 1 つであり、個別のシナリオおよび要件に従い、慎重に使用する必要があります。

SAP HANA を起動および停止するためのツール

状況によっては、SAP HANA データベースの一部を停止または起動する必要がある場合があります。使用するツールは、停止または起動する必要がある SAP HANA コンポーネントによって決まります。図 "使用するツール" は、さまざまなツールの使用領域を示しています。

この図は、複数のホストにわたる SAP HANA システム設定 (データベース、テナント、起動/停止プロシージャなど) を示しています。

以下の一覧は、個別に停止および起動できる SAP HANA データベースシステムの各部とそれぞれ使用可能なツールを示しています。

  • データベースシステム全体 - SAP HANA コックピットおよび SAPControl
  • 1 つ以上のテナント - SAP HANA コックピットおよび SQL (SQL コンソールまたは hdbsql)
  • スケールアウトシナリオにおける 1 つ以上のホスト - HDB および SAPControl
  • SAP HANA サービス - SAP HANA コックピットおよび SQL (SQL コンソールまたは hdbsql)

使用するツールに応じて、異なる認証情報が必要です。表 "必要な認証情報" は、ツール別に必要な認証情報を示しています。

必要な認証情報

ツールroot<sid>admコックピットユーザデータベースユーザ
SAP HANA コックピットいいえはいはいはい
SAPControlはいはいいいえいいえ
HDBいいえはいいいえいいえ
SAP HANA コックピットを介した SQL一致なしいいえはいはい
HDBSQL 経由の SQLいいえはいいいえはい

注記

SAPControl を使用するには、ユーザ <sid>adm として、またはルート権限を持つユーザとして、SAP システムホストにログオンする必要があります。

SAP では、本稼働環境での日常的な作業に SYSTEM ユーザを使用しないことを推奨しています。代わりに、SYSTEM ユーザを使用して、日常業務に必要な最小限の権限セットを持つパーソナルデータベースユーザを作成します。

<sid>adm ユーザの代わりに個人用オペレーティングシステムユーザを使用してデータベース管理タスクを実行することが企業セキュリティポリシーで推奨されている場合は、SAP インスタンスプロファイルをそれぞれの設定に使用することができます。詳細については、SAP ノート 1881622 - SAP HANA データベース: sapstartsrv によるトレースファイルへのアクセス (SAP HANA DB: Access to trace files via sapstartsrv) を参照してください。

注意

SAP HANA studio を使用して、SAP HANA データベースシステムを起動および停止することもできます。ただし、SAP HANA Studio は非推奨であるため、このレッスンでは説明しません。

SAP HANA データベースシステムの起動と停止

データベース管理者は、ブラウザベースの SAP HANA コックピットまたはコマンド行ツール SAPControl を使用して、SAP HANA データベースシステムを停止および起動することができます。どちらの方法でも、<sid>adm オペレーティングシステムユーザの認証情報が必要です。SAP HANA コックピットを使用する場合は、SAP HANA コックピットユーザの認証情報が別途必要です。

注記

SAP HANA コックピットまたは SAPControl 機能 StopSystem/StartSystem を使用すると、SAP HANA データベースシステム全体が停止されます。これは、単一ホストシステムと複数ホスト (スケールアウト) システムの両方で有効です。

SAP HANA コックピットと、コマンド行プログラムである SAPControl では、どちらも SAP start service (sapstartsrv) を使用して SAP HANA データベースシステムの停止と起動を制御します。SAP HANA デーモンと必要なすべてのオペレーティングシステムサービスは、sapstartsrv によって起動されます。次に、SAP HANA デーモンにより、ネームサーバ、インデックスサーバ、さらにプリプロセッササービスやコンパイルサーバなど、必要なすべての SAP HANA サービスが起動されます。

この図は、停止コマンドや関連するシステム制御機能など、SAP コントロールを使用した SAP サービスの管理を示しています。

SAP HANA コックピット: SAP HANA データベースシステムの停止と起動

  1. SAP HANA コックピットのホーム画面から、Database Directory アプリを開き、停止または起動する SAP HANA データベースシステムからシステムデータベースを選択します。
  2. Database Overview 画面で、Services カードを検索して選択します。

Manage Services 画面に、SAP HANA データベースシステムで実行中のすべてのサービスの概要が表示されます。

注記

デーモンサービスのみが表示される場合、SAP HANA データベースシステムは停止されます。

SAP HANA データベースシステムの特定のステータスに応じて、SAP HANA コックピットの右上の領域に Stop Database または Start Database ボタンが表示されます。

SAP HANA データベースシステムを停止する場合は、After all running statements finish executing または Immediately after open transactions are aborted and rolled back オプションが表示されます。以下の表は、これらのオプションの使用上の違いを示しています。

データベースシステムの停止オプション

オプション説明
実行中のすべてのステートメントの実行終了後実行中のステートメントがすべて終了すると、システムが停止します。指定したタイムアウト前にシステムが停止しない場合、システムはただちに停止されます。デフォルトのタイムアウトは 5 分です。
オープントランザクションがアボートされ、ロールバックされた直後システムは、ステートメントが終了するのを待ちません。このトランザクションは、オープントランザクションがアボートされてロールバックされた直後に停止します。

SAPControl: SAP HANA データベースシステムの停止と起動

ssh ターミナルセッションを開き、SAPControl を使用してコマンド行から SAP HANA データベースシステムを停止および起動する必要があります。データベースシステム管理者は、以下の SAPControl コマンドを使用して、SAP HANA データベースシステムを停止または起動することができます。

  • sapcontrol –nr <instance number> -function StopSystem

  • sapcontrol –nr <instance number> -function StartSystem

ローカルホスト上の SAP HANA データベースシステムサービスの概要を取得するには、コマンド行から以下のコマンドを実行します。

Code Snippet
1
sapcontrol –nr <instance number> -function GetProsessList

スケールアウト SAP HANA データベースシステムに属するホストのステータスの概要を取得するには、コマンド行から以下のコマンドを実行します。

Code Snippet
1
sapcontrol –nr <instance number> -function GetSystemInstanceList

SAP HANA データベースシステム全体を再起動すると、メモリに保存されているすべてのデータをリロードする必要があります。この操作には時間がかかります。たとえば、ローストアのロードは、多くの場合、SAP HANA の起動時間の主な要因となります。通常、1 分ごとに 10 ~ 20 GB のローストアがロードされます。再起動の原因によっては、ローストアのリロードは不要であるため、ローストアがメモリに保持されるようにスキップする必要があります。これを行う方法については、SAP ノート 2159435 - How-To: Keeping SAP HANA Row Store in Memory when restart を参照してください。

個別テナントの起動および停止

SAP HANA データベースにマルチテナントデータベースコンテナが導入されたことにより、データベース管理者は、SAP HANA データベースシステム全体を停止および起動するのではなく、主に個別のテナントを停止および起動します。バージョン SAP HANA 2.0 SPS 01 以降を実行している SAP HANA データベースシステムは複数コンテナモードで設定されるため、個別のテナントのみを停止または起動すれば済む可能性が高くなります。SAP HANA コックピットでは、個別のテナントデータベースの停止と起動がサポートされています。

注記

SAP HANA studio では、個々のテナントの起動と停止はサポートされていません。

この図は、SQL コマンドおよびデータベース管理アプリインタフェースを使用して SAP データベースを管理する方法を示しています。

SAP HANA コックピット: テナントの停止と起動

  1. SAP HANA コックピットのホーム画面から、Database Directory アプリを開き、停止または起動するテナントに属するシステムデータベースを選択します。
  2. Database Overview 画面で、Database Management リンクを選択します。

データベース管理画面に、SAP HANA データベースシステムの一部であるすべてのテナントの概要が表示されます。テナントのステータスに応じて、停止ボタンまたは開始ボタンがあります。

テナントを停止する場合は、After running statements finish executing および Immediately after open transactions are aborted and rolled back オプションが表示されます。以下の表は、これらの違いを示しています。

テナント停止オプション

オプション説明
文の実行終了後すべての文とトランザクションが終了するまで待機してから、停止操作を実行します。
オープントランザクションがアボートされ、ロールバックされた直後通常の停止を待たずに、データベースをただちに停止します。

SQL: テナントの停止と起動

テナントを停止および起動するには、SAP HANA コックピットから SQL コンソールを使用するか、HDBSQL コマンド行ツールを使用する必要があります。データベースシステム管理者は、以下の SQL コマンドを使用して、テナントデータベースを個別に停止または起動できます。

  • ALTER SYSTEM STOP DATABASE <tenant_name>

  • ALTER SYSTEM START DATABASE <tenant_name>

注記

テナントデータベースを個別に停止する場合、再開始できるのは個別のみです。システム全体の再起動では起動することができません。

個々の SAP HANA インスタンスの起動と停止

SAP HANA スケールアウトシステムでは、SAP HANA データベースシステム全体ではなく、単一のインスタンスを停止または起動する必要がある場合があります。このシナリオは、スケールアウトシステムのホストに障害が発生し、ハードウェアを修復する必要がある場合に発生する可能性があります。

この図は、HDB 管理コマンドと、青色の枠で囲まれたウィンドウでの SAP コントロールステータスの端末出力を示しています。

オペレーティングシステムユーザ <sid>adm は、コマンド HDB および SAPControl を使用して、個別のインスタンスを停止および起動することができます。

  • 単一ホストシステムでは、これにより、SAP HANA データベースシステム全体がシャットダウンされます。

  • 高可用性スケールアウトシステムでは、これにより、スタンバイシステムへのホストフェイルオーバーがトリガされます。

注意

非高可用性スケールアウト設定では、インスタンスをシャットダウンすると、SAP HANA データベースシステムに障害が発生します。

個々の SAP HANA データベースサービスの起動と停止

一部の SAP HANA データベースサービスを停止および起動することができます。システムデータベースからは、以下のサービスを停止することができます。

  • Name server

    注記

    ネームサーバを停止すると、一時的に接続が失われますが、ネームサーバが再起動されたらすぐに、接続が再確立されます。その他のサービスは再起動されていません。

  • Preprocessor
  • Web dispatcher
  • コンパイルサーバ

テナントデータベースからは、以下のサービスを停止することができます。

  • インデックスサーバ

    注記

    テナントのインデックスサーバを停止すると、テナントのインメモリデータがリロードされます。

  • XS Engine
この図は、サービス停止ボタンを使用して、メインのサービスウィンドウからサービスを停止する方法を示しています。

データベースサービスの停止、強制終了、再設定、または不足しているデータベースサービスの起動を行うには、システム権限 SERVICE ADMIN または DATABASE ADMIN が必要です。

システムデータベースまたはテナントからテナントデータベースのサービスを停止または強制終了するには、システム権限 RESOURCE ADMIN が必要です。

以下は、個別のデータベースサービスを再起動する必要がある状況の例です。

  • 分散システム内のホストで障害が発生して、スタンバイホストが引き継いだが、ただし、障害が発生したホストのサービスは、ホストが再度利用可能になっても無効のままです。この場合、サービスを手作業で再起動する必要があります。

  • SAP HANA 拡張アプリケーションサービスの更新後、XS Engine サービスを再起動する必要があります。

データベースサービスを停止および起動するためのオプション

データベースサービスを停止および起動するためのオプション

オプション説明
サービスの停止サービスは正常に停止し、通常は再起動されます。
サービス強制終了サービスは即時に停止し、通常は再起動されます。サービスの強制終了機能は、停止可能なテナントサービスに対してのみ有効です。
不足サービスの開始無効なサービスが開始されます。

注記

SAP HANA データベースには高可用性をサポートするための複数の機能があり、そのうち 1 つがサービスの自動再起動です。障害が発生するか、管理者が意図的に介入して、SAP HANA サービスの 1 つが無効になると、サービスの自動再起動機能によって障害が自動的に検出され、停止されたサービスが再起動されます。