表组 TG0 的 SHARDING 属性为 ADAPTIVE,其中包含以下4个表:
· T1 :分区为 P0, P1
· T2 :分区为 P1, P2
· T3 :分区为 P2, P3
· T4 :分区为 P3, P4
那么表组 TG0 中的均衡组(Equilibrium Group)个数是多少?
这题如何理解?
表组 TG0 的 SHARDING 属性为 ADAPTIVE,其中包含以下4个表:
· T1 :分区为 P0, P1
· T2 :分区为 P1, P2
· T3 :分区为 P2, P3
· T4 :分区为 P3, P4
那么表组 TG0 中的均衡组(Equilibrium Group)个数是多少?
这题如何理解?
等大佬们解答……
楼主有答案了没??这题我也不太理解
均衡组为1,每个表都是两个分区。。可以放进一个均衡组里
为啥是1?
666
-- 1. 创建 SHARDING 属性为 ADAPTIVE 的表组 tg0
CREATE TABLEGROUP tg0 SHARDING = 'ADAPTIVE';
-- 2. 创建四个结构相同的一级分区表,并加入表组 tg0
-- 创建表 t1,2 个分区
CREATE TABLE t1 (
id INT PRIMARY KEY,
name VARCHAR(50)
) TABLEGROUP = tg0
PARTITION BY RANGE(id) (
PARTITION P0 VALUES LESS THAN (100),
PARTITION P1 VALUES LESS THAN (200)
);
-- 创建表 t2,2 个分区
CREATE TABLE t2 (
id INT PRIMARY KEY,
value DECIMAL(10,2)
) TABLEGROUP = tg0
PARTITION BY RANGE(id) (
PARTITION P1 VALUES LESS THAN (100),
PARTITION P2 VALUES LESS THAN (200)
);
-- 创建表 t3,2 个分区
CREATE TABLE t3 (
id INT PRIMARY KEY,
info TEXT
) TABLEGROUP = tg0
PARTITION BY RANGE(id) (
PARTITION P2 VALUES LESS THAN (100),
PARTITION P3 VALUES LESS THAN (200)
);
-- 创建表 t4,2 个分区
CREATE TABLE t4 (
id INT PRIMARY KEY,
status TINYINT
) TABLEGROUP = tg0
PARTITION BY RANGE(id) (
PARTITION P3 VALUES LESS THAN (100),
PARTITION P4 VALUES LESS THAN (200)
);
SHOW TABLEGROUPS WHERE tablegroup_name = 'tg0';
MySQL [test]> select table_name, partition_name, svr_ip, role from oceanbase.dba_ob_table_locations where database_name='test' and table_name like 't%' and role='leader';
1、dba_ob_table_locations 查询结果可以验证:
10.xx.xx.35
10.xx.xx.33
表组tg0的均衡组个数是:2
2、每个均衡组包含4个具有相同边界值的分区,分别分布在不同的节点上,实现了数据的均匀分布和查询的本地化执行。
3、均衡组不是按分区名称(P0,P1等)来分组的,而是按照分区边界值来划分的。
已学习!!!
版本4.2.1.10,按照相同库表结构构建,是1
obclient [demo]> select table_name, partition_name, svr_ip, role from oceanbase.dba_ob_table_locations where database_name='demo' and table_name like 't%' and role='leader';
+------------+----------------+--------------+--------+
| table_name | partition_name | svr_ip | role |
+------------+----------------+--------------+--------+
| t1 | P0 | 10.186.61.29 | LEADER |
| t1 | P1 | 10.186.61.29 | LEADER |
| t2 | P1 | 10.186.61.29 | LEADER |
| t2 | P2 | 10.186.61.29 | LEADER |
| t3 | P2 | 10.186.61.29 | LEADER |
| t3 | P3 | 10.186.61.29 | LEADER |
| t4 | P3 | 10.186.61.29 | LEADER |
| t4 | P4 | 10.186.61.29 | LEADER |
+------------+----------------+--------------+--------+
8 rows in set (0.029 sec)
在 OceanBase V4 版本中,ADAPTIVE 表组的分区策略是自动进行负载均衡的。对于 ADAPTIVE 表组中的表,OceanBase 会将具有相同分区键的表分到同一个均衡组(Equilibrium Group)中,以实现数据的均匀分布和优化查询性能。
TG0 的 SHARDING 属性为 ADAPTIVE。 - 包含以下 4 个表: - T1:分区为 P0, P1根据题目描述,我们可以看到每个表的分区情况:
在这种情况下,ADAPTIVE 表组会将具有相同分区键的表分配到同一个均衡组中。因此,我们可以通过分析分区键来确定均衡组的数量。
分区 P0 只有 T1 使用。 - 分区 P1 由 T1 和 T2 共享。 - 分区 P2 由 T2 和 T3 共享。 - 分区 P3 由 T3 和 T4 共享。 - 分区 P4 只有 T4 使用。
从上述分析可以看出:
分区 P0 和 P4 各自只有一个表使用,因此它们各自形成一个均衡组。 - 分区 P1 由 T1 和 T2 共享,形成一个均衡组。 - 分区 P2 由 T2 和 T3 共享,形成一个均衡组。 - 分区 P3 由 T3 和 T4 共享,形成一个均衡组。
表组 TG0 中的均衡组(Equilibrium Group)个数是 5 个。
希望这能帮助你理解这个问题!如果有更多问题,请随时提问。
手工均衡一下会有变化嘛
CALL DBMS_SCHEDULER.DISABLE('SCHEDULED_TRIGGER_PARTITION_BALANCE');
alter system set partition_balance_schedule_interval = '20s';
测了下和Primary zone还有关系,1-1-1的架构
-- Primary zone为zone1
obclient [oceanbase]> select TABLEGROUP_NAME,SHARDING,LS_ID,zone,table_name, partition_name, svr_ip, role from oceanbase.dba_ob_table_locations where database_name='demo' and table_name like 't%' and role='leader';
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
| TABLEGROUP_NAME | SHARDING | LS_ID | zone | table_name | partition_name | svr_ip | role |
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
| tg0 | ADAPTIVE | 1001 | zone1 | t1 | P0 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t1 | P1 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t2 | P1 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t2 | P2 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t3 | P2 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t3 | P3 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t4 | P3 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t4 | P4 | 10.186.61.29 | LEADER |
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
8 rows in set (0.040 sec)
-- Primary zone为random
obclient [oceanbase]> select TABLEGROUP_NAME,SHARDING,LS_ID,zone,table_name, partition_name, svr_ip, role from oceanbase.dba_ob_table_locations where database_name='demo' and table_name like 't%' and role='leader';
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
| TABLEGROUP_NAME | SHARDING | LS_ID | zone | table_name | partition_name | svr_ip | role |
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
| tg0 | ADAPTIVE | 1001 | zone1 | t1 | P0 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1003 | zone2 | t1 | P1 | 10.186.61.30 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t2 | P1 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1003 | zone2 | t2 | P2 | 10.186.61.30 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t3 | P2 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1003 | zone2 | t3 | P3 | 10.186.61.30 | LEADER |
| tg0 | ADAPTIVE | 1001 | zone1 | t4 | P3 | 10.186.61.29 | LEADER |
| tg0 | ADAPTIVE | 1003 | zone2 | t4 | P4 | 10.186.61.30 | LEADER |
+-----------------+----------+-------+-------+------------+----------------+--------------+--------+
8 rows in set (0.031 sec)
1-1-1
primary_zone=zone1,zone2,zone3