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

SAP HANA トレースの使用

Objective

After completing this lesson, you will be able to SAP HANA トレースをチェックおよび設定します。

トレースの設定

このレッスンでは、SAP HANA で利用可能なさまざまなトレースツールを有効化および設定する方法について説明します。

この図は、さまざまなトレースステータスが有効または無効とマークされたトレース設定インタフェースを示しています。

さまざまなトレースで、データベースシステムのアクションに関する詳細情報を生成することができます。SAP HANA コックピットのDatabase Explorerで、ほとんどのトレースを有効化および設定できます。図 "トレース設定" は、テナントデータベースのTrace Configurationタブを開いて選択する方法の例を示しています。トレースごとに異なる設定オプションを使用できます。

注記

トレースを設定するには、システム権限 TRACE ADMIN が必要です。カーネルプロファイラを設定するには、SAP_INTERNAL_HANA_SUPPORT 標準ロールが必要です。

トレース概要

以下のトレースを使用することができます。

  • データベーストレース (デフォルト: 有効)

    データベーストレースは常に有効になっています。つまり、エラー状況に関する情報が常に記録されます。ただし、特定の問題またはコンポーネントをより詳細に分析するには、特定のトレースコンポーネントをデフォルト値よりも高いトレースレベルに設定する必要がある場合があります。たとえば、バックアップトレースコンポーネントではバックアップ操作に関する情報が記録され、権限コンポーネントでは権限操作に関する情報が記録されます。

    ヒント

    以下の SAP ノートには、トレースコンポーネントとそれらの各種ユースケースに関する情報が記載されています。

    SAP ノート 2380176 - FAQ: SAP HANA データベーストレース (FAQ: SAP HANA Database Trace)

    トレースコンポーネントがすべてのサービスで使用可能な場合、すべてのサービスに対してトレースレベルを一度に設定することができます。特定のサービスに対して、コンポーネントのトレースレベルを個別に設定することもできます。サービスレベルで設定されたコンポーネントのトレースレベルは、すべてのサービスに対して設定されたトレースレベルよりも優先されます。一部のコンポーネントは特定のサービスでのみ利用可能であるため、グローバルに変更することはできません。

    データベーストレースコンポーネントのトレースレベルは、SAP HANA データベースエクスプローラまたは SAP HANA コックピットで設定できます。または、global.ini 設定ファイル (すべてのサービスの場合) または indexserver.ini などのサービス固有のファイルの trace セクションにあるパラメータを変更することもできます。個々のパラメータはトレースコンポーネントに対応し、パラメータ値はトレースレベルです。

    トレースレベルが高いほど、トレースによって記録された情報がより詳細になります。以下のトレースレベルが存在します。

    • NONE (0)
    • FATAL (1)
    • ERROR (2)
    • WARNING (3)
    • INFO (4)
    • DEBUG (5)

    注記

    トレースレベル NONE を選択した場合でも、エラー状況に関する情報が記録されます。

    テナントデータベースは、テナントデータベースのトレースレベルを変更しない限り、システムデータベースで設定されたデータベーストレースレベルを継承します。

    テナントデータベースのトレースコンポーネントのトレースレベルは、デフォルト値としてシステムデータベースから継承されます。テナントデータベースの特定のコンポーネントに対して、すべてのサービスまたは特定のサービスに対して異なるトレースレベルを設定する場合は、該当するコンポーネントのトレースレベルを変更することで設定できます。

  • ユーザ固有トレース (デフォルト: 無効) およびエンドツーエンドデータベーストレース (デフォルト: 無効)

    ユーザ固有トレースおよびエンドツーエンドトレースは、特定のユーザまたはエンドツーエンド分析のコンテキストでコンポーネントのトレースレベルを変更できるようにすることで、設定されたデータベーストレースを拡張します。これらのコンテキストのコンポーネントに対して設定されたトレースレベルは、データベーストレースで設定されたトレースレベルよりも優先されます。

    エンドツーエンドトレースは、SAP HANA データベース外のアプリケーションによってトリガされます。通常、SAP HANA データベースコンポーネントのデフォルトトレースレベルは十分であり、変更する必要はありません。

  • SQL トレース (デフォルト: 無効)

    SQL トレースでは、インデックスサーバ (テナントデータベース) またはネームサーバ (システムデータベース) で実行されたすべての SQL 文に関する情報が収集され、詳細分析のためにトレースファイルに保存されます。

    SQL トレースによって収集される情報には、各文の実行時間、影響を受けるレコードの数、レポートされた潜在的なエラー (一意性制約違反など)、使用されているデータベース接続などが含まれます。SQL トレースは、実行された SQL 文とそのアプリケーション全体およびシステムパフォーマンスへの潜在的な影響を理解し、文レベルで潜在的なパフォーマンスボトルネックを特定するための適切な開始ポイントです。

    SQL トレース情報は、実行可能な Python プログラム (デフォルトsqltrace_<...>.py) として保存され、トレースされたデータベース操作の再生に使用できます。SQL トレースアナライザツールを使用して、ファイルの分析を自動化することもできます。

    SAP HANA SQL トレースアナライザ

    SAP HANA SQL トレースアナライザは、SAP HANA SQL トレース出力の分析に使用される Python ツールです。このツールでは、上位 SQL 文の概要、アクセスされたテーブル、さまざまな文タイプおよび実行されたトランザクションに関する統計情報が提供されます。

    SAP HANA SQL トレースアナライザのインストールおよび使用の詳細については、以下のノートを参照してください。

    SAP ノート 2412519 - FAQ: SAP HANA SQL トレースアナライザ (FAQ: SAP HANA SQL Trace Analyzer)

  • パフォーマンストレース (デフォルト: 無効)

    パフォーマンストレースは SAP HANA データベースに組み込まれたパフォーマンストレースツールです。データベースカーネルの個別クエリ処理ステップのためにパフォーマンス指標が記録されます。SAP サポートからパフォーマンストレースの提供を依頼される場合があります。

    収集される情報には、特定のステップで必要となる処理時間、読込および書込のデータサイズ、ネットワーク通信、およびオペレータまたは処理ステップ固有の情報 (入力および出力として使用されるレコードの数など) が含まれます。パフォーマンストレースを複数のテナントデータベースで同時に有効化し、データベース間のクエリを分析することができます。

    パフォーマンストレースファイル

    パフォーマンストレースの結果は、ファイル拡張子 .tpt または .cpt でトレースファイルに保存されます。このファイルには、他の診断ファイルを使用してアクセスすることができます。これらのファイルを分析するには、出力形式 (.tpt および .cpt) を読み込むことができるツールが必要です。SAP サポートには、パフォーマンストレースを評価するためのツールが用意されています。

    パフォーマンストレースの有効化および設定

    ALTER SYSTEM * PERFTRACE SQL 文を使用して、パフォーマンストレースを有効化および設定できます。

    パフォーマンストレースを開始するには、以下のコマンドを実行します。

    Code Snippet
    1
    ALTER SYSTEM START PERFTRACE

  • 高負荷文トレース (デフォルト: 無効)

    高負荷文とは、実行時間が設定済のしきい値を上回る個別の SQL 文のことです。高負荷文トレースでは、詳細分析のために高負荷文に関する情報が記録されます。

    高負荷文トレースの有効化に加えて、文ごとのメモリ追跡を有効化した場合、高負荷文トレースには、高負荷文の実行に使用されたピークメモリサイズも表示されます。

    実行負荷の高いステートメントトレース情報

    TRACE ADMIN 権限がある場合は、以下の方法で実行負荷の高いステートメントのトレース情報を表示できます。

    • SAP HANA コックピットの SQL Statementsアプリ
    • SAP HANA データベースエクスプローラの Trace Configuration→Expensive Statements Trace タブ
    • M_EXPENSIVE_STATEMENTS システムビュー

    実行負荷の高いステートメントトレースの有効化と設定

    SAP HANA コックピットまたは SAP HANA データベースエクスプローラで、長時間ステートメントトレースを有効化および有効化することができます。または、設定ファイルのセクションにあるexpensive_statementglobal.iniパラメータを変更することもできます。

  • カーネルプロファイラ (デフォルト: 無効)

    カーネルプロファイラは SAP HANA データベースに組み込まれたサンプリングプロファイラです。これを使用して、サードパーティソフトウェアをインストールできないシステム、またはパフォーマンストレースでアクセスできないデータベースの一部に関するパフォーマンスの問題を分析することができます。

    カーネルプロファイルでは、クエリ処理中に頻繁な/高負荷の実行パスに関する情報が収集されます。

    カーネルプロファイラトレース

    プロファイリング結果はトレースファイル CPU_<service>_<host>_<port>_<timestamp>.<format> および WAIT_<service>_<host>_<port>_<timestamp>.<format> に保存されます。ここで、<format> は dot または kcachegrind です。プロファイリング結果には、他の診断ファイルを使用してアクセスすることができます。これらのトレースファイルを有意に分析するには、設定された出力形式、つまり KCacheGrind または DOT (デフォルト形式) を読み込むことができるツールが必要です。または、ファイルを SAP サポートに送信してください。

    カーネルプロファイラの有効化および設定

    SAP HANA データベースエクスプローラでカーネルプロファイルを有効化して設定します。分析する SQL 文を実行する直前にカーネルプロファイラトレースを開始し、終了直後に停止することをお奨めします。これにより、関連のないステートメントの不要な記録が回避されます。また、このようなトレースはパフォーマンスに悪影響を及ぼす可能性があるため、お奨めします。

    注記

    カーネルプロファイルを有効化するには、SAP_INTERNAL_HANA_SUPPORT ロールが必要です。このロールは、SAP HANA 開発サポート専用です。

  • 計画トレース (デフォルト: 無効)

    計画トレースを使用すると、特定の時間枠内に実行された SQL クエリとその実行計画を収集することができます。トレースされた各 SQL クエリについて、パフォーマンス分析の実行計画を視覚化することができます。計画トレースは、SQL アナライザのトレース機能です。

    注記

    SELECT 文のみが計画トレースでトレースされます。

    計画トレースを有効化するには、Manage SQL Performance カードを検索します。このカードは、Database Overview 画面の Administration ビューまたは All ビューに統合されています。そのカード内で、Plan Trace セクションを選択します。

トレースのチェック

SAP HANA データベースエクスプローラでは、関連する診断ファイルを表示することで、SAP HANA データベースのエラーを診断および分析できます。

データベースエクスプローラでは、オンラインデータベースの診断ファイルがテナント別、ホスト別、サービス別にグループ化されます。マルチホストシステムでは、各ホストフォルダをチェックして、特定のサービスに関連するすべての診断ファイルを表示します。

この図は、右クリックを使用して SQL Server Management Studio からテーブルを選択して開くプロセスを示しています。

注記

診断ファイルの表示とトレースファイルの削除を行うには、TRACE ADMINシステム権限が必要です。

診断ファイルのチェック

データベースに問題がある場合は、ログファイルおよびトレースファイルでエラーをチェックすることができます。これらの診断ファイルは、SAP HANA データベースエクスプローラで使用することができます。SAP HANA コックピットのホーム画面で、Database Explorer リンクを選択してデータベースエクスプローラを開くことができます。

テナントまたはシステムデータベースの Database Overview 画面が表示されている場合は、Open SQL Console リンクを選択して Database Explorer を開くことができます。

診断ファイルは、の Database Diagnostic Files→Database name (SystemDB or tenant)→Host→Service name フォルダにあります。

サービスフォルダには、特定のサービスに関連するすべての診断ファイルが表示されます。ファイルを選択すると、そのファイルがファイルブラウザで開かれます。テキストエディタで [CTRL]+F を押して、エラーまたは警告を検索することができます。

診断ファイルを右クリックすると、コンテキストメニューが開き、トレースファイルのオープンと表示、ダウンロード、およびコピーができます。トレースファイルへのショートカットの登録もサポートされています。

トレースファイルをローテーションすると、トレースファイルのサイズと数を制限することによりトレースファイルが無限に増大するのを防ぐことができます。トレースファイルのローテーションは、システムのすべてのサービスに対してグローバルに設定することも、サービスごとに設定することもできます。

注記

またはglobal.iniファイルなどの特定のindexserver.iniサービスにあるパラメータおよびmaxfilesmaxfilesizeによって、ログのローテーションが制御されます。

完全なシステムダンプファイルの作成

SAP サポートがシステムの問題を分析および診断できるように、システムからさまざまな診断情報を ZIP ファイルに収集することができます。診断情報の収集は、SAP HANA コックピットおよびコマンド行からトリガできます。

SAP HANA cockpit System Overview 画面で、Manage full system information dumps リンクを検索します。Manage Full System Information Dumps アプリケーションでは、重要な診断情報がすべて ZIP ファイルに収集され、ローカル PC にダウンロードすることができます。ダウンロードした ZIP ファイルを SAP サポートメッセージに添付することができます。

この図は、分析のために既存のファイルからシステム情報ダンプを生成およびダウンロードするステップを示しています。

Manage Full System Information Dumps 機能の特長は以下のとおりです。

  • 重要な診断情報の収集
  • RTE (実行時環境) ダンプファイルの収集
  • 収集された診断情報をダウンロードして削除する

Full System Information Dumps を管理して、時間範囲を指定して既存のファイルから診断情報を収集する場合、デフォルトでは以下の項目が対象になっていません。これらはマニュアルで選択する必要があります。

  • パフォーマンストレース
  • システムビュー
  • エクスポートされたシステムテーブルとビュー

ヒント

ユーザ <sid>admin として、エイリアス cdpy を使用して python_support ディレクトリにすばやくナビゲートすることができます。

この図は、ソフトウェアプロセスワークフローと、ファイルおよびデータ管理タスクに対応するユーザインタフェースを示しています。

診断情報の収集を開始する際には、Python スクリプト fullSystemInfoDump.py を実行することで、関連する情報がシステムにより収集されます。このスクリプトは、SAP HANA コックピットの Manage full system information dumps で実行するか、ユーザ <sid>adm として SAP HANA サーバのコマンド行から直接実行することができます。

スクリプトfullSystemInfoDump.pyはサーバインストールの一部であり、コマンドラインから実行できます。このスクリプトは、$DIR_INSTANCE/exe/python_support ディレクトリにあります。

注記

完全なシステム情報ダンプの詳細については、コース HA215 を参照してください。