ORACLEMASTER 備忘録4(2/3)
続き
リスナー(LISTENER)プロセス
Oracleソフトウェアのインストールと同時に初期データベースを作成した場合、OUIによって自動的にNetCA(Oracle Net Configuration Assistant)が起動され、TCP/IPリスニング・プロトコル・アドレスを含む「リスナー(LISTENER)」と呼ばれるプロセスがデータベースに対して構成される。
リスナープロセスの役割
リスナープロセス(以後リスナー)は“データベース側で動作しているプロセス”で、「クライアント側の接続要求」を待ち続けており、接続要求を受信するとその要求を目的のデータベースへ転送する。
データベースが接続要求を承認すると、接続要求が転送されたクライアントとデータベースとの間で接続が確立され、通信が可能な状態になる。
なお、リスナーは要求の転送後、再び接続要求待つ(リスニングする)状態に戻る。
つまりリスナーとはクライアントとデータベースの“仲介役”であり、リスナーが起動していないと、クライアントからデータベースに接続できない。
リスナーの制御
リスナーはデフォルトで自動起動するようにはなっておらず、コンピュータの再起動時などにリスナーを起動したり、起動中のリスナーを停止したりするには「リスナー起動ユーティリティ(lsnrctl)」を使用する。
リスナーを制御する場合、以下のコマンドを実行する
lsnrctl start [リスナー名]:リスナーの起動
lsnrctl stop [リスナー名]:リスナーの停止
lsnrctl status [リスナー名]:リスナー状態確認
lsnrctl services [リスナー名]:サポート対象のサービス確認
なお、起動するリスナーがデフォルトのリスナー名(「LISTENER」という名前)の場合は、リスナー名の指定は省略できる。(デフォルト以外の名前で複数のリスナーを同じデータベースサーバー上で構成することも可能)
リスナーの構成
リスナーの構成情報は以下の通り
・一つ以上の※プロトコルアドレス
・サポート対象のサービスに関する情報
・実行時の動作を制御するパラメータ
※IPアドレスからMACアドレスを調べる仕組み
これらの構成情報はデータベースサーバ側の$ORACLE_HOME/network/admin ディレクトリ配下にある「listener.ora」というファイルに格納される。
中身は以下の通り
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)①
(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)②
)
- リスナープロトコルはTCP/IP、ホスト名はlocalhost、リスニングしているポート番号は1521
- 外部プロシージャコール(C言語などで記述され、PL/SQLコードから呼び出される)用のプロセス用通信(IPC)のリスニングアドレス
クライアントの構成
クライアントがデータベースサーバ上のデータベースに接続するには、クライアント側で「接続するデータベースのホスト名」や「リスナー」などの接続情報を指定する必要がある。クライアント側でOracle Netを構成し、データベース側で接続要求待ちをしているリスナーと接続する。