在 Oracle 数据库中,lsnrctl 本身不能直接修改监听配置,它是监听控制工具(用于启动、停止、查看监听状态)。
要“修改监听”,实际上是修改 listener.ora 配置文件,然后用 lsnrctl 重新加载或重启监听。
下面按常见场景说明。
通常在:
$ORACLE_HOME/network/admin/listener.ora
查看当前监听配置:
lsnrctl status
编辑 listener.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1522))
)
)
使配置生效:
lsnrctl reload
或
lsnrctl stop
lsnrctl start
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
修改后:
lsnrctl reload
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
(SID_NAME = orcl)
)
)
lsnrctl status
lsnrctl services
数据库注册检查:
SQL> show parameter local_listener;
如未自动注册:
SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))';
SQL> alter system register;
listener.orasrvctl 管理监听lsnrctl 不能直接“改端口”,只能 reload/start/stop如果你能告诉我:
我可以给你针对性配置示例。