【发布时间】:2020-03-03 05:20:02
【问题描述】:
我使用的是 Oracle 12c 企业版。我的监听器配置有些奇怪。
- 检查监听器是否正在运行
$ ps -ef | grep tns
root 261 2 0 Jan16 ? 00:00:00 [netns]
oraxxx 12669 1 0 Jan16 ? 00:10:33 /oracle/PR1/112_64/bin/tnslsnr LISTENER -inherit
- 查看监听器LISTENER的状态,我们可以看到它在9119端口监听
Listener Parameter File /u01/app/grid/12.1.0.1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/xxx/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.x.x.x)(PORT=9119)))
- 检查侦听器文件的内容。我找不到这里配置的端口 9119。
$ cat /u01/app/grid/12.1.0.1/network/admin/listener.ora
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET # line added by Agent
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = xxx_DG)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0.1/db_1)
(SID_NAME = xxx)
)
)
--> 如果 listener.ora 中没有配置端口,Oracle 怎么知道它会在端口 9119 上运行?
- 检查 local_listener 并没有显示任何内容
SYS@xxx> show parameter local_listener;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string
在我的测试服务器中,我可以看到listener.ora文件中配置的端口和local_listener中的值
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1901))
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP) (HOST=
192.168.56.103) (PORT=1901))
我想知道是否有任何我可能不知道或听不到的特殊配置。有人可以就这个案子给我建议吗?
【问题讨论】:
-
在您使用版本
11g和目录/oracle/PR1/112_64....时,请注意目录....12.1.0.1。也许你有一个不匹配的原因。 -
我仔细检查了这一点,因为这是我的错误。我打开 2 个不同的系统来检查这一点。其中之一是11g。版本是12c,我更新了帖子。
-
如果未配置端口,则为 1521。您有从 11g 主目录运行的侦听器(或者从文件路径的名称来看),并且您正在检查一个正在运行的侦听器来自 12c 的家。您是否配置了 RAC?如果是,请使用“srvctl config listener”检查配置。
-
看起来是旧路径,oracle 后来升级到12c。它不是默认端口 1521。如上所示,它是 9119。它不是 RAC。