▲ ▼ Oracle Net Listener (リスナー)
¦ Naming Methods (2) ¦ Naming Methods (1) ¦ Oracle Net テストツール ¦ Oracle Net Services ¦ Naming Methods (3) ¦ Oracle Net Listener (.. ¦
▲ listener.ora ファイル
リスナーは,クライアントからの接続要求をリスニングし,ユーザ・プロセスとサーバ・プロセス間の接続の橋渡しをするプロセスで,デフォルトのリスナー構成ファイルのファイル名は listener.ora。
listener.ora には,データベースを識別するプロトコル・アドレスが含まれている。このアドレスにより,リスナーがリスニングするプロトコル,およびその他のプロトコル固有の情報が定義される。
/* Code050201: listener.ora ファイルで,リスナーの情報が記述されている箇所 */ : (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=my-srv) (PORT=1521))) : ↑ TCP/IPプロトコルによる,ホスト名:my-srv / port 番号:1521 のリスナー
/* cf.: ローカル・ネーミングで使用する tnsnames.ora での接続要求 */ : (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=my-srv) (PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=foo.bar.com))) : ↑ クライアントからリスナーへ foo.bar.com というデータベース・サービスへ接続要求
▲ コマンドラインからのリスナーの起動 / 停止
Oracle リスナーは,サーバを再起動すると自動的に起動するように設定されているが,システムで予想外の状況が発生した場合や,手動でリスナーを停止した場合,コマンドラインで再起動する必要があり,次の文字列を入力する。※ リスナー名がデフォルトのまま (LISTENER) ならば,手動起動時にリスナー名を省略できる。下記の例では,リスナー "L1" を起動している。
/* Code050202: リスナーの起動/停止 (1) */ $lsnrctl ← リスナー制御ユーティリティの起動 : LSNRCTL> start L1 ← リスナー "L1" を手動起動 LSNRCTL> exit ← リスナー制御ユーティリティの停止 $
/* Code050203: リスナーの起動/停止 (2) */ $lsnrctl start L1 ← リスナー制御ユーティリティからリスナー "L1" の起動
リスナーの状態を確認したいときは,Enterprise Manager から確認するか,またはコマンドラインで次の文字列を入力することでも確認可能。
/* Code050204: リスナーの状態確認 */ $lsnrctl status ← リスナー制御ユーティリティからリスナーの状態確認
リスナーを終了したい場合,Enterprise Manager 上から行うか,またはコマンドラインで次の文字列を入力すれば停止可能。
/* Code050205: リスナーの停止 */ $lsnrctl stop L1 ← リスナー制御ユーティリティからリスナー "L1" の停止
▲ 静的 / 動的サービス登録
接続要求を受けたリスナーは Oracle サーバへの接続を仲介する働きをするが,リスナーが Oracle サーバの場所を把握していなくては仲介することができない。Oracle サーバをリスナーに認識させる手段として,以下のものが存在する。
- 静的サービス登録
- リスナー構成ファイル listener.ora に Oracle サーバの情報を予め記載しておき,リスナーが Oracle サーバの場所を認識する方法。
- 動的サービス登録
- Oracle サーバ起動時に,Oracle サーバがリスナーに認識させる方法。
初期化パラメータファイルの SERVICE_NAMES と INSTANCE_NAME パラメータ (Oracle サーバ情報) を,初期化パラメータファイルの LOCAL_LISTENER パラメータで指定した特定のリスナーに対して登録することで認識させる。