我有一个在生产环境中工作了一年多的 Oracle 数据库。
我让我的听众工作:
[oracle@base admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 02-NOV-2016 14:22:38
Uptime 1 days 20 hr. 3 min. 13 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /o/app/oracle/diag/tnslsnr/base/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=base)(PORT=1521)))
Services Summary...
Service "BASE" has 1 instance(s).
Instance "BASE", status READY, has 1 handler(s) for this service...
Service "BASEXDB" has 1 instance(s).
Instance "BASE", status READY, has 1 handler(s) for this service...
The command completed successfully
但我没有listener.ora
:
ls /o/app/oracle/product/DB_11.2_SE/dbhome_2/network/admin/ 样本 shrept.lst tnsnames.ora
这是我的内容tnsnames.ora
:
$ 猫 tnsnames.ora 基础 = (描述= (地址列表 = (地址 = (协议 = TCP)(主机 = 10.20.20.19)(端口 = 1521)) (负载平衡 = 是) ) (连接数据 = (SERVICE_NAME = BASE) ) ) 甲骨文 = (描述= (地址 =(协议 = TCP)(主机 = 10.20.20.20)(端口 = 1522)) (连接数据 = (服务器 = 专用) (SERVICE_NAME = orcl) ) )
这怎么可能?据我所知,为了让监听器工作,我必须有一个listener.ora
文件。
我安装了另一个 Oracle 数据库,如果我执行lsnrctl status
,在输出中我可以看到一行包含Listener Parameter File /o/app/oracle/product/11.2/dbhome/network/admin/listener.ora
,而我在这里看不到它。我也执行了locate listener.ora
,什么也没有。
你不需要一个
listener.ora
. 侦听器会很高兴在没有任何服务的情况下开始,但只会在不支持任何服务的情况下开始。pmon
将定期向侦听器注册数据库,但您可以手动强制注册。将文件移开:
启动监听器:
向监听器注册数据库:
监听器现在支持数据库:
“据我所知,要让监听器工作,我必须有 listener.ora 文件。”
从 8.1.5 开始,listener.ora 对于默认侦听器是可选的。
在没有 LISTENER.ORA 的情况下启动监听器(文档 ID 208968.1)