技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

データベースの監視

データベースを監視することで、障害の発生を回避したり、リスクを低減させるよう事前に策を打つことができるでしょう。

異常を知るためには、正常を知る・正常を定義する必要があります。
そのために「ベースライン情報」を収集します。UNIX系OSであれば、データベースサーバーにてコマンドで確認することができます。CPUやメモリの使用状況を取得するvmstat、プロセスの一覧を取得するtop、CPUやメモリなどのリソース情報を取得するsar、ディスクI/Oの統計を取得するiostatはその一例です。ツールや専用ソフトウェアを活用することもできるかもしれません。

ベースライン情報からどの程度乖離したら異常とみなして行動をとるのか、事前に指針を定めておくべきでしょう。

データベースの監視対象は次の4つに分類されます。

  • 状態
     プロセスのダウンを回避するため
  • ログ
     障害発生に迅速に対応するため
  • 領域
     領域不足によるエラーを回避するため
  • パフォーマンス
     性能劣化を回避するため


状態監視は、死活監視とも呼ばれます。
データベースの主要プロセスの監視や、定期的に接続して検索や更新処理を問題なく行えるかどうかの確認をします。
また、正常にOSにログインできるかどうか、ネットワークの疎通に問題がないか、サーバー本体に異常はないかなど、ハードウェア面も併せて確認します。

ログ監視では、運用中に出力されるログに、エラーや問題の兆候となるメッセージが出力されていないかを確認します。

領域監視は、データベースに割り当てた領域や、ストレージ本体に関する領域の空き容量、使用率を監視することです。

パフォーマンス監視では、データベースとハードウェア両方に対して監視を行います。
データベースについては、要求される処理の量や頻度の確認、待機時間の長いイベントの特定、CPUを多く消費したり、ディスクI/Oを多く発生させているSQLの特定をします。
ハードウェアについては、CPUやメモリ、ディスクI/Oなど、ハードウェアリソースの使用率に関する情報を監視します。
このように、データベースだけでなく、ハードウェアに関する監視を行うことで、問題を回避するための策を適切に立てることができるようになります。


データベースの「何」を「どう」監視すべきか (1/3):ゼロからのリレーショナルデータベース入門(10) - @IT