火曜日 11 22, 2011

ORA-4031 Troubleshooting Tool の紹介

ORA-4031 はデータベースバッファキャッシュをのぞく SGA を構成するコンポーネント(共有プール等)においてメモリの確保を試みたが、十分なメモリ領域が確保できなかった場合に発生するエラーです。今回はこの ORA-4031 のトラブルシューティングに有効なツール ORA-4031 Troubleshooting Tool についてご紹介します。

ORA-4031 Troubleshooting Tool とは

ORA-4031 Troubleshooting Tool は ORA-4031 発生時の資料を基に ORA-4031 エラーの原因になりえる要因について列挙し、その解決方法について提示するWEBベースのツールです。サポート契約をいただいているお客様であれば、My Oracle Support より追加費用なしでご利用いただけます。一般的に ORA-4031 を発生させうる要因について自動的かつ網羅的に解析を行うため、ORA-4031 の原因および対処策の調査を簡単かつ迅速に行うことができます。

ORA-4031 Troubleshooting Tool へのアクセス方法

My Oracle Support にサインインし Diagnostic Tools Catalog より  ORA-4031 Troubleshooting Tool のリンクをクリックいただくことで ORA-4031 Troubleshooting Tool にアクセスすることができます。



ORA-4031 Troubleshooting Tool の使用方法

以下の2つの使用方法に対応しています。

  1. ORA-4031 が発生した時の資料をアップロードして自動的に解析を行う方法

    ORA-4031 Troubleshooting Tool から「新規の問題のトラブルシューティング」を選択します。この方法を選択する場合、ORA-4031 発生時の以下のいずれかの資料が必要です。

    • アラートログとトレースファイル
    • ORA-4031のインシデントパッケージ

    また、上記の資料とあわせて ORA-4031 発生時間帯の AWRレポートを提供いただくことで、より詳細な解析を行うことができます。各資料の詳細については以下の技術文書をご参照ください。


  2. あらかじめ用意された ORA-4031 の診断ガイドを基を確認しながら手動で解析を行う方法

    資料が十分にそろわない場合や、自分自身で ORA-4031 の診断ガイドに記載されている ORA-4031 の発生要因を1つ1つチェックしたい場合は ORA-4031 Troubleshooting Tool から「診断ガイドの確認(問題の共通する原因と解決方法)」を選択します。

ORA-4031 解析結果のレポート

資料をアップロードして自動的に解析を行った場合、以下のセクションにわけてレポートが生成されます。

  • 主要な問題
    確認された問題とその説明を記載しています。
    以下はその例です。

    表示例1)
    High Session_Cached_Cursor Setting Causing Excessive Consumption of Shared Pool

    上記はSESSION_CACHED_CURSOR の設定が高すぎるため、無駄に共有プールの領域を消費する可能性があることを示しています。

    表示例2)
    Insufficient SGA Free Memory at Startup
    This issue could occur if in the init.ora parameters of your Alert log, (shared_pool_size + large_pool_size + java_pool_size + db_keep_cache_size + streams_pool_size + db_cache_size) / sga_target is greater than 90%.

    実際はもう少し詳細な解説が英語でありますが、上記は パラメータとして指定している shared_pool_size, large_pool_size, java_pool_size, db_keep_cache_size, streams_pool_size, db_cache_size の合計値が /sga_target の値の 90% を占めていることを問題としています。sga_target または memory_target パラメータを指定して自動共有メモリ管理または自動メモリ管理を有効にしている場合、各コンポーネントのサイズを自動的に調整します。あわせて shared_pool_size 等の各コンポーネントのパラメータを明示的に指定するとにより、そのコンポーネントの最低サイズを指定することができますが、各コンポーネントの指定値(最低サイズの合計値)が sga_target の値に近い場合、各コンポーネントのサイズを縮小し、他のコンポーネントに割り当てることができなくなることを問題としています。

  • エビデンス詳細
    どの資料のどの記録から、この問題を判断したのかについて記載しています。

    表示例1)
    In your Alert log,
    * Look for parameters under "System parameters with non-default values:".

     If session_cached_cursor * 2000 / shared_pool_size is greater than 10%, then session_cached_cursors are consuming significant shared_pool_size.

    上記は アラートログより確認できる "System parameters with non-default values:" の値より
      session_cached_cursor * 2000 の値が shared_pool_size の 10% 以上を占める事をエビデンスとして記載しています。

    表示例2)
    In your Alert log, SGA Utilization (Sum of shared_pool_size, large_pool_size, java_pool_size, db_keep_cache_size, streams_pool_size and db_cache_size over sga_target) is 99%, which might be too high.

    上記は shared_pool_size, large_pool_size, java_pool_size, db_keep_cache_size, streams_pool_size and db_cache_size の合計が sga_target の 99% を占めている事をエビデンスとしています。

  • 推奨されるソリューション
    問題の解決のために取るべき対処方法と My Oracle Support の関連技術文書のリンクについて記載しています。

    表示例1)
    Decrease the parameter SESSION_CACHED_CURSORS

    SESSION_CACHED_CURSORS を減らすという対処方法を提案しています。

    表示例2)
    Reduce the minimum values for the dynamic SGA components to allow memory manager to make changes as needed

    SGA を構成する各コンポーネントの指定値(最低値)を減らす事を提案しています。

    上記では 2つの例について記載していますが、この他にも ORA-4031 Trobuleshooting Tool は多くの解析チェックポイントを設けており、これらのチェックを網羅的に実行できます。

ORA-4031 Troubleshooting Tool は最も迅速に ORA-4031 の原因と解決策の調査を行える方法です。また、ORA-4031 Troubleshooting Tool の結果において不明点がある場合は、この結果を基にスムーズにサポートにお問い合わせを行う方法も提供されています。ORA-4031 に悩まされる状況は歓迎すべきことではありませんが、もし、ORA-4031 に遭遇してしまった場合にはぜひ ORA-4031 Troubleshooting Tool をご活用ください。

火曜日 7 12, 2011

SQLT(SQLTXPLAIN) の紹介

今回は パフォーマンスのトラブルシューティングに有効なツール SQLT(SQLTXPLAIN) を紹介します。

SQLT(SQLTXPLAIN) とは

SQLT(SQLTXPLAIN) は単一の SQL のパフォーマンスが悪いケースにおいて、この原因を調査するための診断情報を取得し、解析しやすい形式にフォーマットするツールです。海外のエンジニアにもよく使われ、数ある診断ツールの中でも人気が高いツー ルです。サポート・サービスをご契約いただいているお客様であれば SQLT (SQLTXPLAIN) - Tool that helps to diagnose SQL statements performing poorly よりダウンロードしてご利用いただけます。

SQLT はどのような情報を取得するのか

皆様は単一 SQL のパフォーマンスの問題に遭遇した場合、どのような情報から原因の特定を試みますか? 実行計画を疑うのであれば、explain plan にて実行計画を確認したり、共有プールにロード済みのカーソルから実行計画を確認する方法があります。AWR や STATSPACK の情報が活用できる環境であれば SQL レポート等を確認するアプローチも取れるでしょう。実際に SQL の実行を試せる環境であれば、SQLトレースを取得して、tkprof ユーティリティ等を駆使して解析する方法も有効です。

SQLT もこれらの方法で情報を取得します。SQLT の SQL の解析方法には以下の3つの方法が用意され、それぞれのケースで取得対象の元となる情報が異なります。どの方法で実行するかは任意に選択できます。

  1. XECUTE
    SQL およびバインド変数の値を元に実際に SQL をハード・パースさせる方法で実行して情報を取得します。現状に即した情報を取得でき、最も多くの診断情報を取得することができる方法です。ただし、実際 に SQL を実行するため、実行負荷の高いSQL の情報を取得する場合は、情報取得時の負荷に注意してください。

  2. XTRACT
    調査対象の SQL は実行せずに、以前に実行された SQL の SQL_ID 等の情報を元に共有プールや AWR に格納されている情報から実際の情報を取得します。このため、以前に実行された SQL の情報が共有プールや AWR に残っている必要があります。あわせて、現在の状況と過去の状況では状況が異なっている可能性に注意してください。また、XECUTE よりは取得する診断情報が少なくなります。

  3. XPLAIN
    explain plan を使用して SQLの解析のみを行い情報を取得します。実際に SQL を実行するわけではないため、XECUTE よりも負荷が軽く、XTRACT のように以前に SQL を実行した時の情報が残っている必要もありませんが、取得する診断情報は XECUTE や XTRACT と比較して最も少なくなります。また、以前に発生した SQL のパフォーマンスの問題を調査することが目的の場合、以前に発生した SQL の解析時と、XPLAIN を使用した情報取得時では状況が異なっている可能性があることに注意が必要です。

そして、 SQLT は上記の方法により取得した実行計画の情報とあわせてオプティマイザやパフォーマンスの問題をトラブルシューティングするための情報を取得します。以下はその一例です。

  • システム統計情報
  • DBMS_STATS パッケージのプリファレンス設定値
  • 自動統計情報収集ジョブの設定状況
  • 統計情報の取得状況
  • 表レベル統計情報の履歴情報
  • オプティマイザに影響を与える初期化パラメータの設定値
  • NLS パラメータの情報
  • カーソルの共有状況
  • 実行された SQL の統計情報
  • 表や列、索引等のオブジェクトの統計情報
  • 表領域のパラメータ
  • オプティマイザのトレース
  • SQLトレースと SQLトレース解析ツールの結果 (XECUTEの場合のみ)
  • SQLチューニング・アドバイザの結果(適切なライセンスが必要です)
  • 別環境でテストケースを作成するための関連オブジェクトの作成スクリプト
  • 別環境にシステム統計情報やオブジェクトの統計情報を Import する為のスクリプト
  • 対象の SQL 文

取得情報の詳細は SQLT に同梱されている SQLTXPLAIIN.pdf を参照してください。

SQLT はこれらの取得した情報を html 形式のレポートにまとめます。各情報はそれぞれリンクされ、確認したい情報をスムーズに確認できます。出力結果のサンプルがこちらに用意されています。

SQLT を導入してみよう

SQLT は statspack の導入と同様にいくつかの表やパッケージを導入対象のデータベースに作成する必要があるため、いざ、問題が発生してから導入するのではなく、事前に導入し ておくことをお奨めします。また、事前にどのような手順で情報を取得し、どのようなレポートが出力されるのか確認しておくと、実際のトラブル時にスムーズ に情報を取得し、解析できるでしょう。

SQLTのインストール方法は SQLTXPLAIN のインストール方法 を参照してください。実際の情報取得方法は SQLTXPLAIN の実行方法 を参照してください。

水曜日 6 15, 2011

RDA 4.24 がリリースされました

米国時間 6月14日 に RDA 4.24 がリリースされました。RDA の詳細については以前のエントリ RDA (Remote Diagnostic Agent) の紹介をご参照ください。
現在、RDA はおおよそ 3ヶ月毎に機能を拡張した新しいバージョンをリリースしています。

今回の RDA 4.24 では Grid Infrastructure 環境における /etc/oracle/olr.loc を使用した ORA_CRS_HOME の検出処理への対応や ora600 ツールモジュールの My Oracle Support からの事例検索処理の改善等、多数の改良が実施されています。詳細は RDA 4 Release Notes を参照してください。また、最新版の RDA は Remote Diagnostic Agent (RDA) 4 - Getting Started よりダウンロードできます。

RDA は最新版がリリースされると、以前のバージョンの RDA はダウンロードできません。
今後新規に導入される場合は、最新の RDA を導入してください。

木曜日 5 26, 2011

OS Watcher(OSW)の紹介

今回は OS Watcher について紹介します。

OS Watcher とは

OS Watcher はオペレーティング・システムやネットワークの使用状況に関する情報を収集して、Oracleサポート・サービスでのシステムおよびパフォーマンスに関連する様々な問題の診断を支援するシェルスクリプトです。
OS Watcher はサーバー上で一連のバックグラウンド・プロセスとして動作し、定期的にオペレーティング・システムのデータを収集し、収集したデータのログローテーションをおこないます。

[Read More]

木曜日 5 19, 2011

RDA (Remote Diagnostic Agent) の紹介

今回は オラクル サポート・サービスを契約いただいているお客様であれば、 無料で導入できる便利なツール RDA(Remote Diagnostic Agent)について紹介します。

RDA(Remote Diagnostic Agent) とは

RDA とはオラクルのシステム製品環境からシステムの構成や稼動状況、ログ等の詳細な情報を収集することができるツールです。RDA の主要な処理は Perl にて記載されており、プラットフォーム依存のコマンドを考慮することなく必要な情報を簡単かつ迅速に収集することができます。また、RDA は情報収集以外にも複数の機能を備えています。

RDA にて取得した情報は html ファイルとして参照しやすいフォーマットにまとめられる為、お客様自身がシステムの構成を管理するための資料作成のために使用できます。また、問題が発生した場合は RDA で取得した資料をオラクル カスタマ・サポートに送付いただくことで、迅速に調査を行うことができます。オラクル カスタマ・サポートは RDA の使用を推奨しています。

[Read More]
About

日本オラクル カスタマ・サポートのエンジニアがお勧めのサポート情報を紹介します。


本サイトの一部のリンク先へアクセスするには My Oracle Support のアカウントが必要です。
My Oracle Support の概要については http://oracle.co.jp/mos をご参照ください。

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
11
12
13
14
15
16
17
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today