存储组管理
 
                  更新时间 2025-02-14 10:22:24
                 
 
                    最近更新时间: 2025-02-14 10:22:24
                  
 本文介绍如何管理存储组,包括创建存储组、初始化创建sharding、删除存储组、修改存储组和查看存储组相关信息。
 TeleDB中存储组将不同的dn节点组成不同的存储组,不同的存储组之间数据隔离。
创建存储组
将多个dn组成一个group
--创建默认存储组
create default node group group_name with (dn1,dn2...)
--创建普通存储组
create node group group_name with (dn1,dn2...)初始化创建sharding
在存储组创建sharding之后,才能创建表,插入数据。
teledb=# CREATE sharding group to group default_group;
CREATE SHARDING GROUP
teledb=# clean sharding;
CLEAN SHARDING说明
- TeleDB实例创建成功后,默认会将所有dn节点组成一个默认存储组default_group。 
- 如果不存在默认存储组,则建表时需指定存储组。 
- 如果没有任何存储组,则不允许创建表。 
- create sharding map创建的为主shard map, 当主shard map存在时,该命令会报错。 
- 主shard map已经存在时,后续新增一个存储组,需要通过下述命令创建扩展shard map。 
teledb=# create extension sharding group to group group2;
CREATE SHARDING GROUP删除存储组
drop node group group_name如果group中已经存在sharding,会抛出异常,需要先删除sharding; 如果group中存在表等对象,删除sharding也会失败,需先清空所有对象。
teledb=# drop node group default_group;
ERROR:  shard info exist in group:default_group groupoid:49156
-- 删除sharding
teledb=# drop sharding in group default_group;
ERROR:  node group default_group still has relations inside, please remove them first.清空表和sharding之后可正常删除节点组。
teledb=# drop table t1;
DROP TABLE
teledb=# drop sharding in group default_group;
DROP SHARDING GROUP
teledb=# drop node group default_group;
DROP NODE GROUP
修改存储组查看存储组相关信息
修改存储组只能将存储组定义为默认存储组,语法如下:
alter node group group_name set to default;当已存在默认存储组的情况下,此语句无法生效。
teledb=# create node group group1 with (dn01);
CREATE NODE GROUP
teledb=# create node group group2 with (dn02);
CREATE NODE GROUP
teledb=# alter node group group1 set to default;
ALTER NODE GROUP
teledb=# alter node group group2 set to default;
ERROR:  default group already exists, groupoid:57352查看存储组相关信息
teledb=# select oid,* from pgxc_group;
oid  | group_name | default_group | group_members 
-------+------------+---------------+---------------
57353 | group2     |             0 | 16386
57352 | group1     |             1 | 16385
