温馨提示×

Debian怎么启动lsnrctl

小樊
45
2026-08-21 05:15:54
栏目: 智能运维

Debian 上,lsnrctlOracle Database 的监听控制工具,不是系统自带命令。要启动它,需要满足以下条件并按步骤操作。


一、前提条件

  1. 已安装 Oracle Database(通常为企业版/XE)

    • lsnrctl 位于 Oracle 软件目录中,例如:
      $ORACLE_HOME/bin/lsnrctl
      
  2. 已配置 Oracle 环境变量

    • ORACLE_HOME
    • ORACLE_SID
    • PATH

二、启动 lsnrctl 的步骤

1. 切换到 Oracle 用户(通常是 oracle)

su - oracle

如果你不是用 oracle 用户安装的,请切换到对应的 Oracle 安装用户。


2. 设置环境变量

方法一:手动设置(临时)

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

路径请根据你的实际安装情况修改。

方法二:使用 Oracle 提供的环境脚本(推荐)

source /u01/app/oracle/product/19.3.0/dbhome_1/bin/oracle_env.sh

或(老版本):

. /usr/local/bin/oraenv

3. 启动监听(lsnrctl)

lsnrctl start

如果成功,你会看到类似输出:

Starting /u01/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.3.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

The listener is starting

三、常用 lsnrctl 命令

lsnrctl status    # 查看监听状态
lsnrctl stop     # 停止监听
lsnrctl reload   # 重新加载配置

四、常见问题

1. lsnrctl: command not found

原因:

  • Oracle 环境变量未设置
  • Oracle 未安装

解决:

echo $ORACLE_HOME
which lsnrctl

2. Debian 上是否可以直接用 apt 安装 lsnrctl?

不可以
lsnrctl 是 Oracle 私有组件,只能通过安装 Oracle Database 获得。


3. Oracle XE(Express Edition)在 Debian 上

Oracle XE 官方主要支持:

  • Oracle Linux
  • RHEL
  • CentOS

在 Debian 上安装 不推荐也不官方支持,通常建议:

  • 使用 Docker
  • 或使用 Oracle Linux / RHEL

五、检查监听端口(可选)

ss -lntp | grep 1521

netstat -tulnp | grep 1521

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

  • Oracle 版本(11g / 12c / 19c / 21c)
  • 是否已安装
  • 是物理机还是 Docker

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

0