1、
net_service_name=
(DESCRIPTION=
(ADDRESS=(protocol_address_information))
(CONNECT_DATA=
(SERVICE_NAME=service_name)))
这是一个基本的tnsnames.ora的文件内容。DESCRIPTION写了连接描述符,ADDRESS写了有关的协议和地址,
CONNECT_DATA包括服务器的SID。
2、
net_service_name=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(protocol_address_information))
(ADDRESS=(protocol_address_information))
(ADDRESS=(protocol_address_information))
(CONNECT_DATA=
(SERVICE_NAME=service_name)))
(DESCRIPTION=
(ADDRESS=(protocol_address_information))
(ADDRESS=(protocol_address_information))
(ADDRESS=(protocol_address_information))
(CONNECT_DATA=
(SERVICE_NAME=service_name))))
多个连接描述符的内容,但是oracle net manager不支持这种写法,也就是不支持一个网络服务名下有多个连接描述符。
3、
net_service_name=
(DESCRIPTION=
(ADDRESS_LIST=
(LOAD_BALANCE=on)
(FAILOVER=off)
(ADDRESS=(protocol_address_information)) #1
(ADDRESS=(protocol_address_information))) #2
(ADDRESS_LIST=
(LOAD_BALANCE=off)
(FAILOVER=on)
(ADDRESS=(protocol_address_information)) #3
(ADDRESS=(protocol_address_information))) #4
(CONNECT_DATA=
(SERVICE_NAME=service_name)))
多个协议地址,oracle netmanager支持这种写法,支持一个网络服务名下有多个协议地址,在此例中可以看到,在第一个协议地址中,负载均衡是开的状态,而且不开启失败转换,而第二个没开启负载均衡,而开启了失败转换。失败转换为如果连接3号协议失败了,客户端会尝试连接第四个协议地址。
具体步骤如下:
客户端会在这两个连接描述符中随机选一个进行连接,而每个一子连接描述符中的协议地址是按顺序尝试连接的。
4、
sample1=
(DESCRIPTION=
(SOURCE_ROUTE=yes)
(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # hop 1
(ADDRESS_LIST= #2
(FAILOVER=on)
(LOAD_BALANCE=off) # hop 2
(ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630))
(ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630)))
(ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521)) # hop 3
(CONNECT_DATA=(SERVICE_NAME=Sales.us.example.com)))
如果是这样的多个协议地址,客户端会按顺序先连接1,如果1失败了,会在2的地址列表中按顺序进行尝试(因为失败转换是开启的状态)。
5、
sample2=
(DESCRIPTION=
(LOAD_BALANCE=on)
(FAILOVER=on)
(ADDRESS_LIST=
(SOURCE_ROUTE=yes)
(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
(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)))
多个地址列表,客户端会在两个列表中随机选一个进行连接,这时的负载均衡和失败转换是全局的,也就是这两个协议地址的这两个状态都是开启的。在每一个协议地址中又是按顺序进行尝试连接的。