zoukankan      html  css  js  c++  java
  • 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设置密码保护
    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设置了密码保护。


    参考:https://blog.csdn.net/tomato__/article/details/39638383

    生活其实也很简单,喜欢的就去争取、得到的就珍惜、失去的就忘记。
  • 相关阅读:
    数据结构排序算法之堆排序
    整数划分
    二叉树的递归与非递归
    螺旋数组
    【图的DFS】图的DFS非递归算法
    Docker实战部署应用——Tomcat
    Docker实战部署应用——Redis
    Docker实战部署应用——MySQL5.7
    Docker其他操作:查看内部细节、IP、删除容器
    Docker数据目录相关操作
  • 原文地址:https://www.cnblogs.com/Formulate0303/p/15493173.html
Copyright © 2011-2022 走看看