您的位置:首页 > 其它

连接时的故障转移和客户端负载均衡

2014-09-18 20:09 387 查看
当tnsnames.ora文件中包含至少2个协议地址的时候,用于指定故障转移和负载均衡的参数可以再文件中被包含。

sample1=

(DESCRIPTION=

   (SOURCE_ROUTE=yes)

   (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))    # hop 1

   (ADDRESS_LIST= 

     (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.acme.com)))

1客户端被指导连接oracle连接第一个oracle连接管理器的协议地址

(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))

2然后在连接下一个oracle连接管理器中的第一个协议地址。如果第一个协议地址失败了,那么会尝试第二个协议地址。通过下面的配置来指定顺序的

(ADDRESS_LIST= 

  (FAILOVER=ON)

  (LOAD_BALANCE=off)

  (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630))

  (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))

3然后在连接下个地址

(ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521))

客户端的负载均衡

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.acme.com)))

1客户端随机选择一个address_list,如果选择的address_list失败了,那么会故障转移到另一个上,

2当address_list被选择了,客户端先连接到1630上

3oracle连接管理器然后使用address_list中的协议地址连接到数据库服务上。

lists的可选参数

对多个地址,下面的参数是可用的

FAILOVER

LOAD_BALANCE

RECV_BUF_SIZE

SDU

SEND_BUF_SIZE

SOURCE_ROUTE

TYPE_OF_SERVICE

failover参数指定多协议地址的连接时故障转移 ,这个参数在description_list或description,或是address_list参数下面指定

load_balance 这个参数指定了客户端的负载均衡,如果这个参数设置成了on,yes或true,oracle net进程随机的选择地址,在不同的监听中负载均很。当设置了off,no,或是false,oracle net就顺序的读取地址列表直到一个成功了。

recv_buf_size这个参数指定了接收操作的的buffer space,单位是bytes,

sdu这个参数指导oracle net调整发送sdu大小的数据包的频率,默认是2KB

send_buf_size 发送操作的bufer space

source_route使用这个参数能在多协议地址中路由。当设置了on或yes,oracle net使用每个地址直到目的地到达。

type_of_service使用这个参数来指定oracle rdb数据库使用的服务类型。这个参数只有在包含rdb和oracle数据库服务的时候才有用。

connect_data 有下面的参数

FAILOVER_MODE

GLOBAL_NAME

HS

INSTANCE_NAME

RDB_DATABASE

SERVER

SERVICE_NAME

SID

failover_mode

使用该参数可以让oracle net在运行的时候第一个监听失败了就转移到别的监听上去。这种类型的叫taf,和连接时的故障转移failover参数不是一回事。

instance_name来标记要访问的数据库实例。

server来指定连接的服务处理器的类型

service_name来指定要访问的服务

security部分,使用这个参数可以实现安全的连接

例如

net_service_name=

(DESCRIPTION=

  (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))

  (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521))

  (CONNECT_DATA=

   (SERVICE_NAME=sales.us.acme.com))

   (SECURITY=

    (SSL_SERVER_CERT_DN="cn=sales,cn=OracleContext,dc=us,dc=acme,dc=com")))



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息