创建存储组
将多个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.b
清空表和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