Oracle listener lsnrctl

lsnrctl(Listener Control)是一家SQL*Net具,用于控制数据库listener,此工具提供了控制命令listener开端、停止,查看listener状态,更改listener配置参数。

lsnrctl简介

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

C:Documents and SettingsAdministrator>lsnrctl

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-9月 -2014 08:44:15

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

欢迎来到LSNRCTL, 请键入"help"以获得信息。

LSNRCTL>

使用help命令,你将看到全部可用的命令:

LSNRCTL> help
下面操作可用
星号 (*) 表示改动符或扩展命令:

start               stop                status
services            version             reload
save_config         trace               change_password
quit                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:oracleproduct10.2.0db_1
etworkadminlistener.ora
写入E:oracleproduct10.2.0db_1
etworkloglistener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))

正在连接到 (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 Authentication
SNMP                      OFF
监听程序參数文件          E:oracleproduct10.2.0db_1
etworkadminlistener.ora
监听程序日志文件          E:oracleproduct10.2.0db_1
etworkloglistener.log
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包括 1 个例程。
  例程 "PLSExtProc", 状态 UNKNOWN, 包括此服务的 1 个处理程序...
命令运行成功

到这里。listener启动成功。

trace文件

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

LSNRCTL> help trace
trace 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:oracleproduct10.2.0db_1
etwork	racelistener.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 Authentication
SNMP                      OFF
监听程序參数文件          E:oracleproduct10.2.0db_1
etworkadminlistener.ora
监听程序日志文件          E:oracleproduct10.2.0db_1
etworkloglistener.log
监听程序跟踪文件          E:oracleproduct10.2.0db_1
etwork	racelistener.trc
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
......

在“监听程序跟踪文件”中能够看到跟踪文件路径信息:E:oracleproduct10.2.0db_1 etwork racelistener.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 Authentication
SNMP                      OFF
监听程序參数文件          E:oracleproduct10.2.0db_1
etworkadminlistener.ora
监听程序日志文件          E:oracleproduct10.2.0db_1
etworkloglistener.log
监听程序跟踪文件          E:oracleproduct10.2.0db_1
etwork	racelylistener.trc
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
......
命令运行成功

能够看到跟踪文件名称已经更改。

为listener设置password保护

Oracle 10g后,Oracle本地用户关闭listener是不须要口令的。设置口令主要为了防止:
 1)本机的其它用户关闭listener;
 2)远程关闭listener。
以下是详细的方法。

LSNRCTL> change_password
Old 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:oracleproduct10.2.0db_1
etworkadminlistener.ora
旧的參数文件E:oracleproduct10.2.0db_1
etworkadminlistener.bak
命令运行成就

这是你的listener配置password保。

版权声明:本文博主原创文章。博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/lcchuguo/p/4847191.html