对于DBA来说,启动和关闭oracle监听器是很基础的任务,但是Linux系统管理员或者程序员有时也需要在开发数据库中做一些基本的DBA操作,因此了解一些基本的管理操作对他们来说很重要。

  本文将讨论用LSNRCTL命令启动、关闭和查看监听器的状态的方法。

怎样启动、关闭和重新启动oracle监听器

在启动、关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监听器的状态。除了得到监听器的状态之外,你还可以从lsnrctl status命令的输出中得到如下的信息:

监听器的启动时间
监听器的运行时间
监听器参数文件listener.ora的位置,通常位于$ORACLE_HOME/network/admin目录下
监听器日志文件的位置
如果oracle监听器没用运行,你将得到如下的信息

view plaincopy to clipboardprint?
$ lsnrctl status 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:39 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))) 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
TNS-00511: No listener 
Linux Error: 111: Connection refused 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) 
TNS-12541: TNS:no listener 
TNS-12560: TNS:protocol adapter error 
TNS-00511: No listener 
Linux Error: 2: No such file or directory
$ lsnrctl status

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:39

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory

如果oracle监听器正在运行,你将得到如下信息

view plaincopy to clipboardprint?
$ lsnrctl status 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:02 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))) 
STATUS of the LISTENER 
———————— 
Alias LISTENER 
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production 
Start Date 29-APR-2009 18:43:13 
Uptime 6 days 21 hr. 43 min. 49 sec 
Trace Level off 
Security ON: Local OS Authentication 
SNMP OFF 
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora 
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml 
Listening Endpoints Summary… 
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521))) 
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 
Services Summary… 
Service “devdb” has 1 instance(s). 
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service… 
Service “devdb.thegeekstuff.com” has 1 instance(s). 
Instance “devdb”, status READY, has 1 handler(s) for this service… 
Service “devdbXDB.thegeekstuff.com” has 1 instance(s). 
Instance “devdb”, status READY, has 1 handler(s) for this service… 
Service “devdb_XPT.thegeekstuff.com” has 1 instance(s). 
Instance “devdb”, status READY, has 1 handler(s) for this service… 
The command completed successfully
$ lsnrctl status

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:02

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date 29-APR-2009 18:43:13
Uptime 6 days 21 hr. 43 min. 49 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary…
Service “devdb” has 1 instance(s).
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service…
Service “devdb.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
Service “devdbXDB.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
Service “devdb_XPT.thegeekstuff.com” has 1 instance(s).
Instance “devdb”, status READY, has 1 handler(s) for this service…
The command completed successfully

2.启动oracle监听器

如果oracle监听器没用运行,你可以用lsnrctl start命令启动oracle监听器,该命令将启动所有的监听器,如果你只想启动特定的监听器,可以再start后面指定监听器的名字,例如:lsnrctl start [listener-name]。

view plaincopy to clipboardprint?
$ lsnrctl start 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:42 

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

Starting /u01/app/oracle/product/11.1.0/bin/tnslsnr: please wait… 

TNSLSNR for Linux: Version 11.1.0.6.0 - Production 
System parameter file is /u01/app/oracle/product/11.1.0/network/admin/listener.ora 
Log messages written to /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521))) 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))) 
STATUS of the LISTENER 
———————— 
Alias LISTENER 
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production 
Start Date 04-APR-2009 16:27:42 
Uptime 0 days 0 hr. 0 min. 0 sec 
Trace Level off 
Security ON: Local OS Authentication 
SNMP OFF 
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora 
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml 
Listening Endpoints Summary… 
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521))) 
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 
Services Summary… 
Service “devdb” has 1 instance(s). 
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service… 
The command completed successfully
$ lsnrctl start

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:42

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

Starting /u01/app/oracle/product/11.1.0/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date 04-APR-2009 16:27:42
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Services Summary…
Service “devdb” has 1 instance(s).
Instance “devdb”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully

3.关闭oracle监听器

如果oracle监听器正在运行,可以使用lsnrctl stop命令关闭oracle监听器,该命令将关闭所有的监听器,如果你只想关闭特定的监听器,可以再stop后面指定监听器的名字,例如:lsnrctl stop [listener-name]

view plaincopy to clipboardprint?
$ lsnrctl stop 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:37 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))) 
The command completed successfully
$ lsnrctl stop

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:27:37

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
The command completed successfully

4.重启oracle监听器

用lsnrctl reload重启监听器,此命令可以代替lsnrctl stop和lsnrctl start。重启将会在不需要关闭和启动监听器的情况下读取listener.ora的配置。

view plaincopy to clipboardprint?
$ lsnrctl reload 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 17:03:31 

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))) 
The command completed successfully
$ lsnrctl reload

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 17:03:31

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))
The command completed successfully

Oracle监听器帮助

1.查看所有的监听器命令

lsnrctl hep命令可以显示所有可用的监听器命令。在oracle11g中其输出如下:

start - Start the Oracle listener
stop - Stop the Oracle listener
status - Display the current status of the Oracle listener
services - Retrieve the listener services information
version - Display the oracle listener version information
reload - This will reload the oracle listener SID and parameter files. This is equivalent to lsnrctl stop and lsnrctl start.
save_config - This will save the current settings to the listener.ora file and also take a backup of the listener.ora file before overwriting it. If there are no changes, it will display the message “No changes to save for LISTENER”
trace - Enable the tracing at the listener level. The available options are ‘trace OFF’, ‘trace USER’, ‘trace ADMIN’ or ‘trace SUPPORT’
spawn - Spawns a new with the program with the spawn_alias mentioned in the listener.ora file
change_password - Set the new password to the oracle listener (or) change the existing listener password.
show - Display log files and other relevant listener information.
view plaincopy to clipboardprint?
$ lsnrctl help 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:12:09 

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

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*
$ lsnrctl help

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:12:09

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

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*

2.得到指定监听器命令的详细帮助信息

可以使用lsnrctl help得到指定的命令的详细帮助信息。如下所示

view plaincopy to clipboardprint?
$ lsnrctl help show 

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR-2009 16:22:28 

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

The following operations are available after show 
An asterisk (*) denotes a modifier or extended command: 

rawmode displaymode 
rules trc_file 
trc_directory trc_level 
log_file log_directory 
log_status current_listener 
inbound_connect_timeout startup_waittime 
snmp_visible save_config_on_stop 
dynamic_registration