如何配置 LDC 策略

在 OceanBase 同城三中心多副本架构下,报表类弱读业务如何配置 LDC 策略,才能精准路由到本机房的 follower 副本?我试过配置 proxy_route_policy=FOLLOWER_ONLY,但偶尔还是会跨机房,想请教下完整的配置链路。

2 个赞

@论坛小助手

1 个赞

在 OceanBase 同城三中心多副本架构下,报表类弱读业务需要通过以下步骤精确配置 LDC 策略,确保路由到本机房的 follower 副本:

  1. 配置 OceanBase 集群 LDC

    • 在 OceanBase 数据库支持的客户端工具中使用 root 用户登录集群的 sys 租户。
    • 执行如下语句配置 LDC:
    obclient> ALTER SYSTEM MODIFY zone "z1" SET region = "SHANGHAI";
    obclient> ALTER SYSTEM MODIFY zone "z1" SET idc = "zue";
    
    • 参数说明:
      • region 表示 Zone 所在的地域信息,通常设置为城市名(大小写敏感)。
      • idc 代表该 Zone 所处的机房信息,通常设置为机房名(小写)。
  2. 配置 ODP 的 LDC

    • 通过 ODP 进程启动时指定 IDC 配置项,示例如下:
    cd /opt/taobao/install/obproxy-1.5.5
    ./bin/obproxy -o proxy_idc_name=zue
    
    • 或者在 OceanBase 数据库支持的客户端工具中运行 ALTER 语句修改 ODP 配置项,示例如下:
    obclient> ALTER PROXYCONFIG SET proxy_idc_name= 'zue';
    
  3. 配置 ODP 的路由策略

    • proxy_route_policy 配置为 FOLLOWER_ONLY,确保弱读请求仅路由到备副本:
    obclient> ALTER PROXYCONFIG SET proxy_route_policy= 'FOLLOWER_ONLY';
    
    • 如果需要更细粒度的控制,可以考虑使用 FOLLOWER_FIRST,并在其他配置项中进一步优化。
  4. 配置应用弱一致性读

    • 在 SQL 中携带 HINT 来指定弱一致性读,示例如下:
    obclient> SELECT /*+read_consistency(weak)*/ * FROM t1;
    
    • 设置 Session 级别的系统变量来指定弱一致性读,示例如下:
    obclient> SET @@ob_read_consistency='weak';
    
    • 设置全局级别的系统变量来指定弱一致性读,示例如下:
    obclient> SET @@global.ob_read_consistency='weak';
    
  5. 验证配置

    • 通过执行以下语句检查配置是否生效:
    obclient> SHOW PROXYINFO IDC;
    
    • 返回结果应显示正确的 IDC 配置。

通过以上步骤,可以确保报表类弱读业务在 OceanBase 同城三中心多副本架构下精准路由到本机房的 follower 副本。

检索到的文档如下:

  1. LDC 路由
  2. 读写分离
  3. 路由策略路由
  4. 基于权重的负载均衡
  5. 如何路由到只读型副本查询数据

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476292
这个文档 你看一下

还需要配置:
alter proxyconfig set proxy_idc_name=‘xxxx’
xxx是你需要指定的机房idc

follower_first最好