ヘッダーをスキップ
Oracle Real Application Clusters管理およびデプロイメント・ガイド
11gリリース1(11.1)
E05738-05
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

B Oracle Real Application Clustersのトラブルシューティング

この付録では、トレース・ファイルおよびログ・ファイルを使用して、Oracle Real Application Clusters(Oracle RAC)コンポーネントの問題を診断する方法について説明します。この項の内容は次のとおりです。


注意:

Oracle RACを使用して生成されたOracle Databaseのトレース・ファイルおよびログ・ファイルは、Oracle Clusterwareコンポーネントでも使用できます。Oracle Clusterwareの場合、これらのファイルはOracle Databaseによって統合ディレクトリのログ構造に格納されます。

Oracle Clusterwareのトラブルシューティングの詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。


エラー分析に必要なファイルの場所

Oracle Databaseは、Oracle RAC環境で発生する重要なイベントに関する情報をトレース・ファイルに記録します。Oracle RACのトレース・ファイルは、シングル・インスタンスのOracle Databaseの場合と同じです。すべてのインスタンスに対してトレース・ファイルを定期的に監視およびバックアップし、将来のトラブルシューティングのための情報を保持します。

ORA-600エラーに関する情報は、各インスタンスのalert_SID.logファイルにあります。ここでSIDには、インスタンスの識別子を指定します。

バックグラウンド・プロセスおよびサーバー・プロセス用のアラート・ログ・ファイルとすべてのトレース・ファイルは、自動診断リポジトリに書き込まれます。自動診断リポジトリの位置は、DIAGNOSTIC_DEST初期化パラメータで指定できます。トレース・ファイルの名前はオペレーティング・システム固有ですが、通常、各ファイルにはファイルを書き込むプロセスの名前(LGWRやRECOなど)が含まれます。次に例を示します。

diagnostic_dest=/oracle/11.1/diag/rdbms/rac/RAC2/trace

Oracle Databaseでは、バックグラウンド・スレッドごとに異なるトレース・ファイルが作成されます。Oracle RACバックグラウンド・スレッドは、データベース操作とデータベース・エラーの記録に、トレース・ファイルを使用します。これらのトレース・ログは、トラブルシューティングに有効です。また、Oracleサポート・サービスは、これらのトレース・ログを使用して、クラスタ・データベース構成の問題をより効率的にデバッグできます。Linux、UNIXおよびWindowsシステムの場合、バックグラウンド・プロセス・トレース・ファイルはSID_process name_process identifier.trcという名前です。


関連項目:

トレース・ファイルでのエラーの監視およびアラートの詳細は、『Oracle Database管理者ガイド』を参照してください。

DIAGNOSTIC_DEST初期化パラメータを設定すると、ユーザー・プロセスに関するトレース・ファイルが作成されます。ユーザー・プロセス・トレース・ファイルの名前は、SID_ora_process_identifier/thread_identifier.trcの形式です。LinuxおよびUNIXシステムの場合、process_identifierはプロセス識別子(PID)を示す5桁の数値です。Windowsシステムの場合、thread_identifierはスレッド識別子です。

Oracle Real Application Clustersでの診断データの管理

Oracle RACインスタンス全体にわたる問題は、最も診断が難しいタイプの問題である可能性があります。たとえば、複数のインスタンスからトレース・ファイルを相互に関連付け、マージする必要がある場合があります。Oracle Database 11gには、診断データの収集および管理用の高度な障害診断インフラストラクチャが含まれており、データベース診断データの格納に自動診断リポジトリ(ADR)ファイル・ベースのリポジトリが使用されます。共有ディスクにADRベースを作成すると、同じOracle RACデータベースのすべてのインスタンスのADRホームを同じADRベースに配置できます。共有記憶域を使用すると、次の処理を実行できます。

Oracle Real Application Clustersでのインスタンス固有のアラート・ファイルの使用

Oracle RACデータベースの各インスタンスには、1つのアラート・ファイルがあります。各インスタンスのアラート・ファイル(alert.SID.log)には、データベース操作中に発生したエラー・メッセージおよび例外に関する重要な情報が含まれています。インスタンスを起動するたびに、アラート・ファイルの末尾に情報が追加されます。すべての処理スレッドをインスタンスのアラート・ファイルに書き込むことができます。

alert_SID.logファイルは、initdb_name.ora初期化パラメータ・ファイルのDIAGNOSTIC_DESTパラメータで指定されたディレクトリにあります。

Oracle Real Application ClustersでのJavaベースのツールとユーティリティに関するトレースの有効化

Oracle RACで使用可能なJavaベースのすべてのツールとユーティリティは、ツールまたはユーティリティと同じ名前のスクリプトを実行して起動します。クラスタ検証ユーティリティ(CVU)、Database Configuration Assistant(DBCA)、Net Configuration Assistant(NetCA)、Server Control(SRVCTL)、Global Services Daemon(GSD)などがあります。たとえば、DBCAを実行するには、コマンドdbcaを入力します。

Oracle Databaseでは、デフォルトでDBCAおよびDatabase Upgrade Assistant(DBUA)のトレースが有効になっています。CVU、GSDCTLおよびSRVCTLの場合は、 SRVM_TRACE環境変数をTRUEに設定すると、Oracle Databaseでトレースを生成できます。トレースはログ・ファイルに書き込まれます。たとえば、DBCAおよびDBUAの場合、トレースはそれぞれOracle home/cfgtoollogs/dbcaおよびOracle home/cfgtoollogs/dbua内のログ・ファイルに書き込まれます。

停止保留問題の解決

SHUTDOWN IMMEDIATEが保留され、停止要求を繰り返してもOracle Databaseが迅速に応答しなくなる場合があります。これは、Oracle Clusterwareで現行の停止要求が処理中のため発生する場合があります。そのような場合は、以後の停止要求に対し、SQL*Plusを使用してSHUTDOWN ABORTを実行します。

Oracle Real Application Clustersインスタンスでプライベート・ネットワークが使用されているかどうかの判別方法

この項では、Oracle RACインスタンスでプライベート・ネットワークが使用されているかどうかを手動で判別する方法について説明します。ただし、このタスクを実行する場合は、Oracle Enterprise Manager Database ControlのGraphical User Interfaceを使用してインターコネクトを確認することをお薦めします。また、Oracle Enterprise Managerを使用したOracle RACの監視の詳細は、『Oracle Database 2日でReal Application Clustersガイド』を参照してください。

ほとんどのネットワーク・プロトコルで、oradebug ipcコマンドを実行し、データベースで使用されているインターコネクトを確認できます。次に例を示します。

oradebug setmypid
oradebug ipc

これらのコマンドは、DIAGNOSTIC_DEST初期化パラメータによって指定された場所にトレース・ファイルをダンプします。出力は次のようになる場合があります。

SSKGXPT 0x1a2932c flags SSKGXPT_READPENDING     info for network 0
        socket no 10    IP 172.16.193.1         UDP 43749
        sflags SSKGXPT_WRITESSKGXPT_UP  info for network 1
        socket no 0     IP 0.0.0.0      UDP 0...

この例では、データベースがユーザー・データグラム・プロトコル(UDP)プロトコルでIP 172.16.193.1を使用していることを確認できます。oradebug tracefile_nameコマンドを実行して、出力が書き込まれるトレースの場所を出力することもできます。

また、V$CLUSTER_INTERCONNECTSビューを問い合せて、プライベート・インターコネクトに関する情報を確認できます。次に例を示します。

SQL> SELECT * FROM V$CLUSTER_INTERCONNECTS;NAME  IP_ADDRESS          IS_  SOURCE
----- -------------------------- ---  -------------------------------
eth0  138.2.236.114         NO  Oracle Cluster Repository