リスナーの起動・停止に失敗した場合のトラブル事例です。
[ケース1] (スタンバイ、Oracle RAC スケーラブル、シングルノードクラスタ)
PRIMECLUSTER RMS のリソース設定が誤っている場合に発生します。
clorainfo -c コマンドを実行してリソース設定情報を確認できます。次に示す設定情報が実際の環境と一致していることを確認してください。(参考 “4.6 clorainfo - 設定情報や監視状態の表示”)
Oracle ユーザー名
リスナー名
OracleTNS名(TNSName) (ネット・サービス名)
PreOnlineScript などに設定したスクリプト
パスが正しいこと
実行権限があること
単体で正しく動作すること
一致していなかった場合、正しい設定に変更してください。(参考 “第2章 環境設定”)
[ケース2] (スタンバイ、シングルノードクラスタ)
リスナーの設定が誤っており起動・停止できない場合に発生します。(リスニングするIPアドレスやポートなどの設定ミス)。
リスナーログ等を確認し、起動・停止に失敗した原因が記録されていないか確認してください。
listener.ora の設定が正しいことを確認してください。
また、リスナー単体で起動・停止が正しく行えることを確認してください。リスナーリソースの監視を中断させると、手動による単体操作が可能になります。(参考 “3.2.4.1 Oracle データベースを停止させる必要がある場合”)
[ケース3] (Oracle RAC スケーラブル)
Oracle Clusterware が起動していない状態でリスナーリソースを含む userApplication を起動すると、リソースは ScriptTimeout に設定した時間(2.3.5 - 手順16 を参照してください)を過ぎるまで Wait状態となり、それを過ぎるとリソース異常となります。
以下は、各構成パターン別の対処方法です。
Oracle Clusterware と Oracle RAC インスタンスを異なる userApplication に登録する構成(2.3.3の構成パターンA)の場合
まずは、Oracle Clusterware が起動しているかどうかを確認してください。
以下のコマンド実行により、Oracle Clusterware が起動しているかどうかを確認することができます。
# su - <Gridユーザー> $ crsctl status resource
以下のメッセージが出力された場合は、Oracle Clusterware が停止している可能性があります。
CRS-0184: CRSデーモンと通信できません。
Oracle Clusterware が起動していない場合は、Oracle Clusterware が Oracle RAC インスタンスより先に起動する設定がされていない可能性があります。
Oracle RAC インスタンスリソースの PreOnlineScript スクリプトにOracle Clusterware リソースを起動するスクリプトが設定されているかどうかを確認してください(2.3.5 -手順10 - 注意 を参照してください)。
Oracle Clusterware と Oracle RAC インスタンスを同一の userApplication に登録する構成(2.3.3の構成パターンB)の場合
リスナーリソースの起動に失敗している可能性があります。
リスナーリソースの設定に誤りがないかどうかを確認してください(2.3.5)。
また、リスナーの設定を見直してください([ケース2]を参照してください)。
Oracle Clusterware をリソース登録しない構成(2.3.3の構成パターンC)の場合
Oracle Clusterware が起動しているかどうかを確認してください。
Oracle Clusterware が起動しているかどうかを、以下のコマンドを実行して確認してください。
# su - <Gridユーザー> $ crsctl status resource
以下のメッセージが出力された場合は、Oracle Clusterware が停止している可能性があります。
CRS-0184: CRSデーモンと通信できません。
リソースの Fault 状態を解除し(hvutil -c)、以下のコマンドで Oracle Clusterware を起動してください。
# <Gridユーザーの$ORACLE_HOME>/crsctl start crs
Oracle Clusterware を起動した後、userApplication を再度起動してください。