监听服务管理

如果你想管理(启动、关闭等)ORACLE数据库的监听服务,在Windows/Linux平台,你都可以通过lsnrctl命令来实现,下面

我们主要讲一下如何用lsnrctl命令来管理监听服务(我在两台数据库(不同平台、不同版本)分别操作,暂且叫为服务器A、

服务器B):

1:查看服务监听命令的详细帮助信息

服务器A:Red Hat Enterprise Linux Server release 6.0 (Santiago) ORACLE 10

[oracle@DB-Server ~]$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 04-JUL-2012 12:10:13

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> help

The following operations are available

An asterisk (*) denotes a modifier or extended command:

start stop status

services version reload

save_config trace spawn

change_password quit exit

set* show*

服务器B:WINDOW平台 ORACLE 11

LSNRCTL> help

以下操作可用

星号 (*) 表示修改符或扩展命令:

start stop status

services version reload

save_config trace change_password

quit exit set*

show*

对比10g与11g,可以发现11g少了spawn命令


参数


参数功能描述


start


启动指定的监听服务:start [<listener_name>] : start listener


stop


停止指定的监听服务:stop [<listener_name>] : stop listener


status


查看指定的监听服务状态:status [<listener_name>] : get the status of listener


services


列举出服务的一个汇总表及为每个协议服务处理程序所建立和拒绝的连接信息个数

:service [<listener_name>] : get the service information of the listener


version


查看监听服务版本信息:version [<listener_name>] : get the version information of the listener


reload


重启监听服务:reload [<listener_name>] : reload the parameter files and SIDs


save_config


保存修改监听配置的信息到参数文件:save_config [<listener_name>]: saves configuration changes to parameter file


trace


打开监听器的跟踪特性:trace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specified level


spawn


产生一个以listener.ora文件中的别名运行的程序:

spawn [<listener_name>] <spawn_alias> [<(ARGUMENTS='arg0, arg1,...')>]


change_password


修改关闭监听服务的秘密:change_password [<listener_name>]: changes the password of the listener


quit


退出tnsrctl命令:quit | exit : exit LSNRCTL


exit


退出tnsrctl命令:quit | exit : exit LSNRCTL


set


设置监听服务的配置


show


显示一些参数配置信息

2:启动指定的监听服务

服务器A:

LSNRCTL> start LISTENER

Starting /database/product/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /database/product/dbhome_1/network/admin/listener.ora

Log messages written to /database/product/dbhome_1/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date 05-JUL-2012 10:38:14

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /database/product/dbhome_1/network/admin/listener.ora

Listener Log File /database/product/dbhome_1/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server)(PORT=1521)))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "WGODS" has 1 instance(s).

Instance "WGODS", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

服务器B:

LSNRCTL> start LISTENER

启动tnslsnr: 请稍候...

TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production

系统参数文件为E:\app\kerry\product\11.2.0\dbhome_1\network\admin\listener.ora

写入e:\app\kerry\diag\tnslsnr\kerry-PC\listener\alert\log.xml的日志信息

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

LISTENER 的 STATUS

------------------------

别名 LISTENER

版本 TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production

启动日期 05-7月 -2012 10:37:49

正常运行时间 0 天 0 小时 0 分 5 秒

跟踪级别 off

安全性 ON: Local OS Authentication

SNMP OFF

监听程序参数文件 E:\app\kerry\product\11.2.0\dbhome_1\network\admin\listener.ora

监听程序日志文件 e:\app\kerry\diag\tnslsnr\kerry-PC\listener\alert\log.xml

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

服务摘要..

服务 "CLRExtProc" 包含 1 个实例。

实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

服务 "orcl.20.32.106" 包含 1 个实例。

实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

命令执行成功

LSNRCTL> top

NL-00853: 未定义的 命令 "top"。请尝试 "help"

3:停止监听服务

服务器A:

LSNRCTL> stop

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

The command completed successfully

服务器B:

LSNRCTL> stop

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

命令执行成功

4:查看监听服务状态

服务器A:

服务器B:

5:查看监听服务版本

服务器A:

LSNRCTL> version

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server)(PORT=1521))

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

TNS for Linux: Version 10.2.0.1.0 - Production

Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 10.2.0.1.0 - Production

Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production

TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production,,

The command completed successfully

服务器B:

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Production

TNS for 32-bit Windows: Version 11.2.0.1.0 - Production

Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 11.2.0.1.0 - Production

Windows NT Named Pipes NT Protocol Adapter for 32-bit Windows: Version 11.2.0.1.0 - Production

Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.2.0.1.0 - Production,,

命令执行成功

6:查看监听服务信息

服务器A:

LSNRCTL> service

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:0 refused:0

LOCAL SERVER

Service "WGODS" has 2 instance(s).

Instance "WGODS", status UNKNOWN, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:0 refused:0

LOCAL SERVER

Instance "wgods", status READY, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:1 refused:0 state:ready

LOCAL SERVER

Service "wgodsXDB" has 1 instance(s).

Instance "wgods", status READY, has 1 handler(s) for this service...

Handler(s):

"D000" established:0 refused:0 current:0 max:1022 state:ready

DISPATCHER <machine: DB-Server, pid: 31049>

(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Server)(PORT=34792))

Service "wgods_XPT" has 1 instance(s).

Instance "wgods", status READY, has 1 handler(s) for this service...

Handler(s):

"DEDICATED" established:1 refused:0 state:ready

LOCAL SERVER

The command completed successfully

服务器B:

LSNRCTL> services

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

服务摘要..

服务 "CLRExtProc" 包含 1 个实例。

实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

处理程序:

"DEDICATED" 已建立:0 已被拒绝:0

LOCAL SERVER

服务 "orcl.20.32.106" 包含 1 个实例。

实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

处理程序:

"DEDICATED" 已建立:0 已被拒绝:0

LOCAL SERVER

命令执行成功

7:重启监听服务:此命令可以替代lsnrctl stop 和lsnrctl start,此命令可以在不用关闭监听服务命令的情况下,重新

读取listener.ora的配置,适合在修改监听服务文件后使用。

服务器A:

LSNRCTL> reload

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

The command completed successfully

服务器B:

LSNRCTL> reload

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

命令执行成功

8:修改、设置监听服务密码

如果没有设置监听服务密码,则默认口令为空.

LSNRCTL> change_password

Old password:

New password: ******

Reenter new password: ******

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

LISTENER的口令已更改

命令执行成功

LSNRCTL> change_password

Old password:

New password:

Reenter new password:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

Password changed for LISTENER

The command completed successfully

LSNRCTL> set password

Password:

The command completed successfully

LSNRCTL> save_config

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

Saved LISTENER configuration parameters.

Listener Parameter File /database/product/dbhome_1/network/admin/listener.ora

Old Parameter File /database/product/dbhome_1/network/admin/listener.bak

The command completed successfully

此时,你检查listener.ora,你会发现文件里面多了下面加密的密码

将该项删除后,保存listener.ora文件,即可取消lsnrctl的加密密码;

#----ADDED BY TNSLSNR 18-DEC-2012 17:28:17---

PASSWORDS_LISTENER = 1BAF8FABBD6810D3

#--------------------------------------------

这个设置在ORACLE 9i版本中有效,在10g版本中,即使设置密码后,依然可以不用输入密码停止监听服务,
因为In Oracle 10, the TNSListener is secure out of the box and there
should not be a need to set a listener password as in older versions of
the Oracle listener.

Oracle10g以后,设置
Listener密码已经不是安全检查的必要条件了,因为默认在10g里面除了启动监听的用户之外,其它用户都无法停止Listener(还有另外一些
lsnrctl的命令也同样被禁止了,比如trace,
reload等),即使Listener没有设置密码。在默认情况下,启动Listener或者使用lsnrctl
status命令查看监听状态,可以看到:Security ON: Password OR Local OS
Authentication这表明Listener的安全机制使用了Password方式或者Local OS
Authentication方式,在这种状态下,即使是设置了监听密码,对于启动监听的user来说,也仍然是不需要任何密码就可以停止监听的。

如果想去除这种安全机制,你可以在listener.ora下加上LOCAL_OS_AUTHENTICATION_[listener name]=OFF

[oracle@DB-Server admin]$ vi listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /database/product/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = WGODS)

(ORACLE_HOME = /database/product/dbhome_1)

(SID_NAME = wgods)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = DB-Server)(PORT = 1521))

)

)

LOCAL_OS_AUTHENTICATION_LISTENER=OFF

#----ADDED BY TNSLSNR 18-DEC-2012 17:28:17---

PASSWORDS_LISTENER = 1BAF8FABBD6810D3

"listener.ora" 33L, 779C written

[oracle@DB-Server admin]$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 19-DEC-2012 18:40:19

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> reload

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

The command completed successfully

LSNRCTL> stop

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

TNS-01169: The listener has not recognized the password

LSNRCTL> set password --输入密码,停止监听服务

Password:

The command completed successfully

LSNRCTL> stop

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))

The command completed successfully

9:set命令配置


参数


描叙


set password

 

set rawmode


设置rawmode


set displaymode


把lsnrctl工具的显示模式设置成RAW、COMPACT、NORMAL或VERBOSE


set trc_file


设置监听跟踪文件的名称


set trc_directory


设置监听器跟踪目录的名称


set trc_level


把跟踪级别设置为OFF、USER、ADMIN、SUPPORT模式


set log_file


显示或设置日志文件


set log_directory


设置日志目录位置


set log_status


设置是否为该监听器打开日志特性


set current_listener


设置当前监听器为指定监听器


set inbound_connect_timeout


设置参数指定的时间,在几秒钟内为客户完成网络连接已经建立后,其连接请求的监听


set startup_waittime


设置监听器等待响应lsnrctl 命令行工具中的一条STATUS命令的时间长度


set save_config_on_stop


在退出lsnrctl工具时保存对listener.ora文件的修改


set dynamic_registration


使用的DYNAMIC_REGISTRATION_listener_name的参数启用或禁用动态注册。当设置为on,听者接受动态登记;设置为关闭时,听者拒绝动态注册。静态注册不受影响


set enable_global_dynamic_endpoint

 

LSNRCTL> set

The following operations are available after set

An asterisk (*) denotes a modifier or extended command:

password rawmode

displaymode trc_file

trc_directory trc_level

log_file log_directory

log_status current_listener

inbound_connect_timeout startup_waittime

save_config_on_stop

LSNRCTL> help set password

set password : set the password for subsequent calls

LSNRCTL> help set current_listener

set|show current_listener [<listener_name>]: sets|shows current listener

9:保存配置信息:修改一些配置后,可以通过save_config保存到配置文件

LSNRCTL> save_config

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

保存的LISTENER配置参数。

监听程序参数文件 E:\app\kerry\product\11.2.0\dbhome_1\network\admin\listener.ora

旧的参数文件E:\app\kerry\product\11.2.0\dbhome_1\network\admin\listener.bak

命令执行成功

LSNRCTL>

10:设置监听级别

11:spawn

12:退出监听服务器命令

LSNRCTL> exit

LSNRCTL> quit

13: 显示一些参数配置信息


参数


描叙


show rawmode


显示原始模式信息:显示关于STATUS和SERVICES的较详细信息(当它们被设置成ON时)。值:ON或OFF


show displaymode


显示模式信息


show rules


显示过滤规则信息


show trc_file


显示跟踪文件信息


show trc_directory


显示跟踪文件目录信息


show trc_level


显示跟踪级别


show log_file


查看日志文件信息


show log_direcotory


显示日志文件目录信息


show log_status


显示日志状态


show current_listener


显示当前监听服务名称


show inbound_connect_timeout


显示参数指定的时间,在几秒钟内为客户完成网络连接已经建立后,其连接请求的监听,


show startup_waitetime


显示监听器等待响应lsnrctl 命令行工具中的一条STATUS命令的时间长度


show snmp_visible

 

show save_config_on_stop


显示退出lsnrctl工具时是否保存对listener.ora文件的修改


show dynamic_registration


显示是否启用或禁用动态注册


show enable_global_dynamic_endpoint

 

show oracle_home


显示ORACLE主目录信息


show pid


显示ORACLE监听进程ID

时间: 2024-11-03 10:07:15

监听服务管理的相关文章

监听服务管理(转)

如果你想管理(启动.关闭等)ORACLE数据库的监听服务,在Windows/Linux平台,你都可以通过lsnrctl命令来实现,下面 我们主要讲一下如何用lsnrctl命令来管理监听服务(我在两台数据库(不同平台.不同版本)分别操作,暂且叫为服务器A. 服务器B): 1:查看服务监听命令的详细帮助信息 服务器A:Red Hat Enterprise Linux Server release 6.0 (Santiago) ORACLE 10 [oracle@DB-Server ~]$ lsnrc

Oracle监听服务启动失败案例

在ORACLE测试服务器上还原恢复了一个数据库后,启动监听服务时出现了TNS-12541, TNS-12560,TNS-00511之类的错误,具体情况如下所示: [oracle@getlnx01 admin]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 09-MAR-2015 09:13:29 Copyright (c) 1991, 2007, Oracle. All rights reserved.

android如何实现监听服务

问题描述 我在应用程序中需要实现一个在本地数据库中自动删除过时的记录,并且在推出应用程序后也具有监听功能.求问实现过程及方法,能详细点更好! 问题补充:我的操作是这样的:在手机客户端有一个SQLite,应用程序能随时接受到服务端的消息,自动删除昨天的数据 解决方案 OK,看来我是写得太多了点,1. 应用程序能随时接受到服务端的消息.这个相信你可以做到的,我觉得这个也帮不了你什么.2. 自动删除昨天的数据,不知道你的应用程序是怎么的,无论如何这都只是对数据库进行操作.这个不能用上面的方式来进行.本

Oracle无法启动2——监听程序当前无法识别连接描述符中请求的服务

一.发现问题 在连接oracle 10g数据库的时候老是连不上,服务也启动了,但一连接就弹出TNS:监听程序当前无法识别连接描述符中请求的服务, 昨天还好好的连着,今天怎么就突然不能用来,想想会不会是昨天改了配置文件的原因,对比了一下昨天备份的那个配置文件,发现有些地方不一样.检查了一下监听的配置文件,发现里面并没有配置注册对我想要连接的那个数据库服务的监听器,上网找了下配置的语句,只要在listener.ora配置 SID_LIST_LISTENER =   (SID_LIST =     (

ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程

    今天使用PL/SQL Developer连接到一台新的测试服务器时,遇到ORA错误:ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程.对应的监听日志文件里面错误为TNS-12523: TNS:listener could not find instance appropriate for the client connection   首先使用oerr命令查看ORA-12523错误提示的详细内容 [oracle@DB-Server admin]$ oerr ora

断开网线后监听服务器配置

笔记本拔掉网线后,从服务启动ORACLE监听服务器时报错(如下图所示) 通过命令启动查看具体错误信息如下所示: 查看具体的报错日志信息log.xml,如下所示: <msg time='2012-06-30T13:58:04.381+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='KERRY-PC' host_addr='fe80::bdcd:f603:9ae2:a99%16'> <tx

10g TNS 13541 监听错误 tnsping可以但是conn system/manager@mult1.net 报错

oracle 10g : ORA-12514: TNS:listener does not currently know of service requested in connect descriptor error message: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 出错原因有很多,如果你检查service里面所有的服务都是started,那说明

Linux hostname对Oracle实例以及监听的影响

    在Linux平台中,对hostname的修改,是否对ORACLE数据库实例或监听进程有影响呢?如果有影响,又要如何解决问题呢?另外/etc/hosts下相关内容的修改,是否也会影响实例或监听呢?这里涉及的场景非常多,当然关系也非常复杂,我们下面通过几个例子来测试验证一下.     如下所示,服务器/etc/hosts 与/etc/sysconfig/network的原始配置信息如下 [root@test ~]# more /etc/hosts # Do not remove the fo

Windows 平台监听程序无法启动 报TNS-12560 TNS-00530

Windows 平台监听程序无法启动 报TNS-12560 TNS-00530 问题现象--01: C:\Users\Administrator>lsnrctl startLSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 12-12月-2014 4:50 Copyright (c) 1991, 2010, Oracle.  All rights reserved. 启动tnslsnr: 请稍候... Failed to