原則として、Oracle Database ではリスナーを起動した後、インスタンスを起動する。
SQL*Plusを使用してデータベース・インスタンスを起動する前に、次の準備手順を実行する必要があります。
起動と停止
1. データベースが依存するOracleコンポーネントが起動されたことを確認します。
たとえば、データベースのデータがOracle Automatic Storage Management(Oracle ASM)のディスク・グループに格納される場合は、Oracle ASMインスタンスが実行中であること、および必要なディスク・グループがマウントされていることを確認してください。また、データベースが起動する前にOracle Netリスナーを起動することをお薦めします。
インスタンスを起動してからリスナーの起動を忘れたことに気が付いた場合、リスナーのみ起動すればよい(インスタンスの再起動は不要)。ただし、インスタンスとリスナーの接続まで最大60秒遅延するため、通常運用することはお勧めしない。
インスタンスの起動時にリスナーが実行していない場合、LREGプロセスはサービス情報を登録できません。LREGは、定期的にリスナーに接続を試みますが、リスナーが起動されてからLREGがリスナーに登録するまで、最大で60秒間遅延することがあります。リスナーの起動後即座にサービス登録を開始するには、SQL文ALTER SYSTEM REGISTERを使用します。この文は特に高可用性が求められる構成で有益です。
Oracle Netアーキテクチャの理解
ちなみに、Oracle Database 12c からリスナー登録をLREGがPMONに代わって行うようになった。
Oracle Database 12cまでのリリースでは、PMONがリスナー登録を実行していました。
プロセス・アーキテクチャ