请教一下不用obproxy,直连oceanbase的问题?

跟阿里的技术沟通得知,3副本这种简单部署,可以不用obproxy直连主库。

但是我还有几个问题,搜索了半天没找到文档。

  1. 比如,
    我有3台服务器,我读写都必须连主库(也就是role=1的库)吗?
    还是连 primary zone 中任意一台服务器都可以读写。
    image

  2. 如果必须连主库才能读写,可以禁用这个租户的自动主从切换吗? 怎么做手动切换?

  3. 我用以下的 SQL 查询, 什么是租户的主节点

SELECT
  TENANT_NAME,
  a.tenant_id,
  svr_ip,
  svr_port,
  role,
  COUNT(1)
FROM
  __all_virtual_ls_meta_table a,
  DBA_OB_TENANTS d
WHERE
  a.tenant_id = d.tenant_id
GROUP BY
  a.tenant_id,
  svr_ip,
  svr_port,
  role
ORDER BY
  a.tenant_id,
  role;

但是,上面 SQL 中 COUNT(1) 代表了什么,我没太弄懂

首先 你这个属于主副本和备副本,不是主库和备库的概念。OB使用多数派协议控制3个副本间的数据一致性。
您所说的直连OB是连的observer进程的2881端口,同一个集群的任何一个observer(3个机器的任何一个)都可以连到这个集群。它会自动将SQL发给主副本所在的机器的。
生产还是建议使用obproxy连接。

搞明白了,非常感谢