Oracle listener lsnrctl

来源:互联网 发布:我的淘宝账号怎么查看 编辑:程序博客网 时间:2024/06/06 05:21

lsnrctl(Listener Control)是一个SQL*Net工具,用于控制数据库listener,这个工具提供了命令用于控制listener的启动、停止,查看listener的状态,改变listener的配置参数等。

lsnrctl介绍

在命令行中输入lsnrctl,你将得到:

C:\Documents and Settings\Administrator>lsnrctlLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-9月 -2014 08:44:15Copyright (c) 1991, 2005, Oracle.  All rights reserved.欢迎来到LSNRCTL, 请键入"help"以获得信息。LSNRCTL>

使用help命令,你将看到所有可用的命令:

LSNRCTL> help以下操作可用星号 (*) 表示修改符或扩展命令:start               stop                statusservices            version             reloadsave_config         trace               change_passwordquit                exit                set*show*

下面是对这些命令的简单说明:

1)start:使用指定listener名启动listener,否则将启动LISTERNER。在Windows系统,listener也能冲控制中心的服务中启动;
2)stop:停止listener。Windows系统也能从控制中心的服务中停止;
3)status:提供listener的状态信息,包括启动时间、运行时间和trace级别;
4)services:打印所有可用的服务;
5)version:打印listener的版本信息;
6)reload:不停止和启动listener的情况下强行读取配置文件获取新配置;
7)save_config:为当前listener.ora文件创建一个备份,并保存改变到当前版本;
8)trace:设置trace级别,可用值:OFF,USER,ADMIN和SUPPORT;
9)dbsnmp_start:启动DBSNMP副代理;
10)dbsnmp_stop:停止DBSNMP副代理;
11)dbsnmp_status:打印DBSNMP副代理的状态;
12)change_password:为listener设置一个新的密码;
13)quit或exit:退出;
14)set:改变任何参数的值;
15)show:打印当前参数的设置。

lsnrctl应用实例

下面介绍几个lsnrctl的使用实例。

启动listener

当listener被停止后,连接数据库实例将导致ORA-12541异常,查看listener状态将得到:

LSNRCTL> status正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521))(CONNECT_DATA=(SID=lytest)(SERVER=DEDICATED)))TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误  TNS-00511: 无监听程序   32-bit Windows Error: 61: Unknown error

这时你可以启动listener:

LSNRCTL> start启动tnslsnr: 请稍候...TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production系统参数文件为E:\oracle\product\10.2.0\db_1\network\admin\listener.ora写入E:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 的 STATUS------------------------别名                      LISTENER版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动日期                  26-9月 -2014 09:33:40正常运行时间              0 天 0 小时 0 分 4 秒跟踪级别                  off安全性                    ON: Local OS AuthenticationSNMP                      OFF监听程序参数文件          E:\oracle\product\10.2.0\db_1\network\admin\listener.ora监听程序日志文件          E:\oracle\product\10.2.0\db_1\network\log\listener.log监听端点概要...  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))服务摘要..服务 "PLSExtProc" 包含 1 个例程。  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...命令执行成功

到这里,listener启动成功。

trace文件

listener的trace文件为我们提供了listener的工作过程信息,帮助我们定位listener的故障。下面是lsnrctl为trace提供的帮组信息:

LSNRCTL> help tracetrace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specified level

下面是对参数的解释:
 1)OFF:no trace output;
 2)USER:user trace information;
 3)ADMIN:administration trace information;
 4)SUPPORT:Oracle Support Services trace information
下面开启跟踪:

LSNRCTL> trace support正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))打开的跟踪文件: E:\oracle\product\10.2.0\db_1\network\trace\listener.trc命令执行成功

查看listener状态:

LSNRCTL> status正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 的 STATUS------------------------别名                      LISTENER版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动日期                  26-9月 -2014 10:35:06正常运行时间              0 天 0 小时 31 分 26 秒跟踪级别                  support安全性                    ON: Password or Local OS AuthenticationSNMP                      OFF监听程序参数文件          E:\oracle\product\10.2.0\db_1\network\admin\listener.ora监听程序日志文件          E:\oracle\product\10.2.0\db_1\network\log\listener.log监听程序跟踪文件          E:\oracle\product\10.2.0\db_1\network\trace\listener.trc监听端点概要...  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))......

在“监听程序跟踪文件”中可以看到跟踪文件路径信息:E:\oracle\product\10.2.0\db_1\network\trace\listener.trc。
可以通过下面的命令查询跟踪文件名:

LSNRCTL> show trc_file正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 参数 "trc_file" 设为 listener.trc命令执行成功

查看跟踪级别:

LSNRCTL> show trc_level正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 参数 "trc_level" 设为 support命令执行成功

修改跟踪文件名:

LSNRCTL> set trc_file 'lylistener.trc'正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 参数 "trc_file" 设为 lylistener.trc命令执行成功

注意修改跟踪文件名后跟踪将被关闭,需要重新设置(这里使用set设置,和使用trace一样的效果):

LSNRCTL> set trc_level user正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 参数 "trc_level" 设为 user命令执行成功

下面再次查看listener状态:

LSNRCTL> status正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 的 STATUS------------------------别名                      LISTENER版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动日期                  26-9月 -2014 10:35:06正常运行时间              2 天 0 小时 8 分 3 秒跟踪级别                  user安全性                    ON: Password or Local OS AuthenticationSNMP                      OFF监听程序参数文件          E:\oracle\product\10.2.0\db_1\network\admin\listener.ora监听程序日志文件          E:\oracle\product\10.2.0\db_1\network\log\listener.log监听程序跟踪文件          E:\oracle\product\10.2.0\db_1\network\trace\lylistener.trc监听端点概要...  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))......命令执行成功

可以看到跟踪文件名已经更改。

为listener设置密码保护

Oracle 10g后,Oracle本地用户关闭listener是不需要口令的,设置口令主要为了防止:
 1)本机的其他用户关闭listener;
 2)远程关闭listener。
下面是具体的方法。

LSNRCTL> change_passwordOld password:<输入原始密码>New password:<输入新密码>Reenter new password:<新密码确认>

执行成功后你看到:

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER的口令已更改命令执行成功

接下来,你需要保存配置:

LSNRCTL> save_config正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))保存的LISTENER配置参数。监听程序参数文件          E:\oracle\product\10.2.0\db_1\network\admin\listener.ora旧的参数文件E:\oracle\product\10.2.0\db_1\network\admin\listener.bak命令执行成功

这样就为你的listener设置了密码保护。

1 0