[20190115]关于共享服务与专用模式.txt --//前几天看https://www.cnblogs.com/kerrycode/p/10252951.html的链接,原来许多不理解的问题一下理解了. --//关于配置共享服务的问题,最好使用单独的服务名,不要一个服务名支持两种模式,这样很容易出现一些怪问题. --//我在这方面吃了许多苦头. --//有一些配置网络连接串,选择缺省连接模式,这样就没有SERVER = SHARED,SERVER = DEDICATED这些内容. --//而如果服务名支持两种模式,在没有明确配置的情况下,优先选择共享模式. --//另外共享服务模式关闭直接路径读,异步IO,支持并行模式.参考链接: http://blog.itpub.net/267265/viewspace-2151928/ http://blog.itpub.net/267265/viewspace-2151913/ http://blog.itpub.net/267265/viewspace-2130292/ --//如何区分这些服务支持那些模式,哪一些是静态注册的服务我自己也是很混乱的.通过我测试环境说明. 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------- -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production --//首先关闭数据库重启监听. --//我的监听文件配置如下: $ grep -v "^#" listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SDU=32767) (GLOBAL_DBNAME = booK123) (ARGV0=myapp0) (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1) (SID_NAME=book) ) ) SID_LIST_LISTENERz = (SID_LIST = (SID_DESC = (SDU=32767) (GLOBAL_DBNAME = booK123) (ARGV0=myapp0) (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1) (SID_NAME=book) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(ARGV0=LLLLLL)(HOST = 0.0.0.0)(PORT = 1521)(ARGV0=KKKKK)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) LISTENERz = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SECURE_REGISTER_LISTENER = (TCP) ADR_BASE_LISTENER = /u01/app/oracle DIAG_ADR_ENABLED_LISTENER=OFF USE_NS_PROBES_FOR_DCD=true INBOUND_CONNECT_TIMEOUT_LISTENER=10 $ lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 11:01:46 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(ARGV0=LLLLLL)(HOST=0.0.0.0)(PORT=1521)(ARGV0=KKKKK))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 15-JAN-2019 10:52:18 Uptime 0 days 0 hr. 9 min. 28 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/product/11.2.0.4/dbhome_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully --//有1个服务booK123,这是1个静态注册服务名,状态UNKNOWN.因为静态注册服务名根本不知道实例名为book的数据库是否存在. $ lsnrctl services LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 11:02:11 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(ARGV0=LLLLLL)(HOST=0.0.0.0)(PORT=1521)(ARGV0=KKKKK))) Services Summary... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER The command completed successfully --//这个服务名仅仅支持DEDICATED模式. --//实际上这个时候是通过通过服务名book123远程连接数据库的. d:\>sqlplus sys@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.78)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=book123))) as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Jan 15 11:12:45 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter password: Connected to an idle instance. --//注意一点这样写连接串里面不能有空格.这样可以实现远程启动数据库.这也是为什么配置dg要求配置静态注册服务名的主要原因. --//注:如果连接串里面有空格,要使用双引号,避免作为参数解析. 2.启动数据库(nomount): SYS@book> startup nomount ORACLE instance started. Total System Global Area 643084288 bytes Fixed Size 2255872 bytes Variable Size 205521920 bytes Database Buffers 427819008 bytes Redo Buffers 7487488 bytes --//nomount仅仅启动实例. SYS@book> show parameter service_name NAME TYPE VALUE ------------- ------ --------------- service_names string BOOK, BOOKSHARE SYS@book> show parameter dispatchers NAME TYPE VALUE ----------- ------ ------------------------------------- dispatchers string (PROTOCOL=TCP) (SERVICE=book,bookXDB) $ lsnrctl status .... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status BLOCKED, has 1 handler(s) for this service... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status BLOCKED, has 1 handler(s) for this service... The command completed successfully $ lsnrctl services ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status BLOCKED, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:2 refused:0 LOCAL SERVER Service "book" has 1 instance(s). Instance "book", status BLOCKED, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER The command completed successfully --//增加2个服务名,BOOKSHARE,book,状态是BLOCKED.因为这个时候数据库还没有到mount状态. --//注意这个时候并没有启动共享服务book,bookxdb.虽然s000,d000进程已经启动. $ ps -ef | egrep 's00[0]|d00[0]' oracle 49808 1 0 11:16 ? 00:00:00 ora_d000_book oracle 49810 1 0 11:16 ? 00:00:00 ora_s000_book --//这个时候远程客户端无法使用服务名BOOKSHARE,book.不过有一个方法绕过.加入(UR=A),这个相当于一个后门. d:\>sqlplus sys@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.78)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(UR=A)(SERVICE_NAME=book))) as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Jan 15 11:18:54 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options --//这样写sqlplus sys@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.78)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(UR=A)(SERVICE_NAME=bookshare))) as sysdba --//不写(UR=A)报如下错误. --//ORA-12528: TNS:listener: all appropriate instances are blocking new connections 3.启动数据库(mount): SYS@book> alter database mount ; Database altered. $ lsnrctl status ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl service ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:3 refused:0 state:ready LOCAL SERVER Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:3 refused:0 LOCAL SERVER Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:3 refused:0 state:ready LOCAL SERVER The command completed successfully --//与nomount状态很相似,仅仅服务名BOOKSHARE,book,状态是READY.也就是这个时候远程客户端可以连接数据库,连接串可以不用 --//(UR=A),当然限制sys用户.因为数据库还没有起来. --//并且3个服务BOOKSHARE,book,booK123仅仅支持专用服务模式. d:\> sqlplus sys@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.78)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=book))) as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Jan 15 11:29:11 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options --//sqlplus sys@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.78)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=bookshare))) as sysdba --//一样ok. 4.启动数据库(open): SYS@book> alter database open ; Database altered. $ lsnrctl status ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 2 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully --//服务名增加了bookXDB. $ lsnrctl services .. Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready LOCAL SERVER Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:4 refused:0 LOCAL SERVER Service "book" has 1 instance(s). Instance "book", status READY, has 2 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready LOCAL SERVER "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) The command completed successfully --//可以注意一个细节,bookxdb仅仅支持共享服务模式.而book服务名增加了共享服务模式. 5.继续测试: SYS@book> alter system set dispatchers='(PROTOCOL=TCP) (SERVICE=bookXDB,bookz,book123)' scope=memory; System altered. SYS@book> alter system register ; System altered. --//给共享服务器模式增加bookz,book123服务名.并且取消了服务名book的共享服务模式. $ lsnrctl service .. Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready LOCAL SERVER Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:4 refused:0 LOCAL SERVER Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LOCAL SERVER Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) Service "bookz" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) The command completed successfully --//可以发现服务名book123,bookz增加支持共享服务模式,而服务名book的共享服务模式被取消了,仅仅支持专用连接模式. SYS@book> alter system set dispatchers='(PROTOCOL=TCP) (SERVICE=bookXDB)' scope=memory; System altered. $ lsnrctl status ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Instance "book", status READY, has 0 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookz" has 1 instance(s). Instance "book", status READY, has 0 handler(s) for this service... The command completed successfully --//注意看book123服务名现在出现两种状态,status=UNKNOWN,READY.实际上我已经取消了book123的共享服务模式,但是 --//这样操作无法删除book123动态注册的服务名,包括bookz也一样. --//注意对应的handler(s)=0. $ lsnrctl service ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready LOCAL SERVER Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:4 refused:0 LOCAL SERVER Instance "book", status READY, has 0 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:6 refused:0 state:ready LOCAL SERVER Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) Service "bookz" has 1 instance(s). Instance "book", status READY, has 0 handler(s) for this service... --//可以发现当前仅仅bookxdb支持共享服务模式.其它服务名支持专用服务模式(除了bookz服务名). --//另外可以发现bookz服务还存在,但是2种模式都不支持.视乎oracle无法删除bookz这个服务. --//bookz 对应的handler(s)=0. SYS@book> exec dbms_service.stop_service('bookz'); BEGIN dbms_service.stop_service('bookz'); END; * ERROR at line 1: ORA-44311: service bookz not running ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.DBMS_SERVICE", line 466 ORA-06512: at "SYS.DBMS_SERVICE", line 400 ORA-06512: at line 1 SYS@book> alter system set service_names=BOOK,BOOKSHARE,bookz scope=memory; System altered. $ lsnrctl status .. Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Instance "book", status READY, has 0 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully SYS@book> alter system set service_names=BOOK,BOOKSHARE scope=memory; System altered. $ lsnrctl status ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Instance "book", status READY, has 0 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl services ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER Service "booK123" has 2 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:4 refused:0 LOCAL SERVER Instance "book", status READY, has 0 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) The command completed successfully --//这样才能删除bookz服务名. SYS@book> alter system set service_names=BOOK,BOOKSHARE,book123 scope=memory; System altered. SYS@book> alter system set service_names=BOOK,BOOKSHARE scope=memory; System altered. $ lsnrctl status ... Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully --//服务名book123的动态注册才会删除. 6.再启动一个监听服务名看看. --//我前面的监听配置还配置了一个监听服务名LISTENERz.缺省如果你启动监听服务执行lsnrctl start,启动的是缺省的 --//listener监听.我以前遇到一个问题就是对方配置一个特殊监听服务名,导致我执行lsnrctl start,client段无法连接数据库. $ grep -v "^#" listener.ora ... SID_LIST_LISTENERz = (SID_LIST = (SID_DESC = (SDU=32767) (GLOBAL_DBNAME = booK123) (ARGV0=myapp0) (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1) (SID_NAME=book) ) ) .. LISTENERz = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.78)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) $ netstat -nap | grep :1521 | grep tn[s] (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN 49554/tnslsnr tcp 0 0 192.168.100.78:1521 192.168.100.78:22140 ESTABLISHED 49554/tnslsnr $ lsnrctl start listenerz LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 12:12:30 Copyright (c) 1991, 2013, Oracle. All rights reserved. TNS-01106: Listener using listener name LISTENER has already been started --//无法启动. $ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 12:12:55 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(ARGV0=LLLLLL)(HOST=0.0.0.0)(PORT=1521)(ARGV0=KKKKK))) The command completed successfully $ lsnrctl start listenerz LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 12:13:00 Copyright (c) 1991, 2013, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.4.0 - Production System parameter file is /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/xxxxxyyy/listenerz/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.78)(PORT=1522))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias listenerz Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 15-JAN-2019 12:13:00 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/xxxxxyyy/listenerz/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.78)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully $ lsnrctl services listenerz LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 12:17:22 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522))) Services Summary... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER The command completed successfully $ netstat -nap | grep :1522 | grep tn[s] (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 192.168.100.78:1522 0.0.0.0:* LISTEN 50219/tnslsnr tcp 0 0 127.0.0.1:1522 0.0.0.0:* LISTEN 50219/tnslsnr --//可以发现其它服务名book,bookshare没有动态注册成功.因为pmon进程缺省注册使用1521端口. $ ps -ef | grep pmo[n] oracle 49772 1 0 11:16 ? 00:00:02 ora_pmon_book $ strace -f -p 49772 -e network Process 49772 attached - interrupt to quit getsockopt(0, SOL_SOCKET, SO_SNDBUF, 0x7fffedf9fabc, 0x7fffedf9fab8) = -1 ENOTSOCK (Socket operation on non-socket) getsockopt(0, SOL_SOCKET, SO_RCVBUF, 0x7fffedf9fabc, 0x7fffedf9fab8) = -1 ENOTSOCK (Socket operation on non-socket) socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 10 connect(10, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr("192.168.100.78")}, 16) = -1 EINPROGRESS (Operation now in progress) getsockopt(10, SOL_SOCKET, SO_SNDBUF, [-1298728016444112896], [4]) = 0 getsockopt(10, SOL_SOCKET, SO_RCVBUF, [-1298728016444041900], [4]) = 0 getsockname(10, {sa_family=AF_INET, sin_port=htons(25054), sin_addr=inet_addr("192.168.100.78")}, [16]) = 0 ^CProcess 49772 detached --//因为启动监听使用1522,无法动态注册成功.必须修改参数local_listener.参考链接: --//http://blog.itpub.net/267265/viewspace-2083455/=>[20160418]修改oracle监听端口.txt SYS@book> alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.78)(PORT=1522))' scope=memory ; System altered. SYS@book> alter system register; System altered. $ strace -f -p 49772 -e network Process 49772 attached - interrupt to quit getsockopt(0, SOL_SOCKET, SO_SNDBUF, 0x7fffedf9fabc, 0x7fffedf9fab8) = -1 ENOTSOCK (Socket operation on non-socket) getsockopt(0, SOL_SOCKET, SO_RCVBUF, 0x7fffedf9fabc, 0x7fffedf9fab8) = -1 ENOTSOCK (Socket operation on non-socket) socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 10 connect(10, {sa_family=AF_INET, sin_port=htons(1522), sin_addr=inet_addr("192.168.100.78")}, 16) = -1 EINPROGRESS (Operation now in progress) getsockopt(10, SOL_SOCKET, SO_SNDBUF, [-1298728016444077260], [4]) = 0 getsockopt(10, SOL_SOCKET, SO_RCVBUF, [-1298728016443998016], [4]) = 0 getsockname(10, {sa_family=AF_INET, sin_port=htons(3098), sin_addr=inet_addr("192.168.100.78")}, [16]) = 0 ^CProcess 49772 detached SYS@book> show parameter service NAME TYPE VALUE ------------- ------ --------------- service_names string BOOK, BOOKSHARE SYS@book> show parameter dispatchers NAME TYPE VALUE ----------- ------ -------------------------------- dispatchers string (PROTOCOL=TCP) (SERVICE=bookXDB) $ lsnrctl status listenerz LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 15:34:46 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias listenerz Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 15-JAN-2019 15:32:05 Uptime 0 days 0 hr. 2 min. 40 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/xxxxxyyy/listenerz/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.78)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... The command completed successfully $ lsnrctl services listenerz LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-JAN-2019 14:58:50 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522))) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Services Summary... Service "BOOKSHARE" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER Service "booK123" has 1 instance(s). Instance "book", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER Service "book" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 state:ready LOCAL SERVER Service "bookXDB" has 1 instance(s). Instance "book", status READY, has 1 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: xxxxxyyy, pid: 49808> (ADDRESS=(PROTOCOL=tcp)(HOST=xxxxxyyy.com)(PORT=26919)) The command completed successfully --//这里仅仅看到127.0.0.1的IP.,不过远程能正常登录数据库.
[20190115]关于共享服务与专用模式.txt
来源:这里教程网
时间:2026-03-03 12:51:59
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 重做日志管理
重做日志管理
26-03-03 - null值在oracle和mysql中的差异
null值在oracle和mysql中的差异
26-03-03 - oracle RAC 11g for linux 7的那些坑
oracle RAC 11g for linux 7的那些坑
26-03-03 - ORACLE 数据库服务器业务高峰期高危动作之IOSCAN(HPUNIX)
- Reasons for incorrect gl balance
Reasons for incorrect gl balance
26-03-03 - Oracle 12.2 学习系列(一)CDB多租户容器数据库
Oracle 12.2 学习系列(一)CDB多租户容器数据库
26-03-03 - 判断standby日志是否同步primary
判断standby日志是否同步primary
26-03-03 - 问鼎大师我的OCM之路——程向智
问鼎大师我的OCM之路——程向智
26-03-03 - oracle、mysql数据库窗口下执行操作系统命令
oracle、mysql数据库窗口下执行操作系统命令
26-03-03 - 由db_domain引起的数据库连接异常
由db_domain引起的数据库连接异常
26-03-03
