lsnrctl 是 Oracle 数据库监听器(Listener) 的管理工具,用于启动、停止、查看和配置监听。下面从配置监听器的角度,系统地说明在 Linux 下如何使用 lsnrctl 及相关配置文件。
监听器核心配置文件是:
$ORACLE_HOME/network/admin/listener.ora
如果该文件不存在,可以手动创建。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
HOST 可写 IP 或主机名(需在 /etc/hosts 中可解析)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1522))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
多用于:
只需在数据库中设置:
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))';
ALTER SYSTEM REGISTER;
监听器无需静态配置即可发现数据库。
lsnrctl start
或指定监听器名:
lsnrctl start LISTENER
lsnrctl stop
lsnrctl status
输出包含:
lsnrctl reload
确保环境变量正确:
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
LOCAL_LISTENERALTER SYSTEM REGISTER;netstat -tunlp | grep 1521
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
如果你愿意,我可以:
你可以把当前配置或报错贴出来。