在 Ubuntu(其实是 Oracle 数据库环境,不是 Ubuntu 特有的命令)里,lsnrctl 是用来管理 Oracle Listener(监听) 的工具。
下面按常见场景说明怎么“加监听”。
lsnrctl 只能:
监听是在 listener.ora 文件里配置的
一般在:
$ORACLE_HOME/network/admin/listener.ora
查看环境变量:
echo $ORACLE_HOME
vi $ORACLE_HOME/network/admin/listener.ora
假设新增一个监听名叫 LISTENER2,端口 1522
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
)
)
如果是原监听加端口(不改名):
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
)
)
lsnrctl start LISTENER2
查看状态:
lsnrctl status LISTENER2
在 listener.ora 中加:
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
Ubuntu 不会自动起监听,可:
lsnrctl start
写进:
/etc/rc.local
或用 systemd(高级)
✅ 端口被占用
netstat -tunlp | grep 1522
✅ 权限问题
whoami # 必须是 oracle 用户
如果你愿意,可以告诉我:
我可以给你精确配置。