レベル: 中級 Takashi Yamamura (TKSY@jp.ibm.com), IT Specialist, 日本アイ・ビー・エム システムズ・エンジニアリング株式会社
2009年 01月 16日 この記事では、DB2の監視ツールであるヘルス・モニターについてご紹介いたします。この記事は、DB2 V9.5 for Linux, UNIX and Windowsを前提としています。
はじめに
ユーザーが使用するシステムを安定稼動させるためには、データベースを正常な状態に保つことが重要です。そのため、データベースの運用担当者は、システムで発生したハードウェア障害や、パフォーマンスの低下を引き起こしかねない問題を事前に検出する必要があります。この記事では、運用担当者の監視運用をサポートするツールとして、ヘルス・モニターをご紹介させていただきます。
ヘルス・モニターとは
ヘルス・モニターは、インスタンス、データベースの稼動状態を監視するモニタリング・ツールです。この機能は、V8より提供されている機能です。ヘルス・モニターを使用することにより、データベース・システムの状態を、定期的にモニタリングして、異常の検知を行なったり、定義されたしきい値を超えた時にアラートを上げることもできます。監視項目の例としては、インスタンスやデータベースが操作可能状態であるか、表スペースやログの使用率が上限まで達していないか、デッドロックやロック・エスカレーションの発生率が上がっていないか等があります。
さらに、異常検知のアラートが上がった際のアクションを事前に設定しておくことで、運用担当者へのE-mailによる通知、スクリプトの実行を行なうことができます。アクションを設定することで、問題発生時の初期対応を早める、もしくは発生自体を未然に防止することが実現されます。
ヘルス・インディケーター
ヘルス・インディケーターとは、ヘルス・モニターで監視される項目です。インディケーターには、状態ベース、しきい値ベースのタイプがあります。
- 状態ベース
データベース・オブジェクトの操作可否、ユーティリティーの実行が必要であるかなど、特定の状態を監視するインディケーターです。通常でない状態が発生すると、アテンション・アラートが発行されます。
- しきい値ベース
表スペースやログの使用率、デッドロックやロック・エスカレーションの発生率など、数値データを基準に監視を行なうインディケーターです。設定されたしきい値を超えると、その状態に応じて、警告(即時に対応する必要はないが注意が必要な状態)、アラーム(即時に対応するべき状態)のアラートが発行されます。
V9.5で提供されるヘルス・インディケーターを、表1にいくつかご紹介させていただきます。
表1. 提供されるヘルス・インディケーター
カテゴリー | ヘルス・インディケーターID | タイプ | 説明 |
---|
表スペース・ストレージ | ts.ts_auto_resize_status | 状態ベース | 表スペース自動サイズ変更状態 |
---|
ts.ts_util_auto_resize | 上限しきい値ベース | 自動サイズ変更表スペース使用率 | ts.ts_util | 上限しきい値ベース | 表スペース使用率 | tsc.tscount_util | 上限しきい値ベース | 表スペース・コンテナー使用率 | ts.ts_op_status | 状態ベース | 表スペース操作可能状態 | ソート | db2.sort_privmem_util | 上限しきい値ベース | 専用ソート・メモリー使用率 |
---|
db2.sort_shrmem_util | 上限しきい値ベース | 共用ソート・メモリー使用率 | db2.spilled_sorts | 上限しきい値ベース | オーバーフローしたソートのパーセンテージ | データベース・マネージャー | db2.db2_op_status | 状態ベース | インスタンス操作可能状態 |
---|
データベース | db.db_op_status | 状態ベース | データベース操作可能状態 |
---|
db.tb_reorg_req | 状態ベース | 再編成の必要性 | db.tb_runstats_req | db.tb_runstats_req | 統計収集の必要性 | db.db_backup_req | 状態ベース | データベース・バックアップの必要性 | ロギング | db.log_util | 上限しきい値ベース | ログ使用率 |
---|
db.log_fs_util | 上限しきい値ベース | ログ・ファイル・システム使用率 | アプリケーション並行性 | db.deadlock_rate | 上限しきい値ベース | デッドロック率 |
---|
db.locklist_util | 上限しきい値ベース | ロック・リスト使用率 | db.lock_escal_rate | 上限しきい値ベース | ロック・エスカレーション率 | db.apps_waiting_locks | 上限しきい値ベース | ロック待機中のアプリケーションのパーセンテージ |
ヘルス・インディケーターの確認は、GET ALERT CFGコマンドで行えます。例えば、データベースのヘルス・インディケーターを確認するには、以下のように実行します。
(例)db2 get alert cfg for db on <db-alias>
(状態ベースのヘルス・インディケーター出力例)
標識名 = db.db_op_status
デフォルト = はい
タイプ = 状態ベース
機密性 = 0
公式 = db.db_status;
アクション = Disabled
しきい値または状態のチェック = Enabled
|
(しきい値ベースのヘルス・インディケーター出力例)
ヘルス・インディケーターの状態が、正常から、アテンション、警告、アラームに状態が変わった場合には、アクションが実行されます。なお、アクションは状態が変わった時に一度実行されると、再度しきい値を超えても実行されません。
ヘルス・モニターの設定方法
ヘルス・モニターの設定は、CLP、API、GUIから行うことができます。
- CLP - GET/UPDATE ALERT CFG、スナップショット表関数など
- API - db2GetAlertCfg、db2GetHealthNotificationListなど
- GUI - ヘルス・センター
今回は、ヘルス・センターから、ヘルス・インディケーターの構成ランチパッドを使用して、設定してみましょう。
- ヘルス・インディケーターの設定を開始するには、ヘルス・センター上のオブジェクト・ビュー(画面左側)にあるデータベース名の上で右クリックを実行して、ポップアップ・メニューから、「ヘルス・インディケーター設定の構成」を選択します。構成ランチパッドが起動した後に、どのレベルのインディケーターを設定するか選択します。ここでは、「オブジェクト設定」を選択します。
図1 ヘルス・インディケーターの構成ランチパッド
- 次に、ヘルス・インディケーターの設定を行なうデータベース・オブジェクトを選択します。オブジェクトのボックスをクリックすると、データベース・オブジェクトの選択を行なうことができます。ここでは、USERSPACE1表スペースを選択します。
図2 データベース・オブジェクトの選択
- データベースのオブジェクトを選択すると、オブジェトに応じたヘルス・インディケーターの一覧が表示されます。インディケーター上で右クリックを実行して、ポップアップ・メニューから、「編集」を選択すると、しきい値やアクションの設定を行なうことができます。
図3 ヘルス・インディケーターの設定
アラート発生時に管理者へのE-Mailを送信するには、「ヘルス・アラートの通知」で設定を行い、使用するSMTPサーバーや連絡先となる宛先を行なってください。
図4 アラート通知先の設定
状況確認、アラート発生時の対応
各ヘルス・インディケーターの状態は、ヘルス・センターの画面から確認できます。アラートが発生した場合には、図5にあるように、正常でないインディケーターが表示されます(図5)。アラートが発生した場合には、推奨アドバイザーを使用して、発生した状況を解決するためのアクションを、インディケーターごとに確認することもできます。入力指示に従うだけで、必要なアクションが表示されます(図6)。
図5 ヘルス・インディケーターの状態確認、推奨アドバイザーの起動
図6 推奨アドバイザー
おわりに
この記事では、システムの安定稼動を支えるために、データベースの健全性をモニタリングする機能として、ヘルス・モニターをご紹介させていただきました。今回は、設定が行いやすいGUIによるセットアップを取り上げましたが、この他にもコマンドによる設定も可能です。こちらの詳細については、参考文献「DB2 V9.5 運用管理ガイド:データベース・モニタリング」に情報がありますので、ぜひご参照ください。
参考文献
著者について  | |  | Takashi Yamamura, IT Specialist, 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 |
記事の評価
|