监听服务和访问连接原理
端口号范围:1025~6500[oracle@oracle3 ~]$ lsnrctl --进入监听管理工具LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:13:20Copyright (c) 1991, 2005, Oracle. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> status --查看监听器状态Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 05-JUN-2014 09:38:27Uptime 0 days 1 hr. 34 min. 54 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1521))) --端口号默认是1521,也就是对外提供服务的端口号。Services Summary...Service "ORCL" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "ORCLXDB" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "ORCL_XPT" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...The command completed successfullySQL> conn system/orcl@ORCL33 --通过监听器访问已连接。ORCL33叫做网络服务名(连接描述符),配置文件在客户端,服务器上不需要的。F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora --客户端的路径.网络服务名配置文件文件中:ORCL33 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.3)(PORT = 1521)) --oracle server的IP,端口号,数据库名字 ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) )添加连接串两种方法:1、通过图形界面 2、直接修改这个文件本地直接访问,不需要经过监听器,宿主机访问是必须通过监听器的。用xmanager连接:SQL> conn system/orcl --本机访问Connected.SQL> conn system/orcl@ORCL --本机通过监听器访问Connected.将监听器停止[oracle@oracle3 admin]$ lsnrctl stopLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:28:28Copyright (c) 1991, 2005, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))The command completed successfullySQL> conn system/orcl --本机访问不受影响Connected.SQL> conn system/orcl@ORCL --通过监听器访问不能连接ERROR:ORA-12541: TNS:no listenerWarning: You are no longer connected to ORACLE.SQL> conn system/orcl@ORCL2567ERROR:ORA-12541: TNS: 无监听程序警告: 您不再连接到 ORACLE。启动监听后查看状态:[oracle@oracle3 admin]$ lsnrctl statusLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:31:39Copyright (c) 1991, 2005, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 05-JUN-2014 11:30:50Uptime 0 days 0 hr. 0 min. 49 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1521)))Services Summary...Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully --此时还是不能远端访问的,因为数据库还没监听到此时连接:SQL> conn system/orcl@ORCL2567ERROR:ORA-12541: TNS: 无监听程序警告: 您不再连接到 ORACLE。[oracle@oracle3 admin]$ lsnrctl statusLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:31:46Copyright (c) 1991, 2005, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 05-JUN-2014 11:30:50Uptime 0 days 0 hr. 0 min. 55 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/oracle/product/10.2.0/db_1/network/log/listener.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle3)(PORT=1521)))Services Summary...Service "ORCL" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service... --数据库被监听到Service "ORCLXDB" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "ORCL_XPT" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...The command completed successfullySQL> conn system/orcl@ORCL2567 --此时远端访问正常已连接。简单的检测方法:C:\Users\Administrator>tnsping ORCL2567 --ping网路描述符是否是可以访问通的TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 05-6月 -2014 11:38:41Copyright (c) 1997, 2005, Oracle. All rights reserved.已使用的参数文件:F:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.3.3)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))OK (30 毫秒)[oracle@oracle3 admin]$ tnsping ORCL1TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 05-JUN-2014 11:41:09Copyright (c) 1997, 2005, Oracle. All rights reserved.Used parameter files:/u01/oracle/product/10.2.0/db_1/network/admin/sqlnet.oraTNS-03505: Failed to resolve name --ping不通的表现