一、作用
这里可以看官网解释Parameters for the sqlnet.ora File (oracle.com)
该文件是配置文件配置文件。它驻留在客户端计算机和数据库服务器上。配置文件使用此文件进行存储和实现。可以使用文件中的访问控制参数配置数据库服务器。这些参数根据协议.sqlnet.ora
sqlnet.ora
通过该文件,您可以执行以下操作:sqlnet.ora
-
指定要追加到非限定名称的客户端域
-
确定命名方法的优先级
-
启用日志记录和跟踪功能
-
通过特定流程路由连接
-
配置外部命名参数
-
配置 Oracle 高级安全性
-
使用特定于协议的参数来限制对数据库的访问
默认情况下,该文件位于目录中。该文件也可以存储在环境变量指定的目录中。sqlnet.ora
ORACLE_HOME/network/admin
sqlnet.ora
TNS_ADMIN
二、常用参数
1.SQLNET.AUTHENTICATION_SERVICES
使用说明:
使用值时,服务器会尝试使用以下每种方法进行身份验证。如果列表中较高的服务器不成功,则服务器将回退到列表中较低的服务器。SQLNET.AUTHENTICATION_SERVICES
all
-
基于数据库外部的服务(例如网络层、Kerberos 或 RADIUS)上的服务进行身份验证。
-
基于操作系统用户在管理操作系统组中的成员身份的身份验证。组名称是特定于平台的。此身份验证仅适用于管理连接。
-
数据库执行的身份验证。
-
基于存储在目录服务器中的凭据的身份验证。
操作系统身份验证允许在尝试管理连接时使用任何用户名和密码访问数据库,例如在使用 SQL*Plus 进行连接时使用子句。连接示例如下。AS SYSDBA
sqlplus ignored_username/ignored_password AS SYSDBA
如果发出上述命令的操作系统用户已经是相应管理操作系统组的成员,则连接成功。这是因为由于先检查组成员身份,服务器会忽略用户名和密码。
Oracle Net Services 提供的身份验证方法:
-
none
对于没有身份验证方法,包括 Microsoft Windows 本机操作系统身份验证。设置为 时,可以使用有效的用户名和密码来访问数据库。SQLNET.AUTHENTICATION_SERVICES
none
-
all
适用于所有身份验证方法。 -
beq
用于 Microsoft Windows 以外的操作系统的本机操作系统身份验证 -
kerberos5
用于 Kerberos 身份验证 -
nts
用于 Microsoft Windows 本机操作系统身份验证 -
radius
用于远程身份验证拨入用户服务 (RADIUS) 身份验证 -
tcps
用于 SSL 身份验证
2.NAMES.DIRECTORY_PATH
指定用于客户端名称解析查找的命名方法的顺序
看以下官网给的详解:sqlnet.ora 文件的参数 (oracle.com)
3.SQLNET.EXPIRE_TIME
指定时间间隔(以分钟为单位)以发送检查以验证客户端/服务器连接是否处于活动状态。以下使用说明适用于此参数:
-
设置大于 0 的值可确保连接不会因客户端异常终止而无限期保持打开状态。
-
如果探测器找到已终止的连接或不再使用的连接,则会返回错误,从而导致服务器进程退出。
-
此参数主要用于数据库服务器,该服务器通常在任何时候处理多个连接。
-
-
遗赠连接不允许使用。
-
虽然探测数据包非常小,但会生成额外的流量,这可能会降低网络性能。
-
根据正在使用的操作系统,服务器可能需要执行其他处理,以将连接探测事件与发生的其他事件区分开来。这也可能导致网络性能下降。
-
推荐值
10
SQLNET.EXPIRE_TIME=10
4.INBOUND_CONNECT_TIMEOUT
如果客户机未能在指定的时间内建立连接并完成认证,则数据库服务器将终止连接。此外,数据库服务器还会将客户机的 IP 地址和错误消息记录到文件中。客户端收到 或 错误消息。ORA-12170: TNS:Connect timeout occurred
sqlnet.log
ORA-12547: TNS:lost contact
ORA-12637: Packet receive failed
该参数的默认值适用于典型使用场景。但是,如果需要显式设置其他值,则 Oracle 建议将此参数与文件中的 INBOUND_CONNECT_TIMEOUT_listener_name 参数结合使用。指定这些参数的值时,请注意以下建议:listener.ora
-
将这两个参数都设置为初始低值。
-
将参数的值设置为低于参数的值。
INBOUND_CONNECT_TIMEOUT_
listener_name
SQLNET.INBOUND_CONNECT_TIMEOUT
例如,可以设置为 2 秒,参数设置为 3 秒。如果客户端由于特定环境的正常系统或网络延迟而无法在指定时间内完成连接,则根据需要增加时间。INBOUND_CONNECT_TIMEOUT_
listener_name
SQLNET.INBOUND_CONNECT_TIMEOUT
5.
RECV_TIMEOUT
指定数据库服务器在建立连接后等待客户机数据的时间(以秒为单位)。客户端必须在时间间隔内发送一些数据。
对于客户端偶尔关闭或异常关闭的环境,建议设置此参数。如果客户机未在指定的时间内发送任何数据,则数据库服务器会向文件发送日志和消息。如果没有此参数,数据库服务器可能会继续等待来自可能关闭或遇到困难的客户端的数据。ORA-12535: TNS:operation timed out
ORA-12609: TNS: Receive timeout occurred
sqlnet.log
您也可以在客户端设置该参数,以指定客户端在建立连接后等待来自数据库服务器的响应数据的时间(以秒为单位)。如果没有此参数,客户端可能会等待很长一段时间才能收到来自请求饱和的数据库服务器的响应。如果选择设置该值,则将该值设置为初始低值,并根据系统和网络容量进行调整。如有必要,请将此参数用于 SQLNET。SEND_TIMEOUT参数。
6.SEND_TIMEOUT
指定数据库服务器在建立连接后完成向客户端发送操作的时间(以秒为单位)。对于客户端偶尔关闭或异常关闭的环境,建议设置此参数。
如果数据库服务器无法在指定的时间内完成发送操作,则会记录并向文件发送消息。如果没有此参数,数据库服务器可能会继续向由于计算机关闭或繁忙状态而无法接收数据的客户端发送响应。ORA-12535: TNS:operation timed out
ORA-12608: TNS: Send timeout occurred
sqlnet.log
您也可以在客户端设置该参数,以指定客户端在建立连接后完成向数据库服务器发送操作的时间(以秒为单位)。如果没有此参数,客户端可能会继续向已饱和请求的数据库服务器发送请求。如果选择设置该值,则将该值设置为初始低值,并根据系统和网络容量进行调整。如有必要,请将此参数用于 SQLNET。RECV_TIMEOUT参数。
7.VALIDNODE_CHECKING
客户端限制
启用和禁用传入连接的有效节点检查。如果此参数设置为 ,则仅当传入连接源自符合 TCP 指定的列表的节点时,才允许传入连接。
TCP.INVITED_NODES 和 TCP.EXCLUDED_NODES参数仅在 TCP.VALIDNODE_CHECKING参数设置为 yes时才能生效
TCP.EXCLUDED_NODES
指定拒绝哪些客户端访问数据库。
TCP.EXCLUDED_NODES=(hostname | ip_address, hostname | ip_address, ...)
TCP.INVITED_NODES
指定允许哪些客户端访问数据库。如果两个列表都存在,则此列表优先于参数TCP.EXCLUDED_NODES
TCP.INVITED_NODES=(hostname | ip_address, hostname | ip_address, ...)
8.USE_DEDICATED_SERVER
追加到客户端使用的连接描述符部分。它覆盖文件中 SERVER 参数的当前值。(SERVER=dedicated)
CONNECT_DATA
tnsnames.ora
-
dedicated
指定是否由专用服务器处理客户端请求 -
shared
指定是否由共享服务器处理客户端请求 -
pooled
如果服务器上启用了数据库驻留连接池,则从连接池获取连接
如果设置为 ,则该参数会自动追加到连接描述符的连接数据。这样,即使配置了共享服务器,来自此客户端的连接也会使用专用服务器进程。on
USE_DEDICATED_SERVER
(SERVER=dedicated)
-
on
追加(SERVER=dedicated)
-
off
向现有服务器进程发送请求
USE_DEDICATED_SERVER=on