Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL*网络配置-虚假IP_Oracle_Tnsnames - Fatal编程技术网

Oracle SQL*网络配置-虚假IP

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

我无法通过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 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完成了这个任务。谢谢你的努力。