存储组管理
 
                  更新时间 2025-02-14 10:22:09
                 
 
                    最近更新时间: 2025-02-14 10:22:09
                  
 本文介绍如何管理存储组,包括创建存储组、初始化创建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