今回はリスナの状態確認、起動、停止を実施します。

 

基本的にはシステム運用にあたってはシェルなどでインスタンスやリスナーの起動は自動化されるものですが、メンテナンス時は手動でのインスタンス起動停止やリスナーの起動停止が必要になる場合があります。今回はそういった場合を想定しつつ簡単な状態確認、起動、停止のコマンドを実践したいと思います。

 

 

・リスナー状態確認                             

状態確認の方法はいくつかありますが、今回はOSのプロセス観点とOracleとしてのサービス観点の2つで確認していきたいと思います。

 

 

上記の通り、リスナーが起動していることがわかります。

 

 

・リスナー停止、状態確認                         

それではリスナーを停止してみましょう。今回は「lsnrctl」ユーティリティ―を使用します。「lsnrctl stop リスナー名」でリスナーをストップできます。リスナー名ですが、デフォルトのリスナー名(LISTENER)の場合はリスナー名を省略して実行することも可能です。

 

 

リスナー停止後、リスナー状態を確認すると停止していることがわかります。

 

話が少し逸れますが、停止コマンドが成功したことにより停止したと判断する場合もあれば、停止コマンド実行後にプロセス起動確認まで行うことで停止したと判断する場合と色々あるかと思います。これは努めている企業や部署、担当するプロジェクトにもよるかと思います。

 

私が担当してきた案件では両方ありました。ただ、面倒でもプロセス確認まで行うことでより作業の品質を高めることができるかと思います。

 

・リスナー経由接続                              

リスナーが停止した状態でリスナー経由接続を行うとどうなるのか試してみましょう。

 

 

ご覧の通り「ORA-12541」が出力され、接続できませんでした。トラブルシューティング観点でいくと、「ORA-12541」が発生した場合は「リスナーが起動していないのでは?」と考え、リスナーの起動状態を確認する流れを作ることができます。

 

 

・リスナー起動、状態確認                          

停止したリスナーを起動してみましょう。コマンドは停止の時と同じく「Lsnrctl」ユーティリティーを使用します。

 

 

続いて状態確認を実施します。

 

 

これでリスナーが起動したことが確認できました。

 

 

・リスナー経由接続                              リスナーが起動したのでリスナー経由接続ができるか確認しましょう。

 

 

ご覧の通り無事に接続することができました。

 

 

・まとめ                                    

今回実施した手順は簡単なのですぐに覚えられるかと思います。

 

途中で記載した確認観点の話に関連しますが、運用中のシステムで停止したリスナーを起動させる場合、目的は色々考えられます。

 

・リスナーを起動させるのが目的か

・リスナーを起動させリスナー経由で接続できるようにするのが目的か

 

上記の2つでは違いますよね。目先の目的にだけ目を向けてしまうと、最終的な目的である「リスナー経由で接続できること」への意識がなくなり、いざ運用を再開したときにリスナー接続できないという事象が発生してしまうことになりかねません。そういったトラブルを未然に防ぐためにも、リスナーを停止⇒起動した場合は起動したことを確認するだけでなく、起動したリスナーが想定通り利用できること(リスナー経由接続が可能なこと)まで確認するのが良いかと思います。