B Oracle RACのトラブルシューティング
この付録では、トレース・ファイルおよびログ・ファイルを使用して、Oracle Real Application Clusters(Oracle RAC)コンポーネントの問題を診断する方法について説明します。
ノート:
Oracle RACでのOracle Database用に生成されたファイルと同じように、トレース・ファイルおよびログ・ファイルは、Oracle Clusterwareコンポーネントでも使用できます。Oracle Clusterwareの場合、これらのファイルはOracle Databaseによって統合ディレクトリのログ構造に格納されます。- エラー分析に必要なファイルの場所
Oracle Databaseは、Oracle RAC環境で発生する重要なイベントに関する情報をトレース・ファイルに記録します。 - Oracle RACでの診断データの管理
Oracle RACインスタンス全体にわたる問題は、最も診断が難しいタイプの問題である可能性があります。 - Oracle RACでのインスタンス固有のアラート・ファイルの使用
Oracle RACデータベースの各インスタンスには、1つのアラート・ファイルがあります。 - Oracle RACでのJavaベースのツールとユーティリティに関するトレースの有効化
Oracle RACで使用可能なJavaベースのすべてのツールとユーティリティは、ツールまたはユーティリティと同じ名前のスクリプトを処理してコールします。 - 停止保留問題の解決
SHUTDOWN IMMEDIATE
が保留され、停止リクエストを繰り返してもOracle Databaseが迅速に応答しなくなる場合があります。 - Oracle RACインスタンスでプライベート・ネットワークが使用されているかどうかの判別方法
このトピックでは、Oracle RACインスタンスでプライベート・ネットワークが使用されているかどうかを手動で判別する方法について説明します。
エラー分析に必要なファイルの場所
Oracle Databaseは、Oracle RAC環境で発生する重要なイベントに関する情報をトレース・ファイルに記録します。
Oracle RACのトレース・ファイルは、非クラスタのOracle Databaseの場合と同じです。すべてのインスタンスに対してトレース・ファイルを定期的に監視およびバックアップし、将来のトラブルシューティングのための情報を保持します。
ORA-600
エラーに関する情報は、各インスタンスのalert_SID.log
ファイルにあります。ここでSID
には、インスタンスの識別子を指定します。
バックグラウンド・プロセスおよびサーバー・プロセス用のアラート・ログ・ファイルとすべてのトレース・ファイルは、自動診断リポジトリに書き込まれます(自動診断リポジトリの位置は、DIAGNOSTIC_DEST
初期化パラメータで指定できます)。たとえば:
$ORACLE_BASE/diag/rdbms/$DBNAME/$SID_NAME/trace
Oracle Databaseは、各バックグラウンド・スレッドに対して別々のトレース・ファイルを作成します。Oracle RACのバックグラウンド・スレッドでは、トレース・ファイルを使用して、データベース操作およびデータベース・エラーが記録されます。これらのトレース・ログは、トラブルシューティングに有効であり、また、Oracleサポート・サービスは、これらのトレース・ログを使用して、クラスタ・データベース構成の問題をより効率的にデバッグできます。トレース・ファイル名はオペレーティング・システム固有ですが、通常、各ファイルにはそれを書き込むLGWRやRECOなどのプロセスの名前が含まれます。Linux、UNIXおよびWindowsシステムでは、バックグラウンド・プロセスのトレース・ファイル名は、SID_process_name_process_identifier.trc
になります。
DIAGNOSTIC_DEST
初期化パラメータを設定した場合は、トレース・ファイルはユーザー・プロセスに対しても作成されます。ユーザー・プロセス・トレース・ファイルの名前は、SID_ora_process_identifier/thread_identifier.trc
の形式です(LinuxおよびUNIXシステムの場合、process_identifier
はプロセス識別子(PID)を表す5桁の数値で、Windowsシステムの場合、thread_identifier
はスレッド識別子です)。
親トピック: Oracle RACのトラブルシューティング
Oracle RACでの診断データの管理
Oracle RACインスタンス全体にわたる問題は、最も診断が難しいタイプの問題である可能性があります。
たとえば、複数のインスタンスからトレース・ファイルを相互に関連付け、マージする必要がある場合があります。Oracle Databaseには、診断データの収集および管理用の高度な障害診断インフラストラクチャが含まれており、データベース診断データの格納に自動診断リポジトリ(ADR)ファイル・ベースのリポジトリが使用されます。共有ディスクにADRベースを作成すると、同じOracle RACデータベースのすべてのインスタンスのADRホームを同じADRベースに配置できます。共有記憶域を使用すると、次の処理を実行できます。
-
ADRCIコマンドライン・ツールを使用して、すべてのインスタンスの診断を相互に関連付けることができます。
ADRCIは、ADR内の診断データを確認し、Oracleサポートへの送信用に発生事象と問題の情報をzipファイルに圧縮できるコマンドライン・ツールです。診断データには、発生事象と問題の説明、トレース・ファイル、ダンプ、状態モニター・レポート、アラート・ログ・エントリなどが含まれます。
-
データ・リカバリ・アドバイザを使用して、破損したデータ・ブロック、破損または欠落したファイルおよびその他のデータ障害を修復できます。
データ・リカバリ・アドバイザは、永続データ障害の自動的診断、修復オプションの提示およびユーザーの要求に応じた問題の修復を行う、Oracle Databaseインフラストラクチャです。
関連トピック
親トピック: Oracle RACのトラブルシューティング
Oracle RACでのインスタンス固有のアラート・ファイルの使用
Oracle RACデータベースの各インスタンスには、1つのアラート・ファイルがあります。
各インスタンスのアラート・ファイル(alert_SID.log
)には、データベース操作中に発生したエラー・メッセージおよび例外に関する重要な情報が含まれています。インスタンスを起動するたびに、アラート・ファイルの末尾に情報が追加されます。すべての処理スレッドをインスタンスのアラート・ファイルに書き込むことができます。
alert_SID.log
ファイルは、DIAGNOSTIC_DEST
初期化パラメータで指定されたディレクトリにあります。
親トピック: Oracle RACのトラブルシューティング
Oracle RACでのJavaベースのツールとユーティリティに関するトレースの有効化
Oracle RACで使用可能なJavaベースのすべてのツールとユーティリティは、ツールまたはユーティリティと同じ名前のスクリプトを処理してコールします。
構成検証ユーティリティ(CVU)、Oracle Database Configuration Assistant (Oracle DBCA)、Net Configuration Assistant (NETCA)、サーバー制御ユーティリティ(SRVCTL)などがあります。たとえば、Oracle DBCAを実行するには、コマンドdbca
を入力します。
Oracle Databaseでは、デフォルトでOracle DBCAおよびDatabase Upgrade Assistant(DBUA)のトレースが有効になっています。CVUおよびSRVCTLの場合は、SRVM_TRACE
環境変数をTRUE
に設定すると、Oracle Databaseでトレースを生成できます。トレースはログ・ファイルに書き込まれます。たとえば、Oracle DBCAとOracle DBUAの場合、トレースはそれぞれOracle_base/cfgtoollogs/dbca
とOracle_base/cfgtoollogs/dbua
内のログ・ファイルに書き込まれます。
親トピック: Oracle RACのトラブルシューティング
停止保留問題の解決
SHUTDOWN IMMEDIATE
が保留され、停止リクエストを繰り返してもOracle Databaseが迅速に応答しなくなる場合があります。
これは、Oracle Clusterwareで現行の停止リクエストが処理中のため発生する場合があります。そのような場合は、以後の停止リクエストに対し、SQL*Plusを使用してSHUTDOWN ABORT
を発行します。
親トピック: Oracle RACのトラブルシューティング
Oracle RACインスタンスでプライベート・ネットワークが使用されているかどうかの判別方法
このトピックでは、Oracle RACインスタンスでプライベート・ネットワークが使用されているかどうかを手動で判別する方法について説明します。
ただし、このタスクを実行する場合は、Oracle Enterprise Manager Cloud Controlのグラフィカル・ユーザー・インタフェース(GUI)を使用してインターコネクトを確認することをお薦めします。
ほとんどのネットワーク・プロトコルで、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
親トピック: Oracle RACのトラブルシューティング