lsnrctl 是 Oracle 数据库监听器的控制工具,专门用来管理和监控数据库监听器。简单来说,它就像监听器的一个遥控器——你可以在命令行里输入指令,让它启动、停止、报告状态,甚至调整日志记录级别。下面就来梳理一下那些最常用的 lsnrctl 命令选项。

首先要掌握的是基础操作类命令,日常运维几乎天天要用到:
status:查看监听器的当前状态,包括监听器名称、版本号、启动时间等关键信息。
lsnrctl statusstart:启动监听器,让数据库能够接受客户端连接。
lsnrctl startstop:停止监听器,通常用于维护或配置变更。
lsnrctl stoprestart:重启监听器,相当于先 stop 再 start 一步到位。
lsnrctl restartservices:列出监听器当前支持的所有服务,可以看到哪些数据库实例已经注册上来。
lsnrctl services
接下来是帮助与日志管理相关的命令,对于排查问题和调优很有用:
help:显示
lsnrctl本身的所有可用命令,新手记不住参数时可以随时查。lsnrctl helpsetlogid:设置监听器的日志文件名,方便归档或按需命名。
lsnrctl setlogidgetlogid:获取当前监听器正在使用的日志文件名。
lsnrctl getlogidsetloglevel:设置监听器的日志级别(比如 OFF、USER、ADMIN 等),用于控制日志的详细程度。
lsnrctl setloglevelgetloglevel:查看当前监听器的日志级别设置。
lsnrctl getloglevel
最后是属性配置类命令,适合需要动态调整监听器行为的高级场景:
setlistener:修改监听器的某个属性值,比如端口号、静态注册信息等。
lsnrctl setlistenergetlistener:获取监听器的当前属性值,用于确认配置是否生效。
lsnrctl getlistener
需要注意,上述命令中的 通常就是默认的 LISTENER(除非你创建了多个自定义监听器)。另外,执行这些命令时,请确保你拥有足够的操作系统权限(一般需要 oracle 用户或 dba 组成员)。