Technical Articles
SAP HANA Cloud 管理ツールのご紹介(その2)
はじめに
管理作業の種類について
- Database Infoの確認
- Services の管理
- Alerts
- Performance Monitoring
今回のブログで以下についてご紹介いたします。
- Sessions, Threads, SQL文の監視
- Database Backups
- System Configuration
_
HANA Cockpitの開始
ここでご紹介するHANA Cloudの管理ツールであるHANA Cockpitは、オンプレミス版のSAP HANAにもあり、データベースレベルの管理と監視のためのさまざまな機能への単一のアクセスポイントを提供します。

下の図のようなSAP HANA Cockpitの「Database Overview」の画面が開きます。これがHANA Cockpitの起点となる画面であり、各機能へは、このページにあるタイルをリンクして移動します。
Sessions, Threads, SQL文の監視
「Database Overview」の画面が表示されたら、この項で使用する機能に関連したタイルを表示させるために、左上のプルダウンボタンにより「Monitoring」を選択し、タイルの表示をフィルタします。
最初に、HANA Cloudへの接続情報を確認する「Sessions」タイルをクリックして、接続情報を確認してみましょう。
ここでは、各セッションに関する項目(34種類の統計情報:歯車アイコンで表示を変更できます)を使用して、データベース内のセッションアクティビティを監視できます。概要ヘッダー(赤枠のSummary横のアイコンを押します)には、接続の頻度の高いトップ5のユーザとアプリケーションの集計が表示されます。リストされているセッションを選択すると、右下のメニューから接続をキャンセルしたり(SESSION ADMINシステム権限が必要)、同じ接続IDでスレッドまたはブロックされたトランザクションアプリケーションに移動(「Navigate to」)することができます。これは、後ほど触れる「Thread」のモニタ画面と相互に関連しており、どの接続が、どのスレッドと関連しているかを確認する事ができ、トランザクションを妨げている処理がある場合などの原因を特定する場合に利用が可能です。
「Thread」のツールでは、現在アクティブなすべてのスレッドをリストします。ここでは以下の様な情報を確認する事ができます。
・スレッドが使用されているコンテキスト
例えばSqlExecutorスレッドはアプリケーションによって発行されたステートメントのコンパイル、実行、結果のフェッチをはじめとするさまざまな処理を行いますが、ここではその状況を確認する事ができます。
・スレッドが現在実行している処理
スレッドの詳細、スレッドメソッド、およびスレッドステータス列の情報は、スレッドが現在何を処理しているかを分析するのに役立ちます。例えば、SqlExecutor スレッドの場合、現在処理中の SQL 文が表示されます。PlanExecutor スレッドの場合、現在処理中の実行計画の詳細が表示されます。
・トランザクションによってブロックされているスレッド情報
トランザクション処理がブロックされたスレッドは、Blocked Transaction 列にブロックしているトランザクションID が表示されます。このアイコンをクリックすると、ブロック状況の詳細情報を見ることができます。
SQLコマンドの実行ツールの紹介ーSQL Console
SAP HANA Cloudデータベースに対してSQLコマンドを実行する事ができるコンソールが開始します。まず最初に、操作対象となるデータベースを登録するウィザードが起動しますので、「Database Type」にあるプルダウンをクリックし、「SAP HANA Database」を選びます。なお、このウィザードが起動しない場合は、下の図にある緑枠でかこまれた「+」ボタンを押してウィザードを開始してください。
Add Database ウィザードには以下の情報を入力します。
- HOST
- Identifire > Port Number
- User
- Password
- Connect to the database security using TLS/SSL (prevents data eavesdropping) (チェックボックス ON)
- Name to Show in Display
HOST名と、Port NumberはHANA Cockpitの最初の画面「Database Overview」の上部に表示されていますので、ここからCut & Pastするといいでしょう。なお、Port番号は 「Instance:」と表示されている番号が該当しますのでご注意ください。
SQL Consoleが起動したら、SQLコマンドを入力するコマンド入力画面を2つオープンします。下の図の赤枠で囲まれたアイコンを2回クリックしてください。右のペインに2つのタブが生成され、2つのセッションがデータベースと接続されます。
それぞれのSQL入力画面に、以下のサンプルコマンドを「Session 1」と「Session 2」にわけてCut & Pastしてください。また、同時に、上の図の右の赤枠で囲まれたオプションボタンから「View Connection Setting」アイコンをクリックし、Connection Settingsの「Auto-commit contents of this SQL console」のチェックボックスを外してください。
--session 1:
CREATE TABLE X (A INT);
INSERT INTO X VALUES (0);
COMMIT;
-- setting 10 minute timeout
SET TRANSACTION LOCK WAIT TIMEOUT 600000;
UPDATE X SET A = 1;
--session 2:
SELECT A FROM X FOR SHARE LOCK
上記の準備が完了したらSQL実行画面の左上端にRunアイコンがありますので Session 1、Session 2 の順でSQLを実行します。Session 2はSession 1のSET TRANSACTION LOCK WAIT TIMEOUTの効果でウエイトしますので、この間に上記の「Session」と「Thread」の管理画面で、ブロックされたトランザクションの確認をすることができます。
ブロックしているスレッドを分析した結果、問題がなければ、該当のスレッドを選択し、右下のCancel Operationsをクリックすれば、原因となっている処理を停止させることも可能です。
関連する機能としてSQL文の監視機能を見てみましょう。上の Thread や Session の画面の場合、関連する機能はタイトルバーのプルダウンからアクセスする事が可能です(上の画面の上端の赤枠)。ここまでに紹介した「Session」に加え、「Blocked Transaction」と、「SQL Statement」のボタンが表示されますので、「SQL Statement」を選択してください。
SQL Statementでは、各SQL文に関する詳細情報(概要、アクティブなSQL文、SQLプランキャッシュ、処理コストの高いSQL文)を使用して、データベース内におけるSQL文の分析を実行できます。SQLプランキャッシュとは、コンパイルされたSQLクエリの情報が格納されています。このためするため、SQLパフォーマンスを監視するのに有効です。たとえば、遅いクエリを見つけたり、システム全体のパフォーマンスを測定したりすることができます。
「Active Statement」タブでは、時間がかかっているSQLのリストを確認する事ができます。このようなSQLのパフォーマンスの問題点を分析する場合は、該当の行の右端の列にある「Navigate Plan Cache」リンクをクリックします。
「SQL Plan Cache」タブが開き、SQLプランキャッシュのリストが表示されます。ここから各SQLのプランを確認する事ができます。
また、OverviewタブとActive StatementタブにあるWorkload Class Name列には、デフォルトの_SYS_DEFAULTというワークロードクラスに割り当てられている事が示されています。ワークロードクラスとは、HANA Cloudで実行される様々な処理をシステムリソースに最適に配分するための管理機能で、アプリケーションや、ユーザごとに定義されたリソースに割り当てる事ができます。詳細に関しては、以下のマニュアルをご参照ください。
SAP HANA Cloud Administration Guide Workload Management
Database Backups
データベースのバックアップはデータベースの不測の障害に備える重要な管理要素です。一方で、DBaaSとして提供されているHANA Clouのバックアップはこのサービスを利用するお客様の管理ではなく、HANA Cloudをサービスとして提供するSAPによる管理に基づくものになります。従いましてHANA Cockpitにある「Database Backups」カードをクリックした先では、バックアップがどのように取得されているかを確認するビューとしてのみ利用する事になります。SQLコンソールからBackupコマンドを実行する事もできません。
「Database Backups」カードには2つのセクションが含まれており、上のフィールドではすべての種類のバックアップのリストを表示、下のフィールドは最後に実行された「Complete Data Backup」のステイタスが表示されます。
HANA Cloudで取得される主要なバックアップの種類(Backup Type)は以下になります。
- Complete Data Backup データベースの一貫性を維持するために必要なすべてのデータが含まれます。
- Log Backup ログセグメントのバックアップ
- Catalog Backup カタログにはバックアップ履歴に関する情報が含まれており、いずれかのバックアップが作成されるたびにカタログもバックアップされ、バージョン管理されます
バックアップはHANA Cloudサービスを提供するIaaSプロバイダー(AWS、Azure、GCP等)の機能を使用して暗号化されて保存されます。保存期間は14日です。
バックアップに関する詳細については、以下のマニュアルをご参照ください。
SAP HANA Cloud Getting Started Guide Backup and Recovery
System Configuration
「System Configuration」では、オンプレミスモデルのSAP HANAシステムと同様、システムのパラメータを管理、変更する事ができますが、SAP HANA Cloudは、オンプレミスモデルのテナントデータベースと同様の機能性であるため、構成に使用できるパラメーターの数がオンプレミス版に比べて制限されています。ここで設定できるシステムパラメーターはファイルベースで管理されていおり、サービスごとに1つのファイルといくつかの追加の構成ファイルがあります。ただし、SAP HANA Cloudは、DBaaSのサービスと提供されているので、HANA Cloudが動作しているOSのファイルシステムにはアクセスできません。システムパラメータの変更にはSQLインターフェイス、もしくはグラフィカルインターフェイスを提供するHANA Cockpit(およびその他のツール)を使用します。システムパラメータを変更するためには、INIFILE ADMINシステム権限が必要です(DBADMINには付与済)。HANA Cockpitの最初の画面「Database Overview」にある「Database Administration」カードにあるリンク「Manage Database Configuration」をクリックします。
システムのパラメータは、データベースの機能の抑制や、パフォーマンスの調整のために調整する事が可能です。オンプレミスモデルのHANA Platformには1000を超えるシステムパラメータがありますが、HANA Cloudでは114のパラメータが表示可能になっており、それ以外はHANA Cloudサービスの運用のためにのみ利用されます。お客様が変更可能なパラメータは以下のリファレンスマニュアルをご参照ください。
SAP HANA Cloud Configuration Parameter Reference
2つのブログにてデータベースの管理に関する機能についてご紹介してまいりました。HANA Cockpitの「Database Overview」にはここでご紹介した以外にも様々な管理機能が用意されています。データベースの管理者の方にはそれぞれのシステムに応じて各機能をご利用いただければと思います。最後に関連するマニュアルのリンクを掲載しておきます。
SAP HANA Cloud Administration Guide