问题

在Oracle中,tnsnames.ora文件的作用是什么?

答案

 

这个文件类似于Linux系统的hosts文件,提供tnsname到主机名或者IP的对应关系。只有当sqlnet.ora中有类似“NAMES.DIRECTORY_PATH=(TNSNAMES)”的配置的时候,客户端解析连接字符串时,数据库才会尝试使用这个文件。

下面给出一个配置的例子:

1ORCL =
2  (DESCRIPTION =
3    (ADDRESS = (PROTOCOL = TCP)(HOST = lhr)(PORT = 1521))
4    (CONNECT_DATA =
5      (SERVER = DEDICATED)
6      (SERVICE_NAME = orcl)
7    )
8  )

 

其中,每个部分的解释如下所示:

l PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。

l HOST:数据库所在的机器的主机名或IP地址。不管用主机名还是IP地址,在客户端一定要用ping命令ping通数据库所在的机器,否则需要在hosts文件中加入数据库所在的机器的主机名和IP地址的对应关系。

l PORT:数据库监听器的端口,可以查看服务器端的listener.ora文件或在数据库服务器中通过lsnrctl status [listener name]命令来查看。一般为1521端口。

l SERVICE_NAME:在数据库中使用“SHOW PARAMETER SERVICE_NAME”命令查看,一般情况下和DBNAME相同。

作者:小麦苗

 

【DB笔试面试844】在Oracle中,tnsnames.ora文件的作用是什么?_oracle