被一个客户端连接远程数据库阻塞超时的问题困扰了好久,最后终于找到了答案
 https://blog.csdn.net/herobox/article/details/16985097
 
Oracle sqlnet.ora配置
 
sqlnet.ora的作用(官网指出的)
1.限制客户端访问(如指定客户端域为不允许访问)
2.指定命名方法(local naming,directory nameing...)的优先级
3.启用日志及跟踪(log and trace)功能
4.通过特定进程来路由客户端连接
5.配置外部命名(第三方连接程序,如c语言写的)参数
6.配置Oracle的高级安全
7.使用协议特定的参数限制对数据库的访问
 
sqlnet配置文件的存放位置一般在:$ORACLE_HOME/network/admin目录下
 
常用参数设置
1.设置windows下允许使用windows nt本地认证
SQLNET.AUTHENTICATION_SERVICES=(nts)
 
2.设置Oracle客户端连接串命名查找顺序
NAMES.DIRECTORY_PATH=(tnsnames, onames,ezconnect)
允许的值有:
1.tnsnames使用客户端的tnsnames.ora解析
2.ldap使用目录访问协议解析,需要有目录服务
3.ezconnect or hostname,允许使用tcp/ip连接串,包含主机名,端口,服务名
4.cds分布式环境的数据库名
5.nis (Network Information Service (NIS) external naming method),主要用于外部程序解析
6.onames:通过Oracle Name Server解析
 
 
3.设置客户端连接会话超时时间(单位分钟)
定期检测客户端是否还是活动的,设置为0不检测
SQLNET.EXPIRE_TIME = 10
另外还有:
 
客户端建立连接超时时间(单位秒,默认60)
SQLNET.INBOUND_CONNECT_TIMEOUT=10
Oracle建议在listener.ora中也进行配置
 
接受超时时间(单位秒)
SQLNET.RECV_TIMEOUT=3
 
发送超时时间(单位秒)
SQLNET.SEND_TIMEOUT=3
 
 
4.客户端限制
是否进行限制(默认no):
TCP.VALIDNODE_CHECKING
如:TCP.VALIDNODE_CHECKING=yes
限制客户端访问
TCP.EXCLUDED_NODES=(hostname | ip_address, hostname | ip_address, ...)
如:TCP.EXCLUDED_NODES=(finance.us.acme.com, mktg.us.acme.com, 144.25.5.25)
允许客户端访问,会覆盖限制访问
TCP.INVITED_NODES=(hostname | ip_address, hostname | ip_address, ...)
如:TCP.INVITED_NODES=(sales.us.acme.com, hr.us.acme.com, 144.185.5.73)
 
5.设置立即发送
设置等待一段时间或者数据包凑够多大才会一起发送,或者可以让数据立即发送
TCP.NODELAY=yes
 
6.设置使用专享连接还是公用链接
设置为on会在客户端连接串后加上(SERVER=dedicated)
USE_DEDICATED_SERVER=on/off
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
再来一篇:
 
DBA对这个文件一定不会陌生,大家了解最多的也一定是sqlnet.ora用来决定oracle怎么解析一个连接中出现的字符串,例如:
sqlplus sys/oracle@orcl
那么这个orcl怎么解析?如果你的sqlnet.ora这样配置的:
  SQLNET.AUTHENTICATION_SERVICES= (NTS)
  
  NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名

  
  如果我是这个样子
  
  NAMES.DIRECTORY_PATH= (TNSNAMES)
  
  那么客户端就只会从tnsnames.ora查找orcl的记录
今天,我们来详细的了解一下sqlnet.ora中参数的配置以及各自的意义。
按官方文档的说法,sqlnet.ora有这么多作用:
Specify the client domain to append to unqualified names
Prioritize naming methods
Enable logging and tracing features
Route connections through specific processer
Configure parameters for external naming
Configure Oracle Advanced Security
Use protocol-specific parameters to restrict access to the database
重要参数及解释:
1.BEQUEATH_DETACH
控制unix系统中signal handling 的开关,默认是no,即signal handling 打开。
2.DEFAULT_SDU_SIZE
指定session data unit (SDU) 的大小,单位是bytes,建议在client端和server端都设置这个参数,确保链接的时候使用相同的SDU size,如果client端和server端配置的值不匹配会使用较小的。

3.LOG_DIRECTORY_CLIENT/LOG_DIRECTORY_SERVER
指定客户端/server端log日志文件的位置
4.NAMES.DEFAULT_DOMAIN
设定客户端解析名字的域
5.NAMES.DIRECTORY_PATH
指定client name解析方法的次序,默认是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
取值可以是tnsnames,ldap(dictionary server),hostname/ezconnect,cds (分布式环境下),nis (Network Information Service (NIS)

6.SQLNET_ALLOWED_LOGON_VERSIONS
指定运行链接的oracle的版本SQLNET_ALLOWED_LOGON_VERSIONS=(10,9,8)
7.SQLNET.AUTHENTICATION_SERVICES
指定启动一个或多个认证服务
Authentication Methods Available with Oracle Net Services:
none for no authentication methods. A valid username and password can be used to access the database.

all for all authentication methods
nts for Windows NT native authentication
8.SQLNET.INBOUND_CONNECT_TIMEOUT
指定客户端没有链接成功超时的时间。超时之后oracle会中断链接,同时报错。
9.SSL_VERSION
指定ssl链接的版本
10.TCP.EXCLUDED_NODES
指定不允许访问oracle的节点,可以使用主机名或者IP地址
11.TCP.INVITED_NODES
指定允许访问db的客户端,他的优先级比TCP.EXCLUDED_NODES高。
12.TCP.VALIDNODE_CHECKING
使用这个参数来启用上边的两个参数。
13.TNSPING.TRACE_DIRECTORY
使用这个参数指定tnsping trace文件的目录,默认是$ORACLE_HOME/network/trace目录
更多参数信息参见:Oracle Database Net Services Reference

---------------------

本文来自 herobox 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/herobox/article/details/16985097?utm_source=copy

最新文章

  1. *HDU3367 最小生成树
  2. UNIX中的文件类型
  3. [OC笔记] protocol之我的见解
  4. mac 终端(terminal) 启动tomcat
  5. vs2013 内置IIS Express相关问题
  6. sample a texture as a rendertarget
  7. rdlc Report Viewer Configuration Error
  8. pycharm 源文件 编码格式
  9. UML中关系图解
  10. asp.net断点续传技术---下载(转)
  11. BZOJ2064: 分裂
  12. less补充函数
  13. python实战第一天-paramiko模块并练习
  14. 熟悉的“if __name__ == '__main__':”究竟是啥?
  15. 1118: 属于 static 类型 Object 的值的隐式强制指令的目标可能是非相关类型 Number。
  16. MySql 学习之路-高级1
  17. disk2vhd-----将windows系统转换成虚拟镜像格式
  18. hibernate--博客
  19. 网络之 Iptables总结
  20. 详解重定向(HTTP状态码301/302/303/307/408)附例子

热门文章

  1. 【转载】基于MFC的ActiveX控件开发(3)
  2. deque!
  3. python模块-datetime模块
  4. ARP 地址分类 NAT技术
  5. python中@property和property函数使用
  6. Unity3D — — Inspector面板编辑
  7. Python中的常规习题
  8. Navicat连接mysql报错1251
  9. CocoStuff—基于Deeplab训练数据的标定工具【三、标注工具的使用】
  10. 基于Neutron的Kubernetes SDN实践经验之谈