Ant*_*rev 5 linux oracle listener
我被 Oracle 监听器配置困住了。它正在监听本地主机,但我无法从外部计算机访问它。网络工作正常,Oracle 安装在虚拟机上,我通过 ssh 工作。
我的listener.ora文件:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.110)(PORT = 1530))
)
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
Run Code Online (Sandbox Code Playgroud)
和tnsnames.ora:
QSYSTEM =
(DESCRIPTION =
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.110)(PORT = 1530))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = QSYSTEM)
)
)
Run Code Online (Sandbox Code Playgroud)
其中QSYSTEM是数据库 SID,192.168.10.110是主机 netstat 输出的地址。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:50904 0.0.0.0:* LISTEN 9650/ora_d000_QSYST
tcp 0 0 192.168.10.110:22 10.48.202.125:63350 ESTABLISHED 2994/sshd: oracle [
tcp 0 0 127.0.0.1:14468 127.0.0.1:1521 ESTABLISHED 9618/ora_pmon_QSYST
udp 0 0 127.0.0.1:60990 0.0.0.0:* 9652/ora_s000_QSYST
udp 0 0 127.0.0.1:20566 0.0.0.0:* 9650/ora_d000_QSYST
udp 0 0 0.0.0.0:21371 0.0.0.0:* 9646/ora_mmon_QSYST
udp 0 0 127.0.0.1:58024 0.0.0.0:* 9618/ora_pmon_QSYST
Run Code Online (Sandbox Code Playgroud)
lsnrctl status输出:
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-MAR-2016 13:57:16
Copyright (c) 1991, 2011, Oracle. All rights reserved.
TNS-01150: The address of the specified listener name is incorrect
NL-00303: syntax error in NV string
Run Code Online (Sandbox Code Playgroud)
我在 RHEL 7 上使用 Oracle 11g Standard。
解决方案:当我用 IP 地址替换 localhost 并正确更改和格式化后listener.ora,tnsnames.ora我就建立了连接。
如果您希望侦听器使用这两个地址处理内部和外部连接,您需要在 中列出这两个地址listener.ora,并添加ADDRESS_LIST带有平衡括号的级别:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST=
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.110)(PORT = 1521))
)
)
)
Run Code Online (Sandbox Code Playgroud)
两个地址可以使用相同的端口,如果您愿意,也可以使用不同的端口。如果它们不同,单独的侦听器可能不会那么混乱,但无论哪种方式都会起作用。
然后,您需要停止并启动侦听器以获取更改。lsnrctl status您可以使用和/或 netstat验证它正在监听的内容。
您可能还想通过查看初始化参数来检查数据库的注册情况LOCAL_LISTENER。如果未设置或正在使用主机名,请检查它是否解析为您指定的 IP 地址之一 - 通过 DNS 或在 /etc/hosts 中。如果它无法正确解析,则它将无法向侦听器注册,不会lsnrctl services列出其服务名称,并且您将无法使用服务名称通过 SQL*Net 进行连接。(或者 SID,因为您没有SID_LIST_LISTENER条目)。
| 归档时间: |
|
| 查看次数: |
13170 次 |
| 最近记录: |