温馨提示×

linux lsnrctl能做什么

小樊
47
2026-09-29 05:20:29
栏目: 智能运维

lsnrctl 是 Oracle 数据库 中用于管理 监听器(Listener) 的命令行工具。监听器负责接收客户端的连接请求,并将其转发到对应的数据库实例。

在 Linux 上,lsnrctl 常见用途包括:


1. 查看监听器状态

lsnrctl status

作用:

  • 查看监听器是否运行
  • 显示监听端口(默认 1521)
  • 显示已注册的数据库服务
  • 查看监听地址和协议

2. 启动监听器

lsnrctl start

或指定监听器名:

lsnrctl start LISTENER

用于数据库无法被远程连接时启动监听服务。


3. 停止监听器

lsnrctl stop

关闭监听器,客户端将无法新建连接(已有连接不受影响,取决于配置)。


4. 重新加载监听器配置

lsnrctl reload

作用:

  • 不中断现有连接
  • 重新读取 listener.ora 配置
  • 常用于修改监听端口或参数后

5. 查看监听器服务信息

lsnrctl services

显示:

  • 当前注册的数据库实例
  • 每个服务的连接情况
  • 调度进程(Dispatcher)信息

6. 测试监听器连通性

lsnrctl ping

检查监听器是否可正常响应。


7. 管理多个监听器

如果配置了多个监听器:

lsnrctl start LISTENER2
lsnrctl status LISTENER2

8. 设置监听器参数(会话级)

lsnrctl
LSNRCTL> set log_status on
LSNRCTL> set trc_level admin

可用于临时开启日志或跟踪,用于排错。


常见使用场景

  • 客户端连接报 ORA-12541: TNS:no listener
  • 修改 listener.ora 后生效
  • 查看数据库是否对外提供服务
  • 排查网络连接、端口占用问题

补充说明

  • lsnrctl 需要 Oracle 环境变量 正确:
    export ORACLE_HOME=...
    export PATH=$ORACLE_HOME/bin:$PATH
    
  • 监听器配置文件通常在:
    • $ORACLE_HOME/network/admin/listener.ora

如果你愿意,我也可以帮你分析某个 lsnrctl status 输出或解决具体连接问题。

0 踩