oracle 共享服务连接静态注册服务
默认oracle的共享服务是注册到动态注册服务里面的
?
sys@PROD3> select * from v$version where rownum=1; BANNER ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production [oracle@server1 admin]$ cat listener.ora # listener.ora Network Configuration File: /home/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME =prod3.oracle.com) --这是静态注册服务 (ORACLE_HOME = /home/u01/app/oracle/product/11.2.0/db_1) (SID_NAME =PROD3) ) (SID_DESC = (GLOBAL_DBNAME = PLSExtProc) (ORACLE_HOME = /home/u01/app/oracle/product/11.2.0/db_1) (SID_NAME = PLSExtProc) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) )
?
设置共享服务器:
?
alter system set DISPATCHERS = '(PROTOCOL=TCP)(DISPATCHERS=3)'; alter system set shared_server_sessions=200 scope=both; alter system set max_dispatchers=10 scope=both; alter system set shared_servers=10 scope=both; alter system set max_shared_servers=30 scope=both; [oracle@server1 admin]$ lsnrctl services LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 20-APR-2015 15:46:17 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server1)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER Service "PROD3" has 1 instance(s). Instance "PROD3", status READY, has 4 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER "D001" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=57907)) "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=64757)) "D002" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=31428)) Service "prod3.oracle.com" has 1 instance(s). Instance "PROD3", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER The command completed successfully
--静态注册服务prod3.oracle.com里面没有dispatcher,动态注册prod3里面有
cat tnsnames.ora PROD3_S = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) ) (CONNECT_DATA = (server=shared) (SERVICE_NAME =prod3.oracle.com) ) ) PROD3 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server1)(PORT = 1521)) ) (CONNECT_DATA = (server=dedicated) (SERVICE_NAME =prod3.oracle.com) ) )
因为服务prod3.oracle.com 里面没有dispatcher,所以当你作为共享服务连接的时候会报错ORA-12523
[oracle@server1 admin]$ sqlplussys/oracle@prod3_s as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mon Apr 20 15:48:49 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-12523: TNS:l