温馨提示×

Debian lsnrctl怎么设置

小樊
46
2026-07-10 16:21:16
栏目: 智能运维

在 Debian 上 lsnrctl 并不是系统自带命令,它属于 Oracle Database(通常是 Oracle Instant Client 或完整数据库) 的一部分,用来管理 Oracle Listener。下面按常见场景给你一个完整说明。


一、确认 lsnrctl 是否可用

先检查是否已安装 Oracle 环境:

which lsnrctl
lsnrctl version

如果提示 command not found,说明 Oracle 还没装或环境变量没配置


二、安装 Oracle(Debian 上常见方式)

1️⃣ 使用 Oracle Instant Client(推荐)

适合只管理监听、不装完整数据库。

下载

从 Oracle 官网下载(需注册账号):

  • oracle-instantclient-basic
  • oracle-instantclient-sqlplus
  • oracle-instantclient-tools(含 lsnrctl

安装(示例)

sudo dpkg -i oracle-instantclient*.deb

设置环境变量

编辑 ~/.bashrc/etc/profile

export ORACLE_HOME=/usr/lib/oracle/21/client64
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

然后:

source ~/.bashrc

三、配置 Listener(核心步骤)

1️⃣ 创建 listener.ora

路径通常在:

$ORACLE_HOME/network/admin/listener.ora

最小示例:

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

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
    )
  )

⚠️ 如果是 Instant Client,没有数据库实例,可以只保留 LISTENER 部分。


2️⃣ 启动 Listener

lsnrctl start

查看状态:

lsnrctl status

停止:

lsnrctl stop

四、常见问题(Debian 特有)

❌ 1. lsnrctl: command not found

✅ 检查:

  • ORACLE_HOME 是否正确
  • PATH 是否包含 $ORACLE_HOME/bin

❌ 2. 端口 1521 被占用

sudo netstat -tulnp | grep 1521

修改 listener.ora 中的端口即可。


❌ 3. Debian 没有 rpm

Oracle 官方常给 .rpm,Debian 可用:

sudo apt install alien
sudo alien -i xxx.rpm

五、Debian + Docker(推荐方案)

如果你只是想用 lsnrctl强烈建议用 Oracle 官方 Docker 镜像

docker run -d \
  -p 1521:1521 \
  --name oracle \
  container-registry.oracle.com/database/express:21.3.0-xe

进入容器:

docker exec -it oracle bash
lsnrctl status

六、总结一句话

Debian 本身没有 lsnrctl,必须先安装 Oracle(Instant Client 或数据库),再配置 listener.ora,最后用 lsnrctl start 启动。


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

  • ✅ 只想 管理监听 还是 装完整 Oracle
  • ✅ Debian 版本(11 / 12)
  • ✅ 是否使用 Docker

我可以给你 精确到命令级别 的指导。

0