Oracleデータベースの動的登録とパラメーター...

Oracle8iバージョン以降、Oracleデータベースでは、アプリケーションに特別な要件がない場合、データベース監視を構成する必要はありません。Oracleは、このメソッドを動的登録と呼びます。いわゆる動的登録であるoracleは、PMONプロセスを介してパラメーターinstance_nameおよびservice_namesの内容に従って、ポート1521のデフォルトリスナーにoracleデータベースの情報を登録します。サーバー側のリスナーの数に関係なく、oracleはデフォルトでポート1521に登録されているリスナーです。つまり、他のポートのリスナーの場合、リモートクライアントから提供された情報を適切に識別したい場合は、次のようにする必要があります。構成、つまり静的登録。lsnrctlコマンドで、servicesコマンドを使用して登録が静的か動的かを確認できます。静的登録の場合、oracleによって表示されるサービスのステータスは不明です。動的登録の場合、サービスのステータスは準備完了です。ただし、ユーザーが動的に登録されたポートを変更したい場合は、これも可能です。これは、データベースのlocal_listenerパラメーターを設定することで実現できます。

以下の例を見てみましょう。まず、データベースのデフォルトでは、local_listenerパラメーターは空であり、設定されていません。
[オラクル@ ztj10管理] $ sqlplusを/ SYSDBAのよう
SQL * Plusを:リリース10.2.0.1.0プロダクション日4月に22午前3時03分44秒2012
著作権(C)1982、2005、Oracleの。  すべての著作権。
接続先:
Oracle Database 10g Enterprise Editionリリース10.2.0.1.0-
パーティショニング、OLAP、およびデータマイニングオプションを

使用した 本番 SQL> show parameter local_l
NAME                                                                TYPE              VALUE
-------------------- ---------------- ----------- ----------------------- -------
local_listener                                            string

SQL> exit
Oracle Database 10g Enterprise Editionリリース10.2.0.1.0から切断されました-
パーティショニング、OLAP、およびデータマイニングオプションを使用した

本番環境注册的服务、READY表示PL态注册。
[oracle @ ztj10 admin] $ lsnrctl
Linux用LSNRCTL:バージョン10.2.0.1.0- 2012年4月22日の製品版03:04:03
Copyright(c)1991、2005 、Oracle。  全著作権所有。
LSNRCTLへようこそ。詳細については、「help」と入力してください。

LSNRCTL> サービス
接続先(DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1)))
サービスの概要...
サービス「PLSExtProc」には1つのインスタンスがあります。
  インスタンス「PLSExtProc」、ステータスUNKNOWNには、このサービスのハンドラーが1つあります...
      ハンドラー:
          「DEDICATED」が確立されました:0拒否されました:0
                ローカルサーバー
サービス「db01」には1つのインスタンスがあります。
  インスタンス「db01」、ステータスREADY、
      ハンドラー:
          「DEDICATED」が確立されました:0拒否されました:0状態:準備完了
                ローカルサーバー
サービス「db01XDB」には1つのインスタンスがあります。
  インスタンス "db01"、ステータスREADYには、このサービスのハンドラーが1つあります...
      ハンドラー:
          "D000"が確立されました:0拒否:0現在:0 max:1022状態:準備完了
                DISPATCHER <マシン:ztj10、pid :21629>
                (ADDRESS =(PROTOCOL = tcp)(HOST = ztj10)(PORT = 46550))
サービス "db01_XPT"には1つのインスタンスがあります。
  インスタンス「db01」、ステータスREADYには、このサービスのハンドラーが1つあります...
      ハンドラー:
          「DEDICATED」が確立されました:0拒否されました:0状態:
               



LSNRCTL> services listener1
接続先(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1530)))
サービスの概要...
サービス "dbtest"には1つのインスタンスがあります。
  インスタンス "db01 "、ステータスUNKNOWN、このサービスのハンドラーが1つあります...
      ハンドラー:
          " DEDICATED "が確立されました:0拒否されました:0
                ローカルサーバー
コマンドが正常に完了しました

LSNRCTL> exit

上記の情報によると、次のことがわかります。 Oracleはリスナーリスナーをポート1521に動的に登録し、listener1は静的に登録され、リスナーはポート1530を使用します。次に、PMONプロセスがポート1530でリスナーに動的に登録できるように構成します。

moreコマンドを使用して、listener.oraファイルの赤い部分を取得します
[oracle @ ztj10 admin] $ more listener.ora
#listener.oraネットワーク構成ファイル:/u01/app/oracle/product/10.2.0/network/admin/listener.ora#Oracle
構成ツールによって生成されます。

LISTENER1 =
  (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1530)) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = / u01 / app / oracle / product / 10.2.0) (PROGRAM = extproc) SID_LIST_LISTENER1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = dbtest) (ORACLE_HOME = /u01/app/oracle/product/10.2.0)
   
 


 
     
         
         
         
     
 


 
     
         
         
          (SID_NAME = db01)
     
 

LISTENER =
  (DESCRIPTION_LIST =
      (DESCRIPTION =
          (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1))
     
      (DESCRIPTION =
          (ADDRESS =(PROTOCOL = TCP)(HOST = ztj10)(PORT = 1521 ))
     
 

赤い部分に示すように、tnsnames.oraファイルを編集し、取得したコンテンツを処理します
[oracle @ ztj10 admin] $ vi tnsnames.ora
#tnsnames.oraネットワーク構成ファイル:/ u01 / app / oracle / product /10.2.0/network/admin/tnsnames.ora#Oracle
構成ツールによって生成されます 。DB01

=
  (DESCRIPTION =
      (ADDRESS =(PROTOCOL = TCP)(HOST = ztj10)(PORT = 1521))
      (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = db01)
     
 

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
      (ADDRESS_LIST =
          (ADDRESS =(PROTOCOL = IPC) (KEY = EXTPROC1))
     
      (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
     

local_l =(DESCRIPTION = (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1530))(ADDRESS = (プロトコル= TCP)(ホスト= 192.168.1.100)(ポート= 1530)) "tnsnames.ora" 28L、627C書き込み
   
         



データベースを変更し、パラメーターlocal_listenerの値をtnsnames.oraファイルで作成したサービス名local_lに変更します
[oracle @ ztj10 admin] $ sqlplus / as sysdba
SQL * Plus:リリース10.2.0.1.0-日曜日の生産4月22日03 :06:07 2012
Copyright(c)  1982、2005、Oracle。Allrights reserved
接続先:
Oracle Database 10g Enterprise Editionリリース10.2.0.1.0-
パーティショニング、OLAP、およびデータマイニングオプションを

使用したプロダクション SQL> alter system set local_listener = local_l;
システムが変更されました

。SQL> システムレジスタが変更されました;    
システムが変更されました

。SQL> 終了
Oracle Database 10g Enterprise Editionリリース10.2.0.1.0から切断-プロダクション
パーティショニング、OLAP、およびデータマイニングオプションを使用

してリスナーで観察すると、listener1に動的に登録されている情報が表示されます。これで、PMON Oracleはポート1530に動的に登録され、ポート1521には動的登録情報がなくなりました。
[oracle @ ztj10 admin] $ lsnrctl
LSNRCTL for Linux:Version 10.2.0.1.0-Production on 22-APR-2012 03:06:27
Copyright(c)1991、2005 、Oracle。Allrightsreserved。LSNRCTL  へようこそ
詳細については、「ヘルプ」を参照してください

。LSNRCTL> サービス
接続先(DESCRIPTION =(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1)))
サービスの概要...
サービス「PLSExtProc」には1つのインスタンスがあります。
  インスタンス "PLSExtProc"、ステータスUNKNOWNには、このサービスのハンドラーが1つあります...
      ハンドラー:
          "DEDICATED"が確立されました:0拒否されました:0
                ローカルサーバー
コマンドが正常に完了しました


LSNRCTL> サービスlistener1
接続中(DESCRIPTION =( ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1530)))
サービスの概要...
サービス「db01」には1つのインスタンスがあります。
  インスタンス「db01」、ステータス READYに は、このサービスのハンドラが1つあります...
      ハンドラ:
          「DEDICATED」が確立されました:0が拒否されました:0状態:ready
                ローカルサーバー
サービス「db01XDB」に1つのインスタンスがあります。
  インスタンス「db01」、ステータス READY には、このサービスのハンドラーが1つあります...
      ハンドラー:
          「D000」が確立されました:0拒否:0現在:0最大:1022状態:準備完了
                DISPATCHER <マシン:ztj10、pid :21629>
                (ADDRESS =(PROTOCOL = tcp)(HOST = ztj10)(PORT = 46550))
サービス "db01_XPT"には1つのインスタンスがあります。
  インスタンス「db01」、ステータス READY には、このサービスのハンドラが1つあります...
      ハンドラ:
          「DEDICATED」が確立されました:0が拒否されました:0状態:ready
                ローカルサーバー
サービス「dbtest」に1つのインスタンスがあります。
  インスタンス「db01」、ステータスUNKNOWNには、このサービスのハンドラが1つあります。
     
          「DEDICATED」が確立されました:0拒否されました:0
                ローカルサーバー
コマンドは正常に完了しました

おすすめ

転載: blog.csdn.net/muzhiqian/article/details/52669927