この章では、Oracle Database for Windowsを監視する方法について説明します。
この章の項目は次のとおりです。
表6-1では、Oracle Databaseを監視するためのツールについて説明します。
表6-1 データベース・モニタリング・ツール
ツール | 機能 |
---|---|
Oracle Counters for Windows Performance Monitor |
CPUの使用量、バッファ・キャッシュ、バックグラウンド・プロセスなどのデータベース・オブジェクトを監視します。 |
イベント ビューア |
データベース・イベントを監視します。 |
トレース・ファイル |
データベース操作の発生状況と例外を記録します。 |
アラート・ログ |
データベース操作中のエラー・メッセージと例外についての重要な情報を記録します。 |
Oracle Enterprise Manager Database Management Pack |
リアルタイムのグラフィカルなパフォーマンス情報が表示されるツールを使用して監視およびチューニングします。 関連項目: 詳細は、Oracle Enterprise Managerのマニュアルを参照 |
1 Oracle Administration Assistant for Windows |
Oracleスレッドに関する情報の表示やスレッドの終了を行います。 |
関連項目: 一般的なチューニング情報は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照 |
Oracle Counters for Windows Performance Monitorは、ローカル・サーバーまたはネットワークの他のサーバー上のOracle Database for Windowsオブジェクトのパフォーマンスを測定するグラフィカル・ツールです。Oracle Databaseのパフォーマンス要素がロードされている点を除けば、Windowsのパフォーマンス モニタと、外観と操作は同じです。
各コンピュータでは、バッファ・キャッシュ、データ・ディクショナリ・キャッシュ、データファイル、スレッド、プロセスなどのオブジェクトの動作を確認できます。オブジェクトは、システム内の要素をグラフィカルに表示したものです。システム内の要素、リソースおよびデバイスは、それぞれオブジェクトとして表すことができます。
注意: Oracle Counters for Windows Performance Monitorを使用してOracle固有のカウンタを表示できるようにするには、operfcfg .exe またはOracle Administration Assistant for Windowsを使用してSYSTEM パスワードを指定する必要があります。詳細は、「operfcfgの使用」または「Oracle Administration Assistant for Windowsの使用」を参照してください。 |
各オブジェクトには一連のカウンタが対応付けられています。カウンタとは、パフォーマンス モニタがアクティビティを表示するために使用する測定単位です。カウンタが測定するアクティビティの種類は、オブジェクトの種類(タイプ)に依存します。
特定のオブジェクト・タイプとそれに対応するカウンタが、すべてのシステムにあります。アプリケーション固有のカウンタなどのその他のカウンタは、コンピュータが対応付けられたソフトウェアであるときのみ表示されます。
それぞれのオブジェクトには一連のカウンタが対応付けられており、デバイスの使用状況、キューの長さ、遅延状況などに関する情報や、スループットおよび内部混雑を測定するために使用される情報を提供します。
Oracle Counters for Windows Performance Monitorをインストールすると、レジストリに第15章「パラメータおよびレジストリの構成」で説明されている値が自動的に設定されます。
Oracle Counters for Windows Performance Monitorでは、一度に監視できるデータベース・インスタンスは1つのみです。このため、レジストリに次の値が含まれます。
Hostname
Username
Password
これらの値を変更するには、operfcfg
を使用します。それぞれのレジストリ値にセキュリティ・レベルを設定することをお薦めします。
Oracle Counters for Windows Performance Monitorを、同じコンピュータまたはUNIXコンピュータの別のデータベース・インスタンスに対して使用する場合は、レジストリの値をそれに合せて変更します。tnsnames.ora
ファイルに指定されている別のコンピュータを指すようにレジストリのHostname
値を変更すると、Windows版ではないOracle Databaseを監視することもできます。
Oracle Counters for Windows Performance Monitorにアクセスするには、次のようにします。
「スタート」メニュー→「プログラム」→「Oracle -HOME_NAME」→「Configuration and Migration Tools」→「Oracle Counters for Windows Performance Monitor」を選択します。
Oracle Counters for Windows Performance Monitorでは、「表示」メニューで次の4種類のビューを選択できます。
グラフ・ビューでは、データベース・アクティビティが発生すると表示されます。
警告ビューでは、特定のパフォーマンス基準の最小値が満たされていない場合、または最大値を超えた場合に、そのことが通知されます。
ログ・ビューでは、パフォーマンスに関する記録が継続的に保存されます。
レポート・ビューでは、特定の基準についての情報が保存されます。
関連項目: 4つのビューの詳細は、オペレーティング・システムのドキュメントを参照 |
各ビューに対して、監視するオブジェクト、各オブジェクトに使用するカウンタおよびビューのグラフィカル属性を決定できます。オブジェクトを選択すると、カウンタと色が割り当てられ、Oracle Counters for Windows Performance Monitorの一番下にあるステータス・バーに追加されます。
ビューにオブジェクトを追加するには、次のようにします。
「編集」メニューの「追加先」(チャート、アラート、ログ、レポート)を選択します。(この例では「グラフへ追加」を使用しますが、他のダイアログ・ボックスも同様です。)
「グラフへ追加」ダイアログ・ボックスが表示されます。
「コンピュータ」リストで、監視するコンピュータを選択します。
「オブジェクト」リストで、監視する1つまたは複数のオブジェクトを選択し、「追加」をクリックします。
データまたはOracle Databaseオブジェクトがまったく表示されない場合は、Oracle Databaseがないか、入力されたホスト文字列またはパスワードが無効です。データベースが起動していない場合は、Oracle Counters for Windows Performance Monitorを終了してからデータベースを起動し、Oracle Counters for Windows Performance Monitorを再起動します。
「カウンタ」リストで、選択した各オブジェクトに対して1つ以上のカウンタを選択します。「オブジェクト」リストでの選択によって、「カウンタ」リストの内容が変わるので注意してください。カウンタがどのように機能するか詳細を知りたい場合は、カウンタを強調表示してから「説明」をクリックします。
「インスタンス」リストで、このカウンタのインスタンスを選択します。
「カラー」リストで、選択したカウンタの表示に使用する色を選択します。
「スケール」リストで、カウンタを表示する単位を選択します。
「幅」リストで、グラフで使用する線の幅を指定します。
「スタイル」リストで、グラフの線のスタイルを選択します。
終了したら「終了」をクリックします。
監視対象として選択したオブジェクトが表示されます。
Oracle Counters for Windows Performance Monitorで監視できるOracle Databaseシステム・リソースはすべて、Oracle Databaseで始まります。この項では、Oracle Databaseオブジェクトの一覧を示し、それに対応するカウンタについて説明します。これらの単位は、次のファイルで定義されています。
ORACLE_HOME\dbs\PERFver.ora
関連項目: これらのオブジェクトの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照 |
注意: 1台のコンピュータでOracle Counters for Windows Performance Monitorを使用して一度に監視できるインスタンスは1つのみです。 |
Oracle Database Buffer Cache
カウンタは、「phyrds/gets %」(物理的読込み/取得)です。物理的読込み/取得の割合は、ミス率として計算されます。ミスのカウンタの値が低いほど、よい状態です。パフォーマンスを上げるには、コンピュータでメモリーが使用可能な場合は、バッファ・キャッシュ内のバッファ数を増やします。この値は、時間に基づいて算出される値ではありません。
Oracle Database Redo Log Buffer
カウンタは、「redo log space requests」(REDOログ領域要求)です。このカウンタの値は、0に近い値である必要があります。この値が継続して増加する場合は、REDOログ・バッファ内の領域を探すためにプロセスが待機していることを示しています。この場合、REDOログ・バッファのサイズを大きくすることが必要な場合があります。
Oracle Database Data Dictionary Cache
カウンタは、「getmisses/gets %」(取得ミス/取得)です。頻繁にアクセスされるデータ・ディクショナリ・キャッシュでは、このカウンタの値は10%または15%未満に抑える必要があります。アプリケーション実行中にこの割合が継続的にしきい値を超える場合は、データ・ディクショナリ・キャッシュで使用可能なメモリーのサイズを大きくします。
キャッシュで使用できるメモリー・サイズを大きくするには、初期化パラメータSHARED_POOL_SIZE
の値を増やします。この値は、時間に基づいて算出される値ではありません。
関連項目: Oracle Databaseのメモリー割当てのチューニングの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照 |
Oracle Database Library Cache
カウンタは、「reloads/pins %」(再ロード/確保)です。これは、再解析を必要とするSQL文、PL/SQLブロックおよびオブジェクト定義の割合です。再ロードの合計は0に近い数である必要があります。確保に対する再ロードの割合が1%を超える場合は、ライブラリ・キャッシュ・ミスを減らします。この値は、時間に基づいて算出される値ではありません。
Oracle Databaseデータファイル
カウンタは、「phyrds/sec」(物理的読込み/秒)および「phywrts/sec」(物理的書込み/秒)です。これらの値は、時間に基づいて算出されます。複数のプロセスが同じディスクに同時にアクセスしようとすると、ディスクの競合が発生します。ディスク監視アクティビティの結果に応じて、対応措置には次のようなものがあります。
I/Oの分散
データファイルとREDOログ・ファイルの分離
表と索引の分離
表データのストライプ化
Oracle Database DBWR stats1
「buffers scanned/sec」(スキャン済バッファ/秒)および「LRU scans/sec」(LRUスキャン/秒)という2つの使用可能カウンタは、バッファ・キャッシュのチューニングに役立ちます。スキャン済バッファ/秒は、DBWRによって1秒間にスキャンされるバッファの数です。スキャンされるバッファは、LRU(最低使用頻度)リスト内にあります。LRUスキャン/秒は、DBWRによって、LRU(最低使用頻度)バッファ・リストが1秒間にスキャンされた回数です。
Oracle Database DBWR stats2
「timeouts/sec」(タイムアウト/秒)および「checkpoints/sec」(チェックポイント/秒)という2つの使用可能カウンタは、DBWRが実行を要求されている作業量の判断に役立ちます。タイムアウト/秒は、DBWRが1秒間にタイムアウトをする回数です。DBWRのタイムアウトは、3秒間隔です。DBWRが3秒間通知されない場合、タイムアウトします。
チェックポイント/秒は、データベース・ライターによって1秒間に処理されるチェックポイント・メッセージの数です。チェックポイントに達するたびに、使用済バッファをディスクに書き込むように求めるメッセージがDBWRに送られます(ポストされます)。
Oracle Database Dynamic Space Management
カウンタは、「recursive calls/sec」(再帰的コール/秒)です。動的拡張により、ユーザー・プロセスによって発行されたSQL文以外のSQL文もOracle Databaseによって実行されます。これらのSQL文は、再帰的コールと呼ばれます。
アプリケーション実行中に、Oracle Databaseによって過剰な再帰的コールが実行される場合は、問題の原因を突き止める必要があります。再帰的コールの統計は、動的パフォーマンス表V$SYSSTAT
で調べます。
Oracle Database Free List
カウンタは、「free list waits/requests %」(空きリスト待機/要求)です。空きリストの競合は、バッファ・キャッシュ内の空きデータ・ブロックの競合により影響されます。V$WAITSTAT
を問い合せれば、空きリストの競合によりパフォーマンスが低下しているかどうかを判断できます。
空きブロックを待機する空きリストの数が、要求されている処理の合計数の1%を超える場合は、空きリストをさらに追加して競合を減らすことを考慮してください。
Oracle Database Sorts
使用可能カウンタは、「sorts in memory/sec」(メモリー・ソート/秒)と「disk/sec」(ディスク・ソート/秒)です。ほとんどのソートの場合、すべてのデータを保持するにはデフォルトのソート領域サイズで十分です。ただし、ソート領域に収まらないようなデータに対する大量のソートをたびたびアプリケーションで行う場合は、ソート領域サイズを増やすことを考慮します。
「グラフへ追加」、「警告へ追加」、「ログへ追加」または「レポートへ追加」ダイアログの「オブジェクト」リストにデータまたはOracle Databaseオブジェクトが表示されない場合は、次のようにします。
Oracle Databaseインスタンスが稼働していることを確認してください。稼働していない場合は、Oracle Counters for Windows Performance Monitorを終了し、データベースを起動します。
データベース・インスタンスは稼働しているがデータまたはOracle Databaseオブジェクトが表示されない場合には、Oracle Counters for Windows Performance Monitorのエラー・ファイルを確認してください。
ORACLE_HOME\dbs\OPERFver.log
ログ・ファイルでホスト文字列またはパスワードが無効であることが示されている場合は、レジストリで、Hostname
、Password
およびUsername
の正しい値を確認します。これらの値の詳細は、「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services」を参照してください。
Oracle Counters for Windows Performance Monitorを再起動します。
Oracle Database for Windowsで起きた問題やその他の重大な問題は、イベントとしてアプリケーション・イベント・ログに記録されます。記録されたイベントは、イベント ビューアで表示し管理します。
イベント ビューアにアクセスするには次のようにします。
「スタート」メニュー→「プログラム」→「管理ツール」→「イベント ビューア」を選択します。
「イベント ビューア」ウィンドウが表示されます。
「ログ」メニューから「アプリケーション」を選択します。
図6-1はアプリケーション・ビュー・ウィンドウを示します。表6-2には、各列に記録される内容を示し、表6-3では、ビューアの左端に表示されるアイコンを説明します。
表6-2 アプリケーション・ビューの定義
列名 | 定義 |
---|---|
日付 |
イベントが発生した日付 |
時刻 |
イベントが発生した時刻 |
ソース |
イベントを記録したアプリケーション |
分類 |
イベントの分類 |
イベント |
イベントに割り当てられた一意の番号 |
コンピュータ |
イベントが発生したコンピュータの名前 |
表6-3 イベント ビューアのアイコン
アイコン | イベントの種類 | 提案されるアクション |
---|---|---|
赤いストップ・サイン |
エラー |
このアイコンは必ず確認してください。 |
青い円で囲まれた小文字の「i」 |
情報 |
クリティカルでないシステム・イベント。これらのアイコンは、特定のイベントを追跡する場合にのみチェックします。 |
黄色い円で囲まれた感嘆符 |
警告 |
インスタンスの終了やサービスの停止などの特別なイベント。通常、このアイコンは重要ではありませんが、確認が必要です。 |
Oracle Database for Windowsのイベントは、Oracle.SID
のソースとともに表示されます。
イベント番号34は、監査証跡イベントを示します。これらのイベントは、初期化パラメータ・ファイルで、パラメータAUDIT_TRAIL
をdb
(true
)またはos
に設定した場合に記録されます。オプションos
を使用すると、システム全体で監査が行われ、監査されたレコードはイベント ビューアに書き込まれます。オプションdb
では、システム全体で監査が行われ、監査されたレコードはデータベース監査証跡(表SYS.AUD$
)に書き込まれます。ただし、一部のレコードはイベント ビューアに書き込まれます。
34以外のイベント番号は、起動されたインスタンスまたは停止されたインスタンスなど、一般的なデータベース・アクティビティを示します。
イベント ビューアでアイコンをダブルクリックすると、「イベントの詳細」ダイアログに、選択したイベントの詳細情報が表示されます。たとえば、図6-2は、イベントID 1011の詳細を示しています。「説明」フィールドでは、イベントについてのテキスト形式の説明が表示されます。「データ」フィールドでは、「バイト」を選択して情報を16進形式で表示するか、「ワード」を選択して同じデータをDWORDで表示します。
関連項目: イベント ビューアの使用方法は、Microsoftオペレーティング・システムのドキュメントを参照 |
Oracle Database for Windowsのバックグラウンド・スレッドでは、エラーと同様にトレース・ファイルを使用して、データベース操作の発生、例外が記録されます。バックグラウンド・スレッドのトレース・ファイルは、初期化パラメータ・ファイルのパラメータDIAGNOSTIC_DEST
で指定されたADRディレクトリに作成されて格納されます。
Oracle Databaseでは、それぞれのフォアグラウンド・スレッドおよびバックグラウンド・スレッドに異なるトレース・ファイルが作成されます。トレース・ファイルの名前には、スレッドの名前が含まれており、その後に拡張子.trc
が続きます。フォアグラウンド・トレース・ファイル名の例は、次のとおりです。
ops_ora_5804.trc
ops_ora_4160.trc
バックグラウンド・トレース・ファイル名の例は、次のとおりです。
ops_pmon_1556.trc
ops_mmon_3768.trc
ops_lgwr_2356.trc
ops_dbw0_132.trc
トレース・ファイルもユーザー・スレッド用に作成され、初期化パラメータ・ファイルのパラメータDIAGNOSTIC_DEST
で指定されたADRディレクトリに格納されます。ユーザー・スレッド用のトレース・ファイルはora
xxxxx
.trc
という形式になります。xxxxx
は5桁の数字でWindowsのスレッドID
を表します。
アラート・ログには、データベース操作中に発生したエラー・メッセージと例外についての重要な情報が記録されます。Oracle Database for Windowsインスタンス1つにつきアラート・ログが1つずつあります。インスタンスを起動するたびに情報が各ファイルに追加されます。すべてのスレッドがアラート・ログに書き込むことができます。
たとえば、ディスク領域不足のためにREDOログの自動アーカイブが停止する場合、アラート・ログにメッセージが書かれます。データベースに障害が起きて、原因がすぐにわからない場合は、まずアラート・ログを調べてください。
アラート・ログはalert_
SID
.log
という名前が付けられ、初期化パラメータ・ファイル内のパラメータDIAGNOSTIC_DEST
で指定したADRディレクトリにあります。アラート・ログは定期的に削除するかアーカイブしてください。
Oracle Administration Assistant for Windowsを使用してOracle Databaseスレッドに関する情報を表示するには、データベースに対してWindows認証を有効にするか、引数username
および
passwordを指定してユーティリティocfgutil.exe
を実行する必要があります。ユーティリティは、ユーザー名とパスワードをレジストリの次の場所に格納します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraConfig
Windows認証が有効になっていない場合、Oracle Remote Configuration Agentは、ユーザー名とパスワードをこのレジストリ・キーから取得してデータベースにログオンします。
Oracle Administration Assistant for Windowsを使用してOracle Databaseスレッドの情報を表示するには、次のようにします。
「スタート」メニュー→「プログラム」→「Oracle - HOME_NAME」→「Configuration and Migration Tools」→「Administration Assistant for Windows」を選択します。
SID
を右クリックします。SID
は、orcl
などの特定のインスタンス名です。
「プロセス情報」を選択します。
「プロセス情報」ダイアログが表示され、各Oracle Databaseスレッドの名前、タイプ、ユーザー、スレッドIDおよびCPU使用率が一覧表示されます。
スレッドを終了するには、そのスレッドを選択し、「スレッドの強制終了」をクリックします。