Oracle SQL*网络配置-虚假IP
我无法通过sql*net连接到Oracle 12数据库 向后追踪我的tnsping结果如下:Oracle SQL*网络配置-虚假IP,oracle,tnsnames,Oracle,Tnsnames,我无法通过sql*net连接到Oracle 12数据库 向后追踪我的tnsping结果如下: tnsping devpdb TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-OCT-2014 05:28:55 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: Used HOSTNAME adapter
tnsping devpdb
TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-OCT-2014 05:28:55
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XXX.XXX.XX)(PORT=1521)))
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
DEVDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = devDB)
)
)
DEVPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SID = devpdb)
(SERVER = DEDICATED)
(SERVICE_NAME = devpdb)
)
)
DIAMONDPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SID = DIAMONDPDB)
(SERVER = DEDICATED)
(SERVICE_NAME = DIAMONDPDB)
)
)
WTF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SID = WTF)
(SERVER = DEDICATED)
(SERVICE_NAME = WTF)
)
)
无法从此计算机解析主机IP。我不知道它是从哪里得到的这不是这个主机或路由器的NAT地址,每ping至少有30跳
tnsnames.ora:
# Generated by Oracle configuration tools.
DEVDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = devDB)
)
)
DEVPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SID = devpdb)
(SERVER = DEDICATED)
(SERVICE_NAME = devpdb)
)
)
DIAMONDPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SID = DIAMONDPDB)
(SERVER = DEDICATED)
(SERVICE_NAME = DIAMONDPDB)
)
)
/etc/hosts是:
127.0.0.1 localhost
192.168.1.2 tts-PowerEdge-T105
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
太平工程:
ping tts-PowerEdge-T105
PING tts-PowerEdge-T105(192.168.1.2)56(84)字节的数据。
来自tts-PowerEdge-T105(192.168.1.2)的64字节:icmp_seq=1 ttl=64时间=0.054毫秒
我的sqlnet.ora:
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
当我更改tnsnames.ora如下:
tnsping devpdb
TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-OCT-2014 05:28:55
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=XX.XXX.XXX.XX)(PORT=1521)))
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
DEVDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = devDB)
)
)
DEVPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = tts-PowerEdge-T105)(PORT = 1521))
(CONNECT_DATA =
(SID = devpdb)
(SERVER = DEDICATED)
(SERVICE_NAME = devpdb)
)
)
DIAMONDPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SID = DIAMONDPDB)
(SERVER = DEDICATED)
(SERVICE_NAME = DIAMONDPDB)
)
)
WTF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SID = WTF)
(SERVER = DEDICATED)
(SERVICE_NAME = WTF)
)
)
我明白了:
tnsping wtf
TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 08-OCT-2014 08:21:15
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
TNS-03505: Failed to resolve name
我的环境:
LD_LIBRARY_PATH=/u01/app/oracle/product/12.1.0/dbhome_1/lib
ORACLE_SID=devDB
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
我甚至可以删除我的tnsnames.ora文件并获取原始消息,这样它就不会被使用
我尝试将我的sqlnet.ora更改为:
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
#NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
NAMES.DIRECTORY_PATH= (HOSTNAME,TNSNAMES, ONAMES)
这没什么区别
因此,无论主机名适配器是什么,或者它是如何配置的,似乎都是问题所在。请注意,“使用的参数文件:”为空
我导出了TNS_管理员
export TNS_ADMIN=/home/u01/app/oracle/product/12.1.0/dbhome_1/network/admin
但仍然没有使用任何参数文件。我对该文件具有读取权限
我怀疑这与我的sqlnet.ora文件有关,但我已经没有想法了。非常有趣。我不擅长在Linux下管理Oracle,但显然,首先必须强制Linux用户使用特定的
sqlnet.ora
文件。请尝试导出值为/HOME/u01/app/ORACLE/product/12.1.0/dbhome\u 1
的ORACLE\u HOME
变量,而不是导出TNS\u ADMIN
,同时确保用于监听的用户可以访问/HOME/u01/app/ORACLE/product/12.1.0/dbhome\u 1
。设置sqlnet.ora
,以便TNSNAMES
是名称.目录路径中的第一个。那么xx.xxx.xxx.xx是您无法识别的IP地址,还是无法解析的FQDN?您的文件声称位于/u01/…
中,但它们实际上在哪里-您将TNS_ADMIN设置为/home/u01/…
?devpdb
是否可通过dig或nslookup解析为IP?看起来TNS_ADMIN没有设置为有效路径,也没有使用默认路径,并且碰巧使用了一个别名,该别名也是一个主机…这是一个权限问题。用户无法读取该文件。文件确实在他们应该在的地方。我不必设置TNS_ADMIN。我没有安装数据库,但是一个chown oracle sqlnet.ora tnsnames.ora和chmod 644 sqlnet.ora tnsnames.ora完成了这个任务。谢谢你的努力。