在 Debian 上配置 lsnrctl(Oracle Listener Control)通常不是“系统自带”的命令,而是 Oracle Database / Oracle Client 的一部分。下面按常见场景说明如何在 Debian 上配置和使用 lsnrctl。
lsnrctl 来自以下任一 Oracle 软件:
⚠️ Oracle 官方不支持 Debian,但可以在 Debian 上手动安装 Oracle 软件(通常用于测试/学习)。
sudo apt update
sudo apt install -y \
alien libaio1 unixodbc binutils \
libstdc++5 rpm
从 Oracle 官网下载:
linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip或使用 Oracle 19c / 21c(需符合许可)
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
路径:
$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)
)
)
$ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
lsnrctl start
lsnrctl status
lsnrctl stop
lsnrctl reload
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
lsnrctl: command not foundnetstat -tunlp | grep 1521
在 Debian 上配置 lsnrctl:
listener.oralsnrctl start如果你告诉我:
我可以给你更精确的配置步骤。