对于DBA来说,启动和关闭oracle监听器是很基础的任务,但是Linux系统管理员或者程序员有时也需要在开发数据库中做一些基本的DBA操作,因此了解一些基本的管理操作对他们来说很重要。
本文将讨论用LSNRCTL命令启动、关闭和查看监听器的状态的方法。
怎样启动、关闭和重新启动oracle监听器
在启动、关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查oracle监听器的状态。除了得到监听器的状态之外,你还可以从lsnrctl status命令的输出中得到如下的信息:
监听器的启动时间监听器的运行时间监听器参数文件listener.ora的位置,通常位于$ORACLE_HOME/network/admin目录下监听器日志文件的位置
如果oracle监听器没用运行,你将得到如下的信息
$ lsnrctl statusLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:27:39Copyright (c) 1991, , Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 111: Connection refusedConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter errorTNS-00511: No listenerLinux Error: 2: No such file or directory
如果oracle监听器正在运行,你将得到如下信息
$ lsnrctl statusLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:27:02Copyright (c) 1991, , Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521)))STATUS of the LISTENER————————Alias LISTENERVersion TNSLSNR for Linux: Version 11.1.0.6.0 - ProductionStart Date29-APR- 18:43:13Uptime6 days 21 hr. 43 min. 49 secTrace LeveloffSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.oraListener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xmlListening 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 “” has 1 instance(s).Instance “devdb”, status READY, has 1 handler(s) for this service…Service “” has 1 instance(s).Instance “devdb”, status READY, has 1 handler(s) for this service…Service “” 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]。
$ lsnrctl startLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:27:42Copyright (c) 1991, , 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 - ProductionSystem parameter file is /u01/app/oracle/product/11.1.0/network/admin/listener.oraLog messages written to /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xmlListening 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 LISTENERVersion TNSLSNR for Linux: Version 11.1.0.6.0 - ProductionStart Date04-APR- 16:27:42Uptime0 days 0 hr. 0 min. 0 secTrace LeveloffSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/11.1.0/network/admin/listener.oraListener Log File /u01/app/oracle/diag/tnslsnr/devdb/listener/alert/log.xmlListening 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]
$ lsnrctl stopLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:27:37Copyright (c) 1991, , 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的配置。
$ lsnrctl reloadLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 17:03:31Copyright (c) 1991, , 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 listenerstop- Stop the Oracle listenerstatus- Display the current status of the Oracle listenerservices- Retrieve the listener services informationversion- Display the oracle listener version informationreload- 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 filechange_password- Set the new password to the oracle listener (or) change the existing listener password.show- Display log files and other relevant listener information.
$ lsnrctl helpLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:12:09Copyright (c) 1991, , Oracle. All rights reserved.The following operations are availableAn asterisk (*) denotes a modifier or extended command:startstopstatusservices version reloadsave_config tracespawnchange_passwordquitexitset*show*
2.得到指定监听器命令的详细帮助信息
可以使用lsnrctl help得到指定的命令的详细帮助信息。如下所示
$ lsnrctl help showLSNRCTL for Linux: Version 11.1.0.6.0 - Production on 04-APR- 16:22:28Copyright (c) 1991, , Oracle. All rights reserved.The following operations are available after showAn asterisk (*) denotes a modifier or extended command:rawmode displaymoderules trc_filetrc_directorytrc_levellog_filelog_directorylog_status current_listenerinbound_connect_timeoutstartup_waittimesnmp_visiblesave_config_on_stopdynamic_registration