我是Oracle数据库的新手,我不明白我们在使用TNS时会获得什么?为什么不使用普通的TCP / IP?
据我所知,TNS是额外的网络层。但我不明白它的作用。维基百科说:
支持同类对等连接
TCP / IP是否也支持它?
我真的很惊讶互联网上的信息很少。
答案 0 :(得分:3)
人们经常使用“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数据库。