在 Debian 上使用 lsnrctl 主要是用于管理 Oracle 数据库监听器(Listener)。下面按常见场景给你一个实用指南。
lsnrctl 是 Oracle 自带工具,不在 Debian 默认仓库里oracle)su - oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl status
查看指定监听器:
lsnrctl status LISTENER
lsnrctl start
指定监听器名:
lsnrctl start LISTENER
lsnrctl stop
或:
lsnrctl stop LISTENER
Oracle 没有 restart 命令,一般这样操作:
lsnrctl stop
lsnrctl start
lsnrctl services
显示当前监听器服务的详细信息(实例、端口等)
监听器配置通常在:
$ORACLE_HOME/network/admin/listener.ora
示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
)
修改后需要重启监听器:
lsnrctl stop
lsnrctl start
Debian 不像 RHEL 有 oratab + rc.local 的成熟方案,可以:
创建:
sudo vi /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
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
command not foundPATH 和 ORACLE_HOMEoracle 用户root 直接跑ss -tulnp | grep 1521
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。