zoukankan      html  css  js  c++  java
  • 监听服务管理(转)

    如果你想管理(启动、关闭等)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:appkerryproduct11.2.0dbhome_1 etworkadminlistener.ora

    写入e:appkerrydiag nslsnrkerry-PClisteneralertlog.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:appkerryproduct11.2.0dbhome_1 etworkadminlistener.ora

    监听程序日志文件 e:appkerrydiag nslsnrkerry-PClisteneralertlog.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:

    clip_image001[4]

    服务器B:

    clip_image002[4]

    clip_image003[4]

    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,你会发现文件里面多了下面加密的密码

    clip_image004[4]

    将该项删除后,保存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:appkerryproduct11.2.0dbhome_1 etworkadminlistener.ora

    旧的参数文件E:appkerryproduct11.2.0dbhome_1 etworkadminlistener.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

    clip_image005[4]

    参考资料:

    http://www.eygle.com/archives/2007/11/listener_security.html

    http://www.cnblogs.com/kerrycode/archive/2012/12/19/2825377.html

  • 相关阅读:
    Java应用程序的运行机制
    IO流——字符流
    IO流——字节流
    Java API --- File类
    SSM框架整合
    Mybatis核心组件
    AJAX 练习
    设计者模式
    软件七大设计原则
    并发编程
  • 原文地址:https://www.cnblogs.com/softidea/p/4884421.html
Copyright © 2011-2022 走看看