本文详细说明对内部表 __all_virtual_proxy_schema 的注意事项。
ODP 会依赖 OceanBase 数据库的一些内部表进行路由,这些路由表记录了各个分区的 Leader 信息。
其中内部表可以通过
__all_virtual_proxy_schema表来查询 Leader 位置,这张表的查询需要显示指定表名、租户名、数据库名、分区 ID,缺一不可。若不指定表名、租户名、数据库名则会报错提示需要指定,但若未指定
partition_id并不会报错。虽然不会报错,但是查询出的结果是错误的。
如上所示,未指定 partition_id 也能查出结果,但是 role 信息是错误的。
经过实验,若不加 partition_id:
- 切普通租户的
__all_dummy的 Leader,__all_virtual_proxy_schema没变。 - 切普通租户的租户 Primary Zone,
__all_virtual_proxy_schema没变。 - 切 RS,
__all_virtual_proxy_schema没变。 - 切系统租户的租户 Primary Zone,
__all_virtual_proxy_schema依旧没变。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。