温馨提示×

debian lsnrctl服务怎么开

小樊
44
2026-08-05 22:11:02
栏目: 智能运维

在 Debian 上 lsnrctl 不是系统服务,而是 Oracle 监听器的管理工具
所以“开启 lsnrctl 服务”本质上是 启动 Oracle Listener

下面按常见情况说明。


一、确认环境

1. 是否已安装 Oracle

lsnrctl 一般位于:

$ORACLE_HOME/bin/lsnrctl

检查:

which lsnrctl

如果没有,说明 Oracle 没装或环境变量没配


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

oracle 用户为例:

su - oracle

编辑 ~/.bash_profile~/.bashrc

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

生效:

source ~/.bash_profile

三、启动 Oracle 监听器(正确方式)

1. 查看监听状态

lsnrctl status

2. 启动监听

lsnrctl start

3. 停止监听

lsnrctl stop

4. 重启监听

lsnrctl reload

四、让监听开机自动启动(Debian 下)

Oracle 不会自动随系统启动,需要手动配置。

方法 1:使用 systemd(推荐)

创建服务文件:

sudo nano /etc/systemd/system/oracle-listener.service

内容示例(按实际路径修改):

[Unit]
Description=Oracle Listener
After=network.target

[Service]
Type=forking
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_BASE=/u01/app/oracle"
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl stop

[Install]
WantedBy=multi-user.target

重载并启用:

sudo systemctl daemon-reload
sudo systemctl enable oracle-listener
sudo systemctl start oracle-listener

查看状态:

sudo systemctl status oracle-listener

方法 2:使用 /etc/rc.local(老方法)

sudo nano /etc/rc.local

添加:

su - oracle -c "lsnrctl start"

并确保:

chmod +x /etc/rc.local

五、常见问题

1. lsnrctl: command not found

  • 没装 Oracle
  • 环境变量没配

2. TNS-12541: TNS:no listener

  • 监听没启动
  • 端口被占用(通常是 1521)

3. Debian 没有 lsnrctl

✅ 这是 Oracle 组件,不是 Debian 自带软件


六、总结一句话

Debian 上不存在 lsnrctl 服务,它是 Oracle 的监听管理工具,用 lsnrctl start 启动即可,想开机自启就配 systemd。

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

  • Oracle 版本(11g / 12c / 19c)
  • Debian 版本
  • 是本地库还是远程连接

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

0