Oracle DBA之监听的静态注册与动态注册


==【静态注册】== 
静态注册可通过图形化的net manager进行配置。 
net manager里面的配置选项与相关文件的对应关系: 
概要文件 <=> sqlnet.ora 
服务命名 <=> tnsnames.ora 
监听程序 <=> listener.ora 
 
静态注册在服务器端需要配置【监听程序(listener.ora)】,包括: 
监听位置(协议、主机、端口); 
数据库服务(全局数据库名:此处的全局数据库名对应于客户机端【服务命名(tnsnames.ora)】的服务名、Oracle主目录、SID); 
其它服务(我测试的时候发现不能留空,不过此处的程序名和SID随便填一些字符即可); 
追加一个监听程序需要通过netca进行配置,win下netca会创建一个服务。 

  1. listener.ora(服务器端)  
  2. SID_LIST_SL01 =  
  3.   (SID_LIST =  
  4.     (SID_DESC =  
  5.       (PROGRAM = xx)  
  6.       (SID_NAME = xx)  
  7.     )  
  8.     (SID_DESC =  
  9.       (GLOBAL_DBNAME = gdbn01)  
  10.       (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)  
  11.       (SID_NAME = ORCL)  
  12.     )  
  13.   )  
  14.   
  15. SL01 =  
  16.   (DESCRIPTION =  
  17.     (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))  
  18.   )  
  19.   
  20. tnsnames.ora(客户机端)  
  21. S01 =  
  22.   (DESCRIPTION =  
  23.     (ADDRESS_LIST =  
  24.       (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))  
  25.     )  
  26.     (CONNECT_DATA =  
  27.       (SERVICE_NAME = d01)  
  28.     )  
  29.   )  
  30. ==【动态注册】==  
  31. 要想PMON能动态注册非1521的端口,需要先将连接信息(protocal,host,port - 该连接信息须在【监听程序(listener.ora)】的监听位置中存在)www.bkjia.com配置到服务器端的tnsnames.ora,然后修改local_listener参数指向tnsnames.ora中的配置选项。  
  32. listener.ora(服务器端,SL01为通过netca新建的监听程序)  
  33. SL01 =  
  34.   (DESCRIPTION =  
  35.     (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))  
  36.   )  
  37.   
  38. tnsnames.ora(服务器端)  
  39. DL01 = (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))  
  40.   
  41. alter system set local_listener='DL01';  
  42. alter system set service_names='d01,d02,d03';  
  43.   
  44. 客户端只需在tnsnames.ora中填入相应的SERVICE_NAME即可:  
  45. tnsnames.ora(客户机端)  
  46. S01 =  
  47.   (DESCRIPTION =  
  48.     (ADDRESS_LIST =  
  49.       (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))  
  50.     )  
  51.     (CONNECT_DATA =  
  52.       (SERVICE_NAME = d01)  
  53.     )  
  54.   )  

要想PMON动态注册默认1521的端口则相对比较简单,不需要设置local_listener参数,www.bkjia.com自然也就不需要修改服务器端的tnsnames.ora文件,其它与动态注册非1521的端口步骤一样。

==【验证注册】== 

  1. sqlplus /@s01 as sysdba  
  2. select distinct sid from v$mystat;  
  3. select service_name from v$session where sid=:sid;   
  4. 查看当前session的服务名,  
  5. 如果返回的是SYS$USERS则表示当前session通过静态注册的服务名连接,  
  6. 否则返回动态注册的服务名。  

相关内容