tnsnames.ora文件中的本地命名参数
本章提供了tnsnames.ora文件配置参数的完整列表。本章包含以下主题:
• 本地命名参数Local Naming Parameters概述
• tnsnames.ora的常规语法
• tnsnames.ora中的多重描述
• tnsnames.ora中的多重地址列表
• 使用Oracle连接管理器进行连接时故障和客户端负载平衡
• 连接描述符描述
• 协议地址部分
• 地址列表的可选参数
• 连接数据部分
• 安全部分
• 超时参数
• 压缩参数
本地命名参数概述
该tnsnames.ora文件是一个配置文件,其中包含映射到本地命名方法连接描述符的网络服务名称,或映射到监听程序协议地址的网络服务名称。
网络服务名称是映射到包含的数据库网络地址的别名的连接描述符。连接描述符包含通过协议地址的监听程序的位置以及要连接的数据库的服务名称。客户端和数据库服务器(即其他数据库服务器的客户端)在与应用程序建立连接时使用网络服务名称。
默认情况下,该tnsnames.ora文件位于ORACLE_HOME/network/admin目录中。Oracle Net将检查配置文件的其他目录。例如,检查tnsnames.ora文件的顺序如下:
注意:
在Microsoft Windows上,TNS_ADMIN如果在进程的环境中设置了环境变量,则使用该变量。如果TNS_ADMIN未在环境中定义环境变量,或者该进程是没有环境的服务,则Microsoft Windows会在注册表中扫描TNS_ADMIN参数。
tnsnames.ora的常规语法
例6-1中tnsnames.ora显示了文件的基本语法。
例6-1 tnsnames.ora文件的基本格式
net_service_name =
(DESCRIPTION =
(ADDRESS =(protocol_address_information))
(CONNECT_DATA =
(SERVICE_NAME = service_name)))
在前面的示例中,DESCRIPTION包含连接描述符,ADDRESS包含协议地址,并CONNECT_DATA包含数据库服务标识信息。
tnsnames.ora中的多个描述
一个tnsnames.ora文件可以包含一个或多个连接的描述网络服务名。每个连接描述符可以包含一个或多个协议地址。例6-2显示了两个具有多个地址的连接描述符。DESCRIPTION_LIST定义连接描述符列表。
示例6-2 tnsnames.ora中具有多个连接描述符的网络服务名称
net_service_name =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
(DESCRIPTION =
(ADDRESS =(PROTOCOL = TCP)(HOST = HR1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = HR2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = hr.us.example.com))))
笔记:
使用Oracle Connection Manager时,Oracle Net Manager不支持为网络服务名称创建多个连接描述符。
tnsnames.ora中的多个地址列表
该tnsnames.ora文件还支持具有多个地址列表的连接描述符,每个地址列表都有自己的特征。在例6-3中,给出了两个地址列表。第一个地址列表具有客户端负载平衡和无连接时故障切换功能,这些仅与其中的协议地址ADDRESS_LIST有关。第二个协议地址列表没有客户端负载加载平衡,但确实有连接时故障切换,只影响其中的协议地址ADDRESS_LIST。客户端首先随机尝试第一个或第二个协议地址,然后按顺序尝试协议地址3和4。
示例6-3 tnsnames.ora中的多个地址列表
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE =on)
(FAILOVER = OFF)
(ADDRESS =(protocol_address_information))
(ADDRESS =(protocol_address_information)))
(ADDRESS_LIST =
(LOAD_BALANCE = OFF)
(FAILOVER = ON)
(ADDRESS =(protocol_address_information))
(ADDRESS =(protocol_address_information)))
(CONNECT_DATA =
(SERVICE_NAME = service_name)))
注意:
· IFILE = / TMP / listener_em.ora
· IFILE = / TMP / listener_cust1.ora
· IFILE = / TMP / listener_cust2.ora
有关其他信息,请参阅Oracle数据库参考。
使用Oracle连接管理器进行连接时故障切换和客户端负载平衡
当tnsnames.ora文件中的连接描述符包含至少两个用于Oracle Connection Manager的协议地址时,连接时故障切换和负载平衡的参数可以包含在文件中。
例6-4说明了多个Oracle Connection Manager协议地址的故障切换。
示例6-4 tnsnames.ora中的多个Oracle Connection Manager地址
SAMPLE1 =
(DESCRIPTION =
(SOURCE_ROUTE =yes)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = tcp)(HOST = host1)(PORT = 1630)) #1
(ADDRESS_LIST =
(FAILOVER = ON)
(LOAD_BALANCE =close)#2
(ADDRESS =(PROTOCOL = TCP)(HOST = host2a)(PORT = 1630))
(ADDRESS =(PROTOCOL = TCP)(HOST = host2b)(PORT = 1630)))
(ADDRESS =(PROTOCOL = tcp)(HOST = host3)(PORT = 1521)))#3
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com)))
在示例6-4中,语法执行以下操作:
(ADDRESS =(PROTOCOL = TCP)(HOST =host1)(PORT = 1630))
(ADDRESS_LIST =
(FAILOVER = ON)
(LOAD_BALANCE = OFF)
(ADDRESS =(PROTOCOL = TCP)(HOST = host2a)(PORT = 1630))
(ADDRESS =(PROTOCOL = TCP)(HOST = host2b)(PORT = 1630)))
(ADDRESS =(PROTOCOL = TCP)(HOST = host3)(PORT = 1521))
例6-5说明了两个Oracle Connection Manager和两个协议地址之间的客户端负载平衡:
示例6-5 tnsnames.ora中的客户端负载平衡
SAMPLE2 =
(DESCRIPTION =
(LOAD_BALANCE = on) #1
(FAILOVER = on)
(ADDRESS_LIST =
(SOURCE_ROUTE =yes)
(ADDRESS =(PROTOCOL = tcp)(HOST = host1)(PORT = 1630)) #2
(ADDRESS =(PROTOCOL = TCP)(HOST =host2)(PORT = 1521)))
(ADDRESS_LIST =
(SOURCE_ROUTE =yes)
(ADDRESS =(PROTOCOL = TCP)(HOST = host3)(port= 1630))
(ADDRESS =(PROTOCOL = TCP)(HOST =host4)(port= 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com))) #3
在示例6-5中,语法执行以下操作:
连接描述符
每个连接描述符都包含在DESCRIPTION参数中。多个连接描述符由DESCRIPTION_LIST参数表征。本节将介绍这些参数。
作用
指定连接描述符的容器。
使用说明
使用多个DESCRIPTION参数时,请将参数放在参数下DESCRIPTION_LIST。
例
net_service_name =
(DESCRIPTION =
(ADDRESS = ...)
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com)))
DESCRIPTION_LIST
作用
定义特定网络服务名称的连接描述符列表。
例
net_service_name =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = ...)
(CONNECT_DATA =(SERVICE_NAME = sales.example.com)))
(DESCRIPTION =
(ADDRESS = ...)
(CONNECT_DATA =(SERVICE_NAME = sales2.us.example.com))))
协议地址部分
文件的协议地址部分tnsnames.ora指定监听程序的协议地址。如果只有一个监听程序协议地址,则使用ADDRESS参数。如果有多个地址,则使用ADDRESS_LIST参数。
作用
定义单个监听程序协议地址。
使用说明
将此参数放在ADDRESS_LIST参数或DESCRIPTION参数下。
例
net_service_name =
(DESCRIPTION =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales-SVR)(PORT = 1521))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com))
也可以看看:
第4章"协议地址配置",了解用于每种协议的正确参数
ADDRESS_LIST
作用
定义协议地址列表。
使用说明
如果只有一个监听程序协议地址,则ADDRESS_LIST不是必需的。
将此参数放在DESCRIPTION参数或DESCRIPTION_LIST参数下。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com)))
地址列表的可选参数
对于多个地址,可以使用以下参数:
· ENABLE
· FAILOVER
· LOAD_BALANCE
· RECV_BUF_SIZE
· SDU
· SEND_BUF_SIZE
· SOURCE_ROUTE
· TYPE_OF_SERVICE
ENABLE
作用
要允许呼叫者检测已终止的远程服务器,通常需要2小时或更长时间才能注意到。
使用说明
(ENABLE=broken)可以打开心跳信号连接的特性。(ENABLE=broken)一般放在DESCRIPTION属性的下面。
在客户端,默认tcp_keepalive是关闭的。操作系统TCP配置(根据平台而异)定义了实际的keepalive时序详细信息。
值
broken
例
net_service_name =
(DESCRIPTION =
(ENABLE =broken)
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com))
虽然前面的示例有多个地址,ADDRESS_LIST但未使用该参数。这是因为ADDRESS_LIST参数不是强制性的。
作用
为多个协议地址启用或禁用连接时故障切换。
使用说明
当您将参数设置为on,yes或true,Oracle网络在连接时故障切换到不同的地址。当您将参数设置为off,no或false,Oracle网络会尝试一个可用的IP地址。
将此参数放在DESCRIPTION_LIST参数,DESCRIPTION参数或ADDRESS_LIST参数下。
重要提示:
不要在listener.ora的SID_LIST_listener_name部分设置GLOBAL_DBNAME参数。其中配置的全局数据库名称是固定名称,会自动禁止使用故障切换功能。
默认值
DESCRIPTION_LIST,DESCRIPTION和ADDRESS_LIST参数默认为on
值
例
net_service_name =
(DESCRIPTION =
(FAILOVER = ON)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com)))
作用
为多个协议地址启用或禁用客户端负载平衡。
使用说明
当您将参数设置为on,yes或true,Oracle网络经过随机序列的地址列表,均衡的各种监听器或Oracle连接管理器协议地址的负载。当将参数设置为off,no,或false,Oracle网络尝试的协议地址顺序直到一个成功。
将此参数放在DESCRIPTION_LIST参数,DESCRIPTION参数或ADDRESS_LIST参数下。
默认
对于 DESCRIPTION_LIST on
值
例
net_service_name =
(DESCRIPTION =
(LOAD_BALANCE =on)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com))
RECV_BUF_SIZE
作用
指定用于接收会话操作的缓冲区空间的字节数。
使用说明
TCP / IP,带有SSL的TCP / IP和SDP协议支持此参数。
将此参数放在参数下DESCRIPTION或协议地址的末尾。
在客户端的连接描述符中设置此参数会覆盖客户端文件中的RECV_BUF_SIZE参数sqlnet.ora。
注意:
其他协议可能在某些操作系统上支持此参数。有关其他协议的其他信息,请参阅特定于操作系统的文档。
默认值
此参数的默认值特定于操作系统。Linux 2.6操作系统的默认值为110592(108 KB)字节。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-server)(PORT = 1521)
(RECV_BUF_SIZE = 11784))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-server)(PORT = 1521)
(RECV_BUF_SIZE = 11784))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
net_service_name =
(DESCRIPTION =
(RECV_BUF_SIZE = 11784)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = HR1-server)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = HR2-server)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = hr.us.example.com)))
也可以看看:
有关配置此参数的其他信息,请参见"Oracle数据库网络服务管理员指南"
SDU
作用
指示Oracle Net优化通过网络以指定会话数据单元(SDU)大小发送的数据包的传输速率。
使用说明
将此参数放在参数下DESCRIPTION。
在客户端的连接描述符中设置此参数会覆盖客户端文件中的DEFAULT_SDU_SIZE参数sqlnet.ora。
默认
8192字节(8 KB)
值
512到2097152个字节。
例
net_service_name =
(DESCRIPTION =
(SDU = 8192)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-server)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-server)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com))
也可以看看:
Oracle数据库网络服务管理员指南,了解完整的SDU使用和配置信息
SEND_BUF_SIZE
作用
为字节指定会话发送操作的缓冲区空间。
使用说明
TCP / IP,带有SSL的TCP / IP和SDP协议支持此参数。
将此参数放在参数下DESCRIPTION或协议地址的末尾。
在客户端的连接描述符中设置此参数会覆盖客户端文件中的SEND_BUF_SIZE参数sqlnet.ora。
注意:
其他协议可能在某些操作系统上支持此参数。有关其他协议的信息,请参阅特定于操作系统的文档。
默认值
此参数的默认值是特定于操作系统的。Linux 2.6操作系统的默认值为110592(108 KB)字节。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-server)(PORT = 1521)
(SEND_BUF_SIZE = 11784))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-server)(PORT = 1521)
(SEND_BUF_SIZE = 11784)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
net_service_name =
(DESCRIPTION =
(SEND_BUF_SIZE = 11784)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = HR1-server)(PORT = 1521)
(ADDRESS =(PROTOCOL = TCP)(HOST = HR2-server)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = hr.us.example.com)))
也可以看看:
有关配置此参数的其他信息,请参见"Oracle数据库网络服务管理员指南"
SOURCE_ROUTE
作用
启用通过多个协议地址进行路由。
使用说明
将此参数设置为on或时yes,Oracle Net将按顺序使用每个地址,直到到达目标。
要使用Oracle Connection Manager,需要从客户端到Oracle Connection Manager的初始连接,并且需要从Oracle Connection Manager到监听程序的第二个连接。
将此参数放在DESCRIPTION_LIST参数,DESCRIPTION参数或ADDRESS_LIST参数下。
默认值
off
值
例
net_ service_name =
(DESCRIPTION =
(SOURCE_ROUTE =on)
(ADDRESS =(PROTOCOL = TCP)(HOST = CMAN-PC)(PORT = 1630))
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(CONNECT_DATA =(SERVICE_NAME = sales.us.example.com))
也可以看看:
Oracle Database Net Services管理员指南,了解完整的配置信息
TYPE_OF_SERVICE
作用
指定用于Oracle Rdb数据库的服务类型。
使用说明
仅当应用程序同时支持Oracle Rdb和Oracle数据库服务并且您希望应用程序在两者之间进行负载平衡时,才应使用此参数。
将此参数放在参数下DESCRIPTION。
例
net_service_name =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = ...)
(CONNECT_DATA =
(SERVICE_NAME =generic)
(RDB_DATABASE = [MF] mf_personal.rdb)
(GLOBAL_NAME =alpha5))
(TYPE_OF_SERVICE = rdb_database))
(DESCRIPTION =
(ADDRESS = ...)
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com))
(TYPE_OF_SERVICE = oracle11_database)))
连接数据部分
tnsnames.ora文件的连接数据部分指定目标服务的名称。可以使用以下参数:
• CONNECT_DATA
• FAILOVER_MODE
• GLOBAL_NAME
• HS
• INSTANCE_NAME
• RDB_DATABASE
• SERVER
• SERVICE_NAME
CONNECT_DATA
作用
定义要连接的服务,例如SERVICE_NAME。
使用说明
将此参数放在参数下DESCRIPTION。
CONNECT_DATA 允许以下附加参数:
· FAILOVER_MODE
· GLOBAL_NAME
· HS
· INSTANCE_NAME
· RDB_DATABASE
· SERVER
· SERVICE_NAME
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
作用
如果第一个监听程序在运行时失败,则指示Oracle Net故障切换到其他监听程序。
使用说明
根据配置,会话或SELECT正在进行的任何语句将自动进行故障切换。
此类故障切换称为透明应用程序故障切换(Transparent Application Failover TAF),不应与连接时故障切换FAILOVER参数混淆。
将此参数放在参数下CONNECT_DATA。
附加参数
FAILOVER_MODE 支持以下参数:
o SESSION:会话进程失败。例如,如果用户的连接丢失,则会自动为备份上的用户创建新会话。此类故障切换不会尝试恢复选择。
o SELECT:允许具有打开游标的用户在失败后继续获取它们。但是,此模式涉及正常选择操作中客户端的开销。
o NONE:这是默认设置,不使用故障切换功能。这也可以明确指定,以防止发生故障切换。
o BASIC:在故障切换时建立连接。此选项在故障切换时间之前几乎不需要备份数据库服务器上的任何工作。
o PRECONNECT:预先建立连接。这提供了更快的故障切换,但要求备份实例能够支持来自每个受支持实例的所有连接。
注意:
如果注册了回调函数,则RETRIES和DELAY参数将被忽略。
也可以看看:
"Oracle数据库网络服务管理员指南"以获取其他配置信息
GLOBAL_NAME
作用
识别Oracle Rdb数据库。
使用说明
将此参数放在参数下CONNECT_DATA。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME =generic)
(RDB_DATABASE = [.mf]mf_personal.rdb)
(GLOBAL_NAME =alpha5)))
HS
作用
指导Oracle Net通过异构服务Heterogeneous Services 连接到非Oracle系统。
使用说明
将此参数放在参数下CONNECT_DATA。
默认值
None
值
ok
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SID = sales6)
(HS = ok)))
也可以看看:
Oracle Database Net Services管理员指南,了解完整的配置信息
INSTANCE_NAME
作用
标识要访问的数据库实例。
使用说明
将值设置为INSTANCE_NAME初始化参数文件中参数指定的值。
将此参数放在参数下CONNECT_DATA。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)
(INSTANCE_NAME =sales1)))
也可以看看:
有关使用的其他信息,请参阅 "Oracle数据库网络服务管理员指南 "INSTANCE_NAME
RDB_DATABASE
作用
指定Oracle Rdb数据库的文件名。
使用说明
将此参数放在参数下CONNECT_DATA。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)
(RDB_DATABASE = [.mf] mf_personal.rdb)))
SERVICE_NAME
作用
指示监听程序将客户端连接到特定类型的服务处理程序。
使用说明
将此参数放在参数下CONNECT_DATA。
值
笔记:
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)
(SERVER =dedicated)))
作用
标识要访问的Oracle数据库数据库服务。
使用说明
将值设置为SERVICE_NAMES初始化参数文件中的参数指定的值。
将此参数放在参数下CONNECT_DATA。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
也可以看看:
有关使用该SERVICE_NAME参数的其他信息,请参见"Oracle数据库网络服务管理员指南"
安全部分
tnsnames.ora文件的安全性部分指定以下与安全性相关的参数,以用于Oracle安全性功能:
作用
启用安全连接。将此参数放在参数下DESCRIPTION。
使用说明
SECURITY允许SSL_SERVER_CERT_DN参数。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com))
(SECURITY =
(SSL_SERVER_CERT_DN = "cn=sales,cn=OracleContext,dc=us,dc=acme,dc =com")))
SSL_SERVER_CERT_DN
作用
指定数据库服务器的识别名称distinguished name (DN)。
使用说明
客户端使用此信息获取每个服务器所需的DN列表,强制数据库服务器DN与其服务名称匹配。
将此参数与sqlnet.ora参数SSL_SERVER_DN_MATCH一起使用以启用服务器DN匹配。
例
net_service_name =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = ...)
(ADDRESS = ...))
(CONNECT_DATA =
(SERVICE_NAME = finance.us.example.com))
(SECURITY =
(SSL_SERVER_CERT_DN = "cn=finance,cn=OracleContext,dc=us,dc=acme,dc=com")))
也可以看看:
超时参数
tnsnames.ora文件的超时部分提供了通过TNS连接字符串指定超时和重试配置的功能。可以在DESCRIPTION连接字符串的级别设置以下参数:
CONNECT_TIMEOUT
作用
指定客户端与Oracle数据库建立Oracle Net连接的超时持续时间(以秒为单位)。
使用说明
将此参数放在参数下DESCRIPTION。
指定的超时间隔CONNECT_TIMEOUT是TCP连接超时间隔的超集。它包括连接到提供所请求服务的数据库实例的时间,而不仅仅是TCP连接的持续时间。
超时间隔是适用于每个ADDRESS在一个ADDRESS_LIST,以及其中一个主机名被映射的每个IP地址。
该CONNECT_TIMEOUT参数等效于sqlnet.ora参数SQLNET.OUTBOUND_CONNECT_TIMEOUT,并覆盖它。
例
net_service_name =
(DESCRIPTION =
(CONNECT_TIMEOUT = 10)(RETRY_COUNT = 3)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
RETRY_COUNT
作用
指定在ADDRESS终止连接尝试之前遍历列表的次数。
使用说明
将此参数放在参数下DESCRIPTION。
当一个DESCRIPTION_LIST被指定时,每一个DESCRIPTION被遍历根据重试的指定数作用多次。
例
net_service_name =
(DESCRIPTION_LIST =
(DESCRIPTION =
(CONNECT_TIMEOUT = 10)(RETRY_COUNT = 3)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = sales1a-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales1b-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales1.example.com)))
(DESCRIPTION =
(CONNECT_TIMEOUT = 60)(RETRY_COUNT = 1)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2a-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2b-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales2.us.example.com))))
RETRY_DELAY
作用
指定后续重试连接之间的延迟(以秒为单位)。此参数与RETRY_COUNT参数一起使用。
使用说明
将此参数放在参数下DESCRIPTION。
当一个DESCRIPTION_LIST被指定时,每一个DESCRIPTION被遍历基于所指定的次数的重试,和用于描述特定延迟多次。
例
net_service_name =
(DESCRIPTION_LIST =
(DESCRIPTION =
(CONNECT_TIMEOUT = 10)(RETRY_COUNT = 3)(RETRY_DELAY = 2)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = sales1a-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales1b-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales1.example.com)))
(DESCRIPTION =
(CONNECT_TIMEOUT = 60)(RETRY_COUNT = 2)(RETRY_DELAY = 1)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2a-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2b-SVR)(PORT = 1521)))
(CONNECT_DATA =(SERVICE_NAME = sales2.us.example.com))))
TRANSPORT_CONNECT_TIMEOUT
作用
指定客户端与Oracle数据库建立Oracle Net连接的传输超时持续时间(秒)。
使用说明
此参数放在DESCRIPTION参数下。
该TRANSPORT_CONNECT_TIMEOUT参数指定客户端与数据库服务器建立TCP连接的时间(以秒为单位)。默认值为60秒。
超时间隔适用ADDRESS于ADDRESS_LIST描述中的每个以及主机名映射的每个IP地址。该TRANSPORT_CONNECT_TIMEOUT参数等效于sqlnet.ora参数TCP.CONNECT_TIMEOUT,并覆盖它。
例
net_service_name =
(DESCRIPTION =
(TRANSPORT_CONNECT_TIMEOUT = 10)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST =sales1-SVR)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = sales2-SVR)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
压缩参数
该tnsnames.ora文件的压缩部分提供了启用压缩和指定压缩级别的功能。可以在DESCRIPTION连接字符串的级别设置以下参数:
压缩
作用
启用或禁用数据压缩。
使用说明
将此参数放在参数下DESCRIPTION。
在客户端的连接描述符中设置此参数会覆盖客户端文件中的SQLNET.COMPRESSION参数sqlnet.ora。
默认
off
值
例
net_service_name =
(DESCRIPTION =
(COMPRESSION =on)
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = tcp)(HOST = sales1-server)(PORT = 1521))
(ADDRESS =(PROTOCOL = tcp)(HOST = sales2-server)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))
COMPRESSION_LEVELS
作用
指定压缩级别。
使用说明
在协商时使用压缩级别来验证两端使用哪些级别,并选择一个级别。将此参数放在参数下DESCRIPTION。
此参数与COMPRESSION参数一起使用。在客户端的连接描述符中设置此参数会覆盖客户端文件中的SQLNET.COMPRESSION_LEVELS参数sqlnet.ora。
默认
low
值
例
net_service_name =
(DESCRIPTION =
(COMPRESSION =on)
(COMPRESSION_LEVELS =(LEVEL =low)(LEVEL =high))
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)( HOST=sales1-server)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)( HOST=sales2-server)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = sales.us.example.com)))