首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle如何使用SOURCE_ROUTE和故障转移启用LOAD_BALANCE?

Oracle如何使用SOURCE_ROUTE和故障转移启用LOAD_BALANCE?
EN

Database Administration用户
提问于 2022-09-23 18:00:15
回答 1查看 148关注 0票数 0

假设我们有以下tns本地命名:

代码语言:javascript
复制
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)
           )
           )
    )

SOURCE_ROUTE=YES is:

当您将此参数设置为on或yes时,Oracle Net将按顺序使用每个地址,直到到达目的地为止。要使用Oracle连接管理器,需要从客户端到Oracle连接管理器的初始连接,以及从Oracle连接管理器到侦听器的第二个连接。

但如果我们有两个狱警的?如何实现LOAD_BALANCE和故障转移参数?这是对的吗?

代码语言:javascript
复制
    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:1522192.168.0.17:1522进行平衡和故障转移,但我想它也会考虑sat-scan:1521,也许客户端连接直接考虑scan-scan而不经过cman。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2022-09-23 22:41:55

您可以加载平衡多个描述,每个描述提供不同的SOURCE_ROUTEs,如下所示:

代码语言:javascript
复制
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扫描地址,而不管使用哪个连接管理器:

代码语言:javascript
复制
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)
        )
    )
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/317316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档