如何查询GTS的提供者信息

官方描述:
GTS 是集群的核心,需要保证高可用。

  • 用户租户
    使用租户级别内部表 __all_dummy 的 leader 作为 GTS 服务提供者,时间来源于该 leader 的本地时钟。
    GTS 默认是三副本的,其高可用能力跟普通表的能力一样。

  • 系统租户
    使用 __all_core_table 的 leader 作为 GTS 服务的提供者,高可用能力与普通表一样。

这两张表我在_all_virtual_meta_table中没有查到,从哪里可以获取到她的leader是哪个服务器呢?

哪个版本 3.x版本吗?
__all_virtual_meta_table查询的是用户表
对于 __all_core_table 可通过查询 __all_virtual_core_meta_table 来获取
对于 __all_dummy 可以通过 __all_root_table 来查询

1 个赞

对于 __all_dummy 可以通过 __all_root_table 来查询是可以的,__all_core_table在__all_virtual_table没有获取到table_id,是存在别的表了吗?
mysql> select b.table_name,a.svr_ip,a.svr_port,a.zone,a.role from __all_root_table a inner join __all_virtual_table b on a.table_id=b.table_id where b.table_name=’__all_dummy’;
±------------±--------------±---------±------±-----+
| table_name | svr_ip | svr_port | zone | role |
±------------±--------------±---------±------±-----+
| __all_dummy | 192.168.1.150 | 2882 | zone1 | 2 |
| __all_dummy | 192.168.1.151 | 2882 | zone2 | 1 |
| __all_dummy | 192.168.1.152 | 2882 | zone3 | 2 |
±------------±--------------±---------±------±-----+

mysql> select table_name,table_id from __all_virtual_table where table_name in (’__all_core_table’,’__all_dummy’);
±------------±--------------+
| table_name | table_id |
±------------±--------------+
| __all_dummy | 1099511627911 |
±------------±--------------+
1 row in set (0.04 sec)

__all_core_table 是1号表你从__all_virtual_core_meta_table获取就可以了
另外__all_dummy表是每个租户都有的,是内部表,你查询到的是sys下面的,需要获取到租户下对应的__all_dummy的table_id然后__all_root_table查询对应的leader信息,查询时加上tenant_id

1 个赞

隐藏的太深了,我之前都没有看到过这个介绍

收到,非常感谢