在 Debian(或任何 Linux)上,lsnrctl 是 Oracle Database 的监听管理工具,它本身不能直接“切换实例”,因为:
lsnrctl 管理的是 监听器(Listener)下面分情况说明你可能的需求。
echo $ORACLE_SID
export ORACLE_SID=orcl2
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
✅ 之后你执行的:
sqlplus / as sysdba
就是新的实例了。
lsnrctl status
lsnrctl status LISTENER2
lsnrctl start LISTENER2
lsnrctl stop LISTENER2
在 SQL 中:
ALTER SYSTEM REGISTER;
编辑 listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
然后:
lsnrctl reload
❌ lsnrctl 不能:
✅ 能做的:
export ORACLE_SID=orcl1
sqlplus / as sysdba
# 退出后
export ORACLE_SID=orcl2
sqlplus / as sysdba
如果你能具体说:
我可以给你更精确的命令。