(转载某位大神的,谢谢啦)listener.ora、tnsnames.ora和sqlnet.ora这3个文件的关系和作用

Listener.ora、tnsnames.ora和sqlnet.ora这3个文件是关系orale网络配置的3个主要文件,其中listener.ora是和数据库服务器端  相关,而tnsnames.ora和slqnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。

第一、检查客户端oracle网络的时候可以先检查sqlnet.ora文件:

上面的sqlnet.ora文件说明:

SQLNET.AUTHENTICATION_SERVICES=(NTS)——这个表示采用OS认证,在数据库服务器上,可以利用sqlplus “/ as sysdba”。一般这个配置在Windows上是OK的,在unix环境下可能会有问题,一般在unix下可以去掉这个配置。

NAMES.DIRECTORY_PATH=(THSNAMES,HOSTNAME,ONAMES)——表示将首先利用tnsnames进行解析;如果tnsnames解析不到,将使用hostname解析;如果hostname解析不到,将采用onames进行解析。

被注释掉的NAMES.DEFAULT_DOMAIN=us.oracle.com——表示采用默认的domain name为us.oracle.com,在tnsnames,ora中如果配置对应的解析,如果原来的别名oralocal,那么,当启用这个参数后,在tnsnames中的配置要改成oralocal.us.oracle.com。在使用tnsping 时或者sqlplus登录时,只需写前面的别名,系统会自动加上后面的domain name来进行解析。

第二、检查完毕sqlnet.ora,一般都会发现是使用tnsname 来解析别名的,那么,tnsnames.ora中可以有哪些配置种类呢?

 

 

另外需要注意的两点情况:

(1)如果tnsnames中的service_name配置错误,配置成了instance_name了,这个时候会发生tnsping能通,但是sqlplus连接不上的奇怪情况。报错ORA-12514:listener could not resolve SERVICE_NAME given in connect descriptor。这个时候查错的时候,需要检查对应的service_name。

(2)如果远程数据库是rac,而且本地用户端远程数据库处于不同的网段,通过公网链接,rac对外的IP映射只有一个,即只映射到一个节点。请注意在客户端配置tnsnames的时候按照单机的情况来配置。dba不仅仅要学习oracle,了解一些网络的知识,特别是自己系统的网络架构,也是需要的。

第三、listener.ora

一个完整的实例:服务端:

     客户端:

猜你喜欢

转载自www.cnblogs.com/xiaoqiujin1012-JR/p/8970098.html
今日推荐