【Oracle】リスナーが起動しない

【Oracle】リスナーが起動しない苦労話

構築案件でOracleをLinuxサーバにインストールできなかった時のお話
構築はスケジュール気にせんかったらいろいろ検証できるのである意味至福の時

【現象】

netca(Oracle Net Configuration Assistant) を起動して oracleリスナー
を作成しようとするが、値を設定した後で以下の警告メッセージが出てリスナーを作成できない

【環境】

OS: Red Hat Enterprise Linux 5.3
DB: Oracle DB 11g

因みに oracle をインストールした端末は2台
1台は正常にリスナーを作成できたが、もう一台は下記の警告メッセージが出て上手く作成できないよう

【警告メッセージの内容】

このリスナーに提供する情報は、現在このコンピュータで別のソフトウェアにより使用されています。構成をこのまま続行できますが、競合を解決しないかぎり、このリスナーを起動できない可能性があります。このリスナーを続行しますか。

【リスナー作成手順】

1.Oracle Net Configuration Assistant を起動後、リスナーの構成を選択 → “次へ”を押下する

2.追加を選択し、次へを押下。リスナー名はデフォルトのまま(LISTENER) → “次へ”を押下する

3.プロトコルはデフォルト値のまま「TCP」 → “次へ”を押下する

4.標準ポート番号の「1521」を使用を選択 → 次へを押下する

5.「ほかのリスナーを追加しますか」に対し、”いいえ”を選択 → “次へ”を押下する
→ここで警告メッセージが表示される

6.「リスナーの構成が完了しました」とメッセージが表示 → “次へ”を押下 → “完了”を押下する

【切り分け】

“リスナーに提供されるリソースは別のソフトウェアにより使用されている”ということなので
以下のコマンドを実行し、調査する

1.リスナーが現時点で起動しているか確認
→”lsnrctr status” にて確認したが、エラーメッセージが出た
以下のメッセージから推察するにリスナー自体が立ち上がらないよう

TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00530: プロトコル・アダプタ・エラーです。

2.”netstat” によりポート”1521″が使用されていないか確認
→使用されていない

3.”rpm -qa” の実行結果を正常機と比較してパッケージの過不足分が無いか確認
→正常にリスナーが作成出来たサーバと差分なし

4.”chkconfig” の実行結果を正常機と比較してサービスに差分が無いか確認
→正常にリスナーが作成出来たサーバと差分なし

5.リスナーを作成する時にポート”1521″以外で作成する
(“netstat” や “/etc/service” で使用しているポート以外のもの)
→同様に警告メッセージが出る

6.リスナー正常サーバのリスナーの設定ファイル(listener.ora)をコピーして
リスナー異常サーバにて起動(この時のリスナーのパラメータは移動先、つまり、リスナー異常サーバのパラメータに合わせる)
→エラーメッセージが同様に出て起動できず

7.リスナーが起動できないサーバの「listener.ora」見てみる($ORACLE_HOME/network/admin/listener.ora)
→自ホスト名を記述するべきところにホスト名が記載されていない(hostname)を追記
リスナー起動
→”6”同様エラーメッセージが出て起動できず

8.正常な「listener.ora」と違い “hostname” の記述が無いので、ホスト名周りの調査
→/etc/hosts を確認

正常サーバ
127.0.0.1 hogehoge1 localhost.localdomain localhost
異常サーバ
127.0.0.1 localhost.localdomain localhost
Loopbackアドレス の設定に異常サーバの ホスト名が正常に設定されていない

9./etc/hosts に正規のhostname を設定する
(変更前)
127.0.0.1      localhost.localdomain localhost

(変更後)
127.0.0.1 hogehoge2 localhost.localdomain localhost

10.再度、【リスナー作成手順】に従い、リスナーを作成する
→警告メッセージは出さずにリスナーを作成出来た
→”lsnrctl start” にて正常にリスナーを起動することが出来た

11.”10”の時に作成したリスナーを起動する前に “etc/hosts” の loopbackアドレス の hogehoge2 を消し、リスナーを起動してみる
→リスナーが起動しなくなった

【結論】
Oracleリスナー を作成する時や listener起動時 は “/etc/hosts” の loopbackアドレスのホスト名を値として見ているよう

それにしても、この警告メッセージの意味がちょっと違くないかい?

今後は、listener.ora の中身も確認しなくては
 
 
 
<勉強のおともに>

国内最大級の品揃え【DMMブックス】

「Oracle」で検索してこんなにヒット!取り扱い品はかなり多いです
スマホから閲覧できるので、スキマ時間に閲覧することができます

oracle 検索ヒット数73件
oracle

タイトルとURLをコピーしました