温馨提示×

debian如何停止lsnrctl

小樊
34
2026-08-05 22:03:58
栏目: 智能运维

在 Debian(以及大多数 Linux 发行版)上,lsnrctlOracle Database Listener 的管理工具。要“停止”它,通常是指 停止 Oracle 监听器(Listener)

下面按常见情况说明。


一、确认 lsnrctl 是否可用

先确认 Oracle 环境变量是否已设置:

which lsnrctl

如果找不到,说明环境变量未配置,需要先加载 Oracle 环境。


二、设置 Oracle 环境变量(非常重要)

通常 Oracle 安装在 oracle 用户下。

su - oracle

然后加载环境变量(不同版本可能略有不同):

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl

具体路径请根据你的实际安装情况调整。


三、停止 Oracle Listener(推荐方式)

1️⃣ 查看当前监听器状态

lsnrctl status

2️⃣ 停止监听器

lsnrctl stop

如果你有多个监听器(非默认 LISTENER):

lsnrctl stop LISTENER_NAME

四、确认是否已停止

lsnrctl status

如果成功停止,通常会看到类似提示:

TNS-12541: TNS:no listener

五、如果 lsnrctl 无法使用(手动方式)

1️⃣ 查找监听进程

ps -ef | grep tnslsnr

2️⃣ 强制杀掉进程(不推荐,除非必要)

kill -9 <PID>

或:

pkill -9 tnslsnr

⚠️ 不建议直接 kill,可能导致 Oracle 异常


六、是否开机自动启动(可选)

如果你不希望监听器随系统启动:

systemctl disable oracle-listener

(取决于你是否配置了 systemd 服务)


七、常见问题

❓ 提示 command not found

说明:

  • 没切换到 oracle 用户
  • ORACLE_HOME 没设置

❓ Debian 没有 lsnrctl?

lsnrctl 不是 Debian 自带命令,而是 Oracle 软件的一部分,必须安装 Oracle Database 才有。


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

  • Oracle 版本(11g / 12c / 19c)
  • 是否使用 systemd
  • 是否只是想禁止监听启动

我可以给你更精确的方案。

0