假设我们有以下tns本地命名:
CMAN =
(DESCRIPTION=
(SOURCE_ROUTE=YES)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.16)(PORT=1522)) ###CMAN
(ADDRESS=(PROTOCOL=TCP)(HOST=sat-scan)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=satdb)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=10)
(DELAY=1)
)
)
)当您将此参数设置为on或yes时,Oracle Net将按顺序使用每个地址,直到到达目的地为止。要使用Oracle连接管理器,需要从客户端到Oracle连接管理器的初始连接,以及从Oracle连接管理器到侦听器的第二个连接。
但如果我们有两个狱警的?如何实现LOAD_BALANCE和故障转移参数?这是对的吗?
CMAN =
(DESCRIPTION=
(LOAD_BALANCE=ON)
(FAILOVER=ON)
(SOURCE_ROUTE=YES)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.16)(PORT=1522)) ###CMAN
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.17)(PORT=1522)) ###CMAN
(ADDRESS=(PROTOCOL=TCP)(HOST=sat-scan)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=satdb)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=10)
(DELAY=1)
)
)
)我的意思是,它只能围绕192.168.0.16:1522和192.168.0.17:1522进行平衡和故障转移,但我想它也会考虑sat-scan:1521,也许客户端连接直接考虑scan-scan而不经过cman。
发布于 2022-09-23 22:41:55
您可以加载平衡多个描述,每个描述提供不同的SOURCE_ROUTEs,如下所示:
CMAN =
(DESCRIPTION_LIST=
(LOAD_BALANCE=YES)
(FAILOVER=ON)
(DESCRIPTION=
(SOURCE_ROUTE=YES)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.16)(PORT=1522))
(ADDRESS=(PROTOCOL=TCP)(HOST=sat-scan)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=satdb)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=10)
(DELAY=1)
)
)
(DESCRIPTION=
(SOURCE_ROUTE=YES)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.17)(PORT=1522))
(ADDRESS=(PROTOCOL=TCP)(HOST=sat-scan)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=satdb)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=10)
(DELAY=1)
)
)
)下面的工作也应该是可行的,并且要更紧凑一些。在这种情况下,路由首先指向连接管理器的地址列表,这些地址被设置为负载平衡和故障转移,然后被定向到RAC扫描地址,而不管使用哪个连接管理器:
CMAN =
(DESCRIPTION=
(SOURCE_ROUTE=YES)
(ADDRESS_LIST=
(LOAD_BALANCE=YES)
(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.16)(PORT=1522))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.17)(PORT=1522))
)
(ADDRESS=(PROTOCOL=TCP)(HOST=sat-scan)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=satdb)
(FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=10)
(DELAY=1)
)
)https://dba.stackexchange.com/questions/317316
复制相似问题