怎么从指定Zone消费数据

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】4.3.1
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

老师好,请问目前我们搭建了一个OceanBase集群,有3个Zone,分别为Zone1,Zone2,Zone3, 现在的需求是从Zone3获取数据,如何实现?

您好 您指的是zone3 读写么,如果zone3读写的话很简单的

1 设置primaryzone 为zone3;zone1,zone2 就可以达到zone3读写,zone1,zone2是followe形式

您好,我描述的不够清楚,
具体而言,想从Zone1写入,而从Zone3 读取

可以为指定的zone配置region和idc,然后在obproxy上进行路由配置,可以参考
https://www.oceanbase.com/docs/common-odp-doc-cn-1000000000755696

方式一:LDC路由,如果只读的SQL是单独通过一个应用发送的可以在单独部署一个OBProxy关联集群,只读应用连接这个OBProxy
通过要设置为弱一致性读的OBProxy连接到数据库,执行如下命令进行修改
alter proxyconfig set obproxy_read_consistency=1;
该配置项取值为 0 和 1,默认为 0,表示强读 1 表示弱读。
alter system modify zone “z1” set region = “region1”;
alter system modify zone “z1” set idc = “idc1”;
alter system modify zone “z2” set region = “region1”;
alter system modify zone “z2” set idc = “idc2”;
alter proxyconfig set proxy_idc_name=‘idc1’;

select * from T1;

OBProxy会将弱读请求路由到同idc的z1
方式二:修改sql,加上弱一致性读的Hint或者修改变量

  1. 设置proxy_route_policy路由参数
    alter proxyconfig set proxy_route_policy=’’; (空为随机读)
    添加HINT方式:select /* +READ_CONSISTENCY(WEAK)*/ * from t1
    修改变量方式:set global ob_read_consistency=‘weak’;
    注:proxy_route_policy参数值
    (FOLLOWER_FIRST)优先读从
    (FOLLOWER_ONLY)只读从,从副本都失败则报错
    (UNMERGE_FOLLOWER_FIRST)优先读没合并的从

后面的大佬的回答很好了

谢谢两位大佬