温馨提示×

怎样学习lsnrctl用法

小樊
42
2026-09-29 05:30:30
栏目: 编程语言

lsnrctl 是 Oracle 数据库监听控制工具(Listener Control),用来管理 Oracle 监听器(Listener)。下面从基础概念 → 常用命令 → 学习路径 → 实战示例系统讲一下。


一、先搞清楚:lsnrctl 是干什么的?

  • 负责管理 Oracle Net Listener
  • 监听器作用:
    • 接收客户端连接请求
    • 把请求转给对应的数据库实例
  • 常见用途:
    • 启动 / 停止监听器
    • 查看监听状态
    • 修改监听配置(配合 listener.ora)

二、基本使用前提

# 在数据库服务器上,使用 oracle 用户
su - oracle

# 确认环境变量
echo $ORACLE_HOME
echo $PATH

通常:

export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

三、最常用命令(必学)

1️⃣ 启动监听器

lsnrctl start

指定监听器名:

lsnrctl start LISTENER

2️⃣ 停止监听器

lsnrctl stop

3️⃣ 查看监听状态(最常用)

lsnrctl status

示例输出关注点:

  • 监听器名称
  • 监听端口(默认 1521)
  • 已注册的服务(Service)

4️⃣ 重新加载配置(不中断连接)

lsnrctl reload

修改 listener.ora 后常用


5️⃣ 查看监听器参数

lsnrctl services

可以看到:

  • 实例名
  • 服务名
  • 当前连接数

四、监听器配置文件(必须了解)

listener.ora(服务器端)

路径:

$ORACLE_HOME/network/admin/listener.ora

示例:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    )
  )

tnsnames.ora(客户端)

用于客户端连接:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

五、学习 lsnrctl 的推荐路径

✅ 阶段 1:会用(1 天)

  • start / stop / status
  • 看懂 status 输出

✅ 阶段 2:会配(2–3 天)

  • 修改 listener.ora
  • reload 生效
  • 多端口 / 多监听器

✅ 阶段 3:会排错(重点)

常见问题:

  • TNS-12541: TNS:no listener
  • TNS-12545: Connect failed
  • 服务未注册(静态 vs 动态注册)

六、常见排错思路

# 1. 监听器是否启动
lsnrctl status

# 2. 端口是否监听
netstat -an | grep 1521

# 3. 数据库是否注册
sqlplus / as sysdba
SQL> alter system register;

七、推荐学习资料

  • Oracle 官方文档:
    Oracle Net Services Administrator’s Guide
  • 命令帮助:
lsnrctl help

如果你愿意,可以告诉我:

  • 你用的是 Oracle 11g / 12c / 19c?
  • 是 Linux 还是 Windows?
  • 是 学习还是排错?

我可以给你更针对性的示例。

0 踩