Ubuntu 中使用 lsnrctl 进行远程管理的可行方式
一、前提与限制
二、推荐做法 SSH 到服务器执行 lsnrctl
sudo -iu oracleexport ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1export PATH=$ORACLE_HOME/bin:$PATHlsnrctl start|stop|status [LISTENER]lsnrctl reloadlsnrctl services [listener_name]lsnrctl logfile [listener_name]、lsnrctl setloglevel [listener_name] levellsnrctl select listener_name[LISTENER] 为监听器名称,默认通常为 LISTENER。三、远程执行命令的安全做法(不推荐开放监听管理端口)
ssh oracle@dbhost "lsnrctl status LISTENER"ssh oracle@dbhost "lsnrctl services | grep your_service"四、安全加固要点
lsnrctl
set current_listener LISTENERchange_password(设置新口令)set password(再次输入口令)save_config(写入 listener.ora,文件中会出现类似 PASSWORDS_LISTENER = <密文> 的条目)lsnrctl stop 导致业务中断。HOST=0.0.0.0(或具体内网地址)明确监听范围,避免使用易误解的 HOST=*。sudo ufw allow from 192.168.1.0/24 to any port 1521 proto tcp。listener.log,关注 STOP/START/RELOAD 等事件。五、快速排错清单
lsnrctl status 检查监听端口与已注册服务;确认 listener.ora 中 ADDRESS=(PROTOCOL=TCP)(HOST=...)(PORT=1521) 配置正确。nc -vz dbhost 1521 或 telnet dbhost 1521;检查云安全组/本机防火墙是否放行 1521。listener.ora 一致。set password 再执行;或改为 SSH 本机执行。