??官网地址:Local Naming Parameters in the tnsnames.ora File
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
本章提供了tnsnames.ora
文件配置参数的完整列表。
tnsnames.ora
至少包含两个 Oracle 连接管理器的协议地址时,连接时故障转移和负载平衡的参数可以包含在该文件中。DESCRIPTION
参数中。多个连接描述符由参数来表征DESCRIPTION_LIST
。tnsnames.ora
指定这些与安全相关的参数,以便与 Oracle 安全功能一起使用。tnsnames.or
提供了通过 TNS 连接字符串指定超时和重试配置的功能。tnsnames.ora
提供启用压缩和指定压缩级别的功能。DESCRIPTION
这些参数可以在连接字符串级别?设置。该tnsnames.ora
文件是一个配置文件,其中包含映射到本地命名方法的连接描述符的网络服务名称,或映射到侦听器协议地址的网络服务名称。
网络服务名称是映射到包含在数据库网络地址中的别名。连接描述符。连接描述符通过协议地址包含侦听器的位置以及要连接的数据库的服务名称。客户端和数据库服务器(即其他数据库服务器的客户端)在与应用程序建立连接时使用网络服务名称。
默认情况下,该tnsnames.ora
文件位于该ORACLE_HOME/network/admin
目录中。Oracle Net 将检查其他目录中的配置文件。例如,检查tnsnames.ora
文件的顺序如下:
环境变量指定的目录TNS_ADMIN
。如果在指定的目录中找不到该文件,则假定该文件不存在。
如果TNS_ADMIN
未设置环境变量,Oracle Net 将检查该ORACLE_HOME/network/admin
目录。
笔记:
在 Microsoft Windows 上,TNS_ADMIN
如果在进程的环境中设置了环境变量,则使用该环境变量。如果TNS_ADMIN
环境中未定义环境变量,或者进程是没有环境的服务,则 Microsoft Windows 会扫描注册表以查找参数TNS_ADMIN
。
也可以看看:
Oracle 数据库全局数据服务概念和管理指南有关全局服务管理的信息
Oracle 操作系统特定文档
文件的基本语法如例 6-1tnsnames.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
可以包含带有一个或多个连接描述符的网络服务名称。每个连接描述符可以包含一个或多个协议地址。示例 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
文件还支持具有多个地址列表的连接描述符,每个地址列表都有自己的特征。在例 6-3中,给出了两个地址列表。第一个地址列表具有客户端负载平衡和无连接时故障转移功能,仅影响其ADDRESS_LIST
.?第二个协议地址列表没有客户端负载平衡,但具有连接时故障转移,仅影响其ADDRESS_LIST
.?客户端首先随机尝试第一个或第二个协议地址,然后依次尝试第三个和第四个协议地址。
示例 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)))
笔记:
Oracle Net Manager仅支持为连接描述符创建一个协议地址列表。
Oracle Net Services 支持文件中的 IFILE 参数tnsnames.ora
,最多可进行三层嵌套。该参数手动添加到文件中。以下是语法示例:
IFILE=/tmp/listener_em.ora
IFILE=/tmp/listener_cust1.ora
IFILE=/tmp/listener_cust2.ora
有关更多信息,?请参阅Oracle 数据库参考。
当文件中的连接描述符tnsnames.ora
至少包含 Oracle 连接管理器的两个协议地址时,连接时故障转移和负载平衡的参数可以包含在该文件中。
示例 6-4 tnsnames.ora 中的多个 Oracle Connection Manager 地址
此示例说明了多个 Oracle Connection Manager 协议地址的故障转移。
sample1=
(DESCRIPTION=
(SOURCE_ROUTE=yes)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # 1
(ADDRESS_LIST=
(FAILOVER=on)
(LOAD_BALANCE=off) # 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)))
在这里,语法执行以下操作:
指示客户端连接到第一个 Oracle 连接管理器的协议地址,如下所示:
(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
第一个 Oracle 连接管理器被指示连接到另一个 Oracle 连接管理器的第一个协议地址。如果第一个协议地址失败,则尝试第二个协议地址。该序列通过以下配置指定:
(ADDRESS_LIST=
(FAILOVER=on)
(LOAD_BALANCE=off)
(ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630))
(ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630)))
Oracle Connection Manager 使用以下协议地址连接到数据库服务:
(ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521))
示例 6-5 tnsnames.ora 中的客户端负载平衡
此示例说明了两个 Oracle 连接管理器和两个协议地址之间的客户端负载平衡:
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
在这里,语法执行以下操作:
客户端被指示随机选择一个ADDRESS_LIST
,如果选择失败则故障转移到另一个ADDRESS_LIST
。这由LOAD_BALANCE
和FAILOVER
参数设置为 来指示on
。
选择 后ADDRESS_LIST
,客户端首先使用 Oracle Connection Manager 协议地址连接到 Oracle Connection Manager,该协议地址使用为 指定的端口 1630?ADDRESS_LIST
。
然后,Oracle Connection Manager 使用ADDRESS_LIST
.