温馨提示×

debian怎样配置lsnrctl

小樊
51
2026-09-15 19:26:28
栏目: 智能运维

在 Debian 上配置 lsnrctl(Oracle Listener Control)通常不是“系统自带”的命令,而是 Oracle Database / Oracle Client 的一部分。下面按常见场景说明如何在 Debian 上配置和使用 lsnrctl。


一、前提条件

lsnrctl 来自以下任一 Oracle 软件:

  • Oracle Database(完整数据库)
  • Oracle Instant Client(不含 lsnrctl)❌
  • Oracle Client(Administrator 或 Custom 安装)✅

⚠️ Oracle 官方不支持 Debian,但可以在 Debian 上手动安装 Oracle 软件(通常用于测试/学习)。


二、安装 Oracle 软件(简要)

1. 安装依赖

sudo apt update
sudo apt install -y \
  alien libaio1 unixodbc binutils \
  libstdc++5 rpm

2. 下载 Oracle

从 Oracle 官网下载:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

或使用 Oracle 19c / 21c(需符合许可)

3. 安装 Oracle

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
cd database
./runInstaller

安装时选择 Oracle Client(Administrator) 或 Database


三、配置环境变量

编辑 ~/.bashrc 或 ~/.profile:

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

生效:

source ~/.bashrc

验证:

which lsnrctl

四、配置 Listener(核心)

1. 创建 listener.ora

路径:

$ORACLE_HOME/network/admin/listener.ora

示例:

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

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

2. 创建 tnsnames.ora(可选)

$ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

五、使用 lsnrctl

启动监听

lsnrctl start

查看状态

lsnrctl status

停止监听

lsnrctl stop

重载配置

lsnrctl reload

六、设置开机自启(Debian)

Oracle 不提供 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.0.0/dbhome_1
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl start
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl stop

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable oracle-listener

七、常见问题

1. lsnrctl: command not found

  • ORACLE_HOME 未配置
  • 未安装 Oracle Client/DB

2. Debian 不支持 Oracle

  • 需手动处理依赖
  • 不推荐生产环境

3. 端口被占用

netstat -tunlp | grep 1521

八、总结

在 Debian 上配置 lsnrctl:

  1. 安装 Oracle Client / Database
  2. 配置环境变量
  3. 编辑 listener.ora
  4. 使用 lsnrctl start

如果你告诉我:

  • Oracle 版本(11g / 19c / 21c)
  • Debian 版本
  • 是否已有 Oracle 安装

我可以给你更精确的配置步骤。

0 踩