【问题标题】:What are the advantages of TNS?TNS的优势是什么?
【发布时间】:2018-06-04 12:11:59
【问题描述】:

我是 Oracle 数据库的新手,我不明白使用 TNS 可以获得什么?为什么不使用普通的 TCP/IP?

据我了解,TNS 是附加的网络层。但我不明白它的作用。维基百科指出:

支持同构对等连接

TCP/IP 也支持吗?

我真的很惊讶互联网上关于这方面的信息如此之少。

【问题讨论】:

  • 您认为 TNS 的含义/作用是什么?
  • TNS 更类似于 DNS 而不是 TCP/IP。
  • TNS 是基于 TCP IP 或 IPC 的低级专有协议,允许 Oracle 在服务器和客户端之间编码各种数据类型或消息。可以把它想象成 ASN + BER/DER 之类的东西。由于它是无证和专有的,因此在 Oracle 平台之外没有任何用途。
  • 另外,我认为 TNS 在 TCP/IP 成为城里唯一的游戏之前就已经在使用了。所以它会抽象出各种网络协议。

标签: oracle tns


【解决方案1】:

人们经常使用“TNS”来指代TNS 名称(或本地命名),这是指定数据库连接信息的一种可选的简写方式。 You put your TCP/IP connection information in your tnsnames.ora file 使用类似“MYSERVER”的昵称,然后您可以只使用connect MYSERVER 而无需每次都提供主机名/端口/服务名称。

TNSNames.ora 示例:

MYSERVER= 
 (DESCRIPTION=  
  (ADDRESS= 
     (PROTOCOL=tcp) 
     (HOST=192.168.1.17) 
     (PORT=1521)) 
  (CONNECT_DATA=  
     (SERVICE_NAME=myservice))) 

您会注意到那里有一个 IP 地址,并显示“PROTOCOL=tcp”。

与 TNSNames 连接:

sqlplus user@MYSERVER

但如果您不想使用 TNS 名称快捷方式,则不必使用 - connect strings support a number of different naming methods

使用 EZCONNECT 语法连接:

sqlplus user@\"192.168.1.17:1521/myservice\"

但最后,TNSNames 只是图片的一小部分。正如上面提到的评论者,“TNS”更准确地用于指代用于与任何 Oracle 数据库通信的 Oracle Net 基础层proprietary session layer 组件。不使用 TNS 就无法连接到 Oracle 数据库。

【讨论】:

  • 除了tnsnames.ora文件,您还可以通过使用LDAP协议的名称服务器提供TNS名称解析,类似于DNS名称服务器。
猜你喜欢
  • 2014-08-03
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 2017-06-21
  • 2013-05-15
  • 1970-01-01
  • 2011-07-15
相关资源
最近更新 更多