-- 查询指定 Zone 的 LEADER 分布,以及 table_id
SELECT zone, table_name, tablegroup_name, MIN(table_id) AS table_id
FROM
oceanbase.DBA_OB_TABLE_LOCATIONS
WHERE
database_name = 'db_name'
AND role = 'LEADER'
AND zone = 'zone3'
AND table_type='USER TABLE'
GROUP BY zone, table_name
ORDER BY zone, table_id;
1、Table Group 的 Sharding 属性为 NONE 的表 自成一个均衡组 Table Group 下所有分区都分布在一个日志流上,表会按 Table Group 中 table_id 最小的表对应的分区分布对齐聚集在同一个 LS
2、如果在建表前,Table Group 中已存在用户表,后续新建的表会按 Table Group 中 table_id 最小的用户表对应的分区分布对齐。
3、 分区数量均衡的查询方法
SELECT svr_ip,svr_port,ls_id,count(*) FROM oceanbase.CDB_OB_TABLE_LOCATIONS WHERE tenant_id=xxx AND role=‘leader’ AND table_type=‘USER TABLE’ GROUP BY svr_ip,svr_port,ls_id;
分区磁盘均衡的查询方法
SELECT a.svr_ip,a.svr_port,b.ls_id,sum(data_size)/1024/1024/1024 as total_data_size FROM oceanbase.CDB_OB_TABLET_REPLICAS a, oceanbase.CDB_OB_TABLE_LOCATIONS b WHERE a.tenant_id=b.tenant_id AND a.svr_ip=b.svr_ip AND a.svr_port=b.svr_port AND a.tablet_id=b.tablet_id AND b.role=‘leader’ AND b.table_type=‘USER TABLE’ AND a.tenant_id=xxxx GROUP BY svr_ip,svr_port,ls_id;