监听作用
oracle监听器是Oracle服务器软件的一个组件,它负责管理Oracle数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,由两个二进制文件组成:tnslsnr和lsnrctl。其中tsnlsnr就是监听器本身,它运行在数据库服务器端,lsnrctl是监听器控制程序,用于在服务器上或远程管理监听器。与监听器相关的还有两个配置文件:sqlnet.ora和listener.ora。tnslsnr启动时就会读取这两个配置文件中的信息,如端口号,数据库服务名。
简而言之,oracle监听主要用来监听客户端向数据库服务器端提出的连接请求,是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。当conn建立连接以后,listener就没有用了,不会再用到了。
lsnrctl监听命令详解
监听命令是lsnrctl
Oracle用户登陆终端,输入lsnrctl,如下:
shell
oracle@mmsg1:~> lsnrctl
LSNRCTL for Linux: Version 11.1.0.7.0 - Production on 11-8月 -2010 10:12:17
Copyright (c) 1991, 2008, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或扩展命令:
start stop status
services version reload
save_config trace spawn
change_password quit exit
set* show*
启动指定的监听
shell
LSNRCTL>start
或者
shell
oracle@mmsg1:~> lsnrctl start
停止指定的监听
shell
LSNRCTL>stop
或者
shell
oracle@mmsg1:~> lsnrctl stop
查看监听状态
shell
LSNRCTL>status
或者
shell
oracle@mmsg1:~> lsnrctl status
显示监听器的状态。Status命令显示监听器是不是活动的,日志与跟踪文件的位置,监听器已经持续运行了多长时间,以及监听器所监听的任务。
shell
LSNRCTL for Linux: Version 11.1.0.7.0 - Production on 11-8月 -2010 10:29:05
Copyright (c) 1991, 2008, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.137.49.167)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 11.1.0.7.0 - Production
启动日期 11-8月 -2010 08:56:47
正常运行时间 0 天 1 小时 32 分 18 秒
跟踪级别 err
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /opt/oracle/product/11g/network/admin/listener.ora
监听程序日志文件 /opt/oracle/diag/tnslsnr/mmsg1/listener/alert/log.xml
监听程序跟踪文件 /opt/oracle/diag/tnslsnr/mmsg1/listener/trace/ora_9828_47108097237856.trc
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.137.49.167)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "mmsgdb" 包含 1 个例程。
例程 "mmsgdb", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
oracle@mmsg1:~>
列举监听器的服务信息,比如这些服务是否有任何专用的预生成服务器进程或与之相关的调度进程,以及每个服务已有多少连接被接受或拒绝。这种方法用来检查一个监听器是否在监听一个指定服务。
service
列出服务的一个汇总表及为每个协议服务处理程序所建立和拒绝的连接信息个数。
shell
LSNRCTL> service
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.137.49.167)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1