検索
連載

障害発生! 問題切り分けはスピード勝負Oracleパフォーマンス障害の克服(1)(3/3 ページ)

Oracleデータベースの運用管理者は、突発的に直面するパフォーマンス障害にどうやって対処したらよいか。本連載は、非常に複雑なOracleのアーキテクチャに頭を悩ます管理者に向け、短時間で問題を切り分け、対処法を見つけるノウハウを紹介する。対象とするバージョンはOracle8から9iまでを基本とし、10gの情報は随時加えていく。(編集局)

Share
Tweet
LINE
Hatena
前のページへ |       

問題解決に有効な6つのステップ

 Oracleデータベースは健全に運用されていれば、初期導入時と同様に問題なく稼働しているはずです。しかし、日々大量のデータの保存・削除などを繰り返していれば、何らかの負荷がかかってくるものです。データベースが正しく設計・設定され運用されていても、問題があればOracleは何らかのサインを送ってくるはずです。障害が発生する前にそれを察知することが重要です。「レスポンスが悪い」などの苦情は特に注意すべき問題です。

 Oracleのシステムを考えていくうえで、システムの構成要素を基に要素単位で考えることは非常に有効です。しかし、Oracleのアーキテクチャは複雑ですべてを詳細に理解するのは大変です。そこで問題解決に役立つようOracleアーキテクチャを大まかに分類してみました。前述したログの監視は、本連載で扱う障害対策とは別に、日々の運用で活用する内容なので0番目の分類としました。

第0ステップ ログの確認 日常業務
第1ステップ CPU/メモリの監視 問題の切り分け
および
障害対策業務
第2ステップ SQL処理にかかわる確認
第3ステップ SGAの調整
第4ステップ システム設定項目の確認
第5ステップ 領域の確認
第6ステップ ディスクの確認
表2 問題解決に有効な6ステップ

 Oracleのパフォーマンス障害に直面したら、この6つのステップに分類した内容の順に確認を行うことで、効率的に問題解決に近づくことができます。今後は上記のステップに沿って解説していきます。

第1ステップ CPU/メモリの監視

 Oracle障害克服の第1ステップはCPU/メモリの監視です。つまりOSマシンが正常に稼働している状態であるかを確認します。Oracleシステム本体だけでなく、OSやメモリチューニングもサーバ稼働には重要な要素となのです。今回はWindows系OSとUNIX系OSでCPU/メモリの監視を行う作業を説明します。

 Windows系のOSでは、リアルタイムで継続的に情報を取得するためにはツールや作り込みが必要ですが、ここではOS付属のツールを使った例を紹介します。UNIX系のOSはCPU/メモリ情報を取得するコマンドが用意されています。

Windows系OS

 【スタートメニュー】から【ファイル名を指定して実行】を選択し、ダイアログから「TASKMGR」と入力して【OK】とすると「Windows タスク マネージャ」が起動します。

図4 Windows タスク マネージャ
図4 Windows タスク マネージャ(クリックで拡大します)

 【プロセス】タブで「oracle.exe」や「TNSLSNR.EXE」といったOracle関連アプリケーションについて、プロセスごとのCPU時間やメモリ使用時間を確認できます。【パフォーマンス】タブで履歴を確認することもできます。

UNIX系OS(Linux、Solarisなど)

  1. vmstatコマンド
    vmstatコマンドは、空きメモリ量、メモリ使用量、ページング、スワッピング、ユーザーおよびシステムのCPU使用率などを取得できます。
  2. iostatコマンド
    iostatコマンドは、ディスク単位(スライスごと)の入出力状況を取得できます。
  3. コマンド
    プロセスに対するCPU時間、プロセスの実行状態などの情報を取得できます。下記コマンドで表示される「oracle」「ora_lgwr_ora921」「ora_ckpt_ora921」「ora_smon_ora921」「ora_reco_ora921」「ora_snp0_ora921」などがOracleデータベースサーバのプロセスです。unix# ps -ef | grep ora
unix# ps -ef | grep ora
オラクル関連のプロセスの表示方法

CPU/メモリの診断

 上記の確認で、CPUの負荷やメモリの消費量について考える必要があります。あるタイミングで極端にCPUの使用率が上昇するようであれば、何らかのユーザー処理(SQL文など)で負荷の高い処理が行われていると考えられます。このような原因に対する対処法は、次回に解説する「第2ステップSQL処理にかかわる確認」で詳しく解説します。

 また、SYSTEM CPUの使用率が高く、かつメモリも空き領域がなくなってしまっている場合、単純にOracleデータベースサーバ設計時の設定上の問題ですので、「第4ステップ設定項目の確認」で解説する内容を基に確認する必要があります。また、スワッピングやページングが発生している可能性も考えられます。「第6ステップ ディスクの確認」の項目で解説する内容を基に、ディスクI/Oなどを疑ってみることが必要です。まずはハードウェアの状況確認が大切であることを考慮に入れておいてください。


 今回はOracle障害克服の概要と最初に行うべき作業としてステップ0とステップ1を解説しました。次回からは第2ステップ以降の内容について、問題切り分けとその対処法を紹介していきます。(次回に続く)


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る