使用社区版4.2.2的obproxy的镜像,oceanbase使用3个zone部署架构, zone1,zone2用同一个obproxy1,zone3单独一个obproxy2
我在创建一个租户的时候,我指定primary zone优先级为zone1>zone2>zone3,此时租户副本应该是集中在zone1和zone2,从副本在zone3,我给zone3单独的那个obproxy3设置了ldc优先的弱一致性读和配置了 proxy_route_policy的策略,此时我使用obproxy1访问是否就是只访问主副本,obproxy2在除了事务的读是否一定访问zone3(在zone3的机器正常的时候)呢,这个如何测试能够知道一定发往那个区域的那个机器呢,还有就是这个设置生效读写分离路由原理是什么呢
是的。
补充一点,通过obproxy1 发出的 sql 如果开启了弱一致性读,读请求是可能会发往 zone2 或zone3 的节点。
要验证上面这个,就通过 gv$ob_sql_audit
视图去观察你的事务sql记录,观察字段 plan_type 和 svr_ip 可以得到 sql 是在哪个 observer节点上执行的以及执行计划类型是什么(1:本地执行计划,2:远程执行计划,3:分布式执行计划)。
嗯嗯,但是你说的这个是去sys用户操作吧,这个 gv$ob_sql_audit
视图观察的一定是事务记录吗,我记得事务查询不是不走从副本,不是直接去主副本查询吗