Oracle sqlnet.ora配置文件

一、作用

这里可以看官网解释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_nameSQLNET.INBOUND_CONNECT_TIMEOUT

例如,可以设置为 2 秒,参数设置为 3 秒。如果客户端由于特定环境的正常系统或网络延迟而无法在指定时间内完成连接,则根据需要增加时间。INBOUND_CONNECT_TIMEOUT_listener_nameSQLNET.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

如果设置为 ,则该参数会自动追加到连接描述符的连接数据。这样,即使配置了共享服务器,来自此客户端的连接也会使用专用服务器进程。on``USE_DEDICATED_SERVER``(SERVER=dedicated)

  • on追加(SERVER=dedicated)

  • off向现有服务器进程发送请求

复制代码
USE_DEDICATED_SERVER=on
相关推荐
惜分飞7 小时前
ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理--惜分飞
数据库·oracle
fen_fen21 小时前
Oracle建表语句示例
数据库·oracle
此刻你1 天前
常用的 SQL 语句
数据库·sql·oracle
海心焱1 天前
从零开始构建 AI 插件生态:深挖 MCP 如何打破 LLM 与本地数据的连接壁垒
jvm·人工智能·oracle
德彪稳坐倒骑驴1 天前
MySQL Oracle面试题
数据库·mysql·oracle
吕司1 天前
MySQL库的操作
数据库·mysql·oracle
dishugj1 天前
【Oracle】 rac的一些问题以及解决方案
数据库·oracle
eWidget1 天前
面向信创环境的Oracle兼容型数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
熊文豪1 天前
关系数据库替换用金仓——Oracle兼容性深度解析
数据库·oracle·金仓数据库·电科金仓·kes
eWidget1 天前
面向Oracle生态的国产高兼容数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库