在 Linux 下使用 lsnrctl 重启 Oracle 监听(Listener),通常按以下步骤操作。
一般要先切换到 oracle 用户,并加载环境变量:
su - oracle
确认以下环境变量已设置(通常 .bash_profile 里已有):
echo $ORACLE_HOME
echo $ORACLE_SID
lsnrctl status
lsnrctl stop
lsnrctl start
某些版本可以直接:
lsnrctl reload
⚠️
reload不会断开已有连接,只会重新加载配置,不算真正重启进程
如果是修改了listener.ora或端口,建议用 stop + start
lsnrctl status
看到类似:
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux
...
The listener supports no services
或显示服务已注册,即说明正常。
command not found说明环境变量没加载:
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
可能是权限问题,确认是 oracle 用户 启动的监听。
重启监听后执行:
sqlplus / as sysdba
ALTER SYSTEM REGISTER;
如果你愿意,可以告诉我:
我可以给你更精确的操作步骤。