Oracle19c文档 tnsnames.ora (一)

  官网地址:Local Naming Parameters in the tnsnames.ora File

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

6 tnsnames.ora 文件中的本地命名参数

本章提供了tnsnames.ora文件配置参数的完整列表。

  • 本地命名参数概述
  • tnsnames.ora 的一般语法
  • tnsnames.ora 中的多个描述
  • tnsnames.ora 中的多个地址列表
  • 使用 Oracle 连接管理器进行连接时故障转移和客户端负载平衡
    当文件中的连接描述符tnsnames.ora至少包含两个 Oracle 连接管理器的协议地址时,连接时故障转移和负载平衡的参数可以包含在该文件中。
  • 连接描述符描述
    每个连接描述符都包含在DESCRIPTION参数中。多个连接描述符由参数来表征DESCRIPTION_LIST
  • 协议地址部分
  • 地址列表的可选参数
    对于多个地址,您可以使用可选参数来配置地址列表。
  • 连接数据部分
    了解如何使用协议地址配置网络连接。
  • 安全部分
    文件的安全部分tnsnames.ora指定这些与安全相关的参数,以便与 Oracle 安全功能一起使用。
  • 超时参数
    文件的超时部分tnsnames.or提供了通过 TNS 连接字符串指定超时和重试配置的功能。
  • 压缩参数
    文件的压缩部分tnsnames.ora提供启用压缩和指定压缩级别的功能。DESCRIPTION这些参数可以在连接字符串级别 设置。

6.1本地命名参数概述

tnsnames.ora文件是一个配置文件,其中包含映射到本地命名方法的连接描述符的网络服务名称,或映射到侦听器协议地址的网络服务名称。

网络服务名称是映射到包含在数据库网络地址中的别名。连接描述符。连接描述符通过协议地址包含侦听器的位置以及要连接的数据库的服务名称。客户端和数据库服务器(即其他数据库服务器的客户端)在与应用程序建立连接时使用网络服务名称。

默认情况下,该tnsnames.ora文件位于该ORACLE_HOME/network/admin目录中。Oracle Net 将检查其他目录中的配置文件。例如,检查tnsnames.ora文件的顺序如下:

  1. 环境变量指定的目录TNS_ADMIN。如果在指定的目录中找不到该文件,则假定该文件不存在。

  2. 如果TNS_ADMIN未设置环境变量,Oracle Net 将检查该ORACLE_HOME/network/admin目录。

笔记:

在 Microsoft Windows 上,TNS_ADMIN如果在进程的环境中设置了环境变量,则使用该环境变量。如果TNS_ADMIN环境中未定义环境变量,或者进程是没有环境的服务,则 Microsoft Windows 会扫描注册表以查找参数TNS_ADMIN

也可以看看:

  • Oracle 数据库全局数据服务概念和管理指南有关全局服务管理的信息

  • Oracle 操作系统特定文档

父主题: tnsnames.ora 文件中的本地命名参数

6.2 tnsnames.ora 的一般语法

文件的基本语法如例 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.3 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 文件中的本地命名参数

6.4 tnsnames.ora 中的多个地址列表

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 文件中的本地命名参数

6.5使用 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)))

在这里,语法执行以下操作:

  1. 指示客户端连接到第一个 Oracle 连接管理器的协议地址,如下所示:

    (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
  2. 第一个 Oracle 连接管理器被指示连接到另一个 Oracle 连接管理器的第一个协议地址。如果第一个协议地址失败,则尝试第二个协议地址。该序列通过以下配置指定:

    (ADDRESS_LIST=  
      (FAILOVER=on) 
      (LOAD_BALANCE=off)
      (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) 
      (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))) 
    
  3. 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

在这里,语法执行以下操作:

  1. 客户端被指示随机选择一个ADDRESS_LIST,如果选择失败则故障转移到另一个ADDRESS_LIST。这由LOAD_BALANCEFAILOVER参数设置为 来指示on

  2. 选择 后ADDRESS_LIST,客户端首先使用 Oracle Connection Manager 协议地址连接到 Oracle Connection Manager,该协议地址使用为 指定的端口 1630 ADDRESS_LIST

  3. 然后,Oracle Connection Manager 使用ADDRESS_LIST.

父主题: tnsnames.ora 文件中的本地命名参数

你可能感兴趣的:(服务器,数据库,运维,oracle)