南大通用GBase 8a MPP Cluster表空间功能
GBase 8a MPP Cluster一个表空间表示一个数据存储路径。表空间的创建规则是每个库可以存在多个表空间,只有一个默认表空间,一个表空间可以多个表使用,但一个表只能属于一个表空间。
默认情况下,每个库都有一个默认表空间sys_tablespace,sys_tablespace指向现在的固定数据存储路径($GBASE_BASE/config/gbase_8a_gbase.cnf中datadir指定的目录下数据库名目录下sys_tablespace目录中),不可以删除。
建库时指定默认表空间
语法格式
CREATE DATABASE [vc_name.]<database_name> SYSTEM TABLESPACE DATADIR <path> [SEGSIZE <segsize_value>] [MAXSIZE <max size_value>];
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- path:默认Tablespace所对应的系统路径,路径支持相对路径和绝对路径,相对路径是相对于配置文件中配置的datadir路径。
- segsize_value:表空间中表的seg文件分裂大小,在10M到2G之间,使用带有K,M,G单位表示,默认为2G。
- maxsize_value:指定表空间最大限额,它要大于segsize值,使用带有K,M,G单位表示。由用户保证磁盘可用空间大于maxsize_value。默认为不限制。该参数在集群层指定则表示每个节点的表空间最大限额。资源管理先于表空间进行空间的限额检验。
CREATE TABLESPACE
语法格式
CREATE TABLESPACE [IF NOT EXISTS] [[vc_name.]database_name.]<tablespace_name> DATADIR <path> [SEGSIZE <segsize_value>] [MAXSIZE <maxsize_value>]
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- tablespace_name:表空间名称,支持数字英文和下划线,长度为64个字符,不区分大小写,全部按照小写字符创建,且不允许以数字开头。(该规则适用于全文,类似内容不再冗述)。
- path:Tablespace所对应的实际系统路径,路径支持相对路径和绝对路径,相对路径是相对于配置文件中配置的datadir路径;
- segsize_value:Tablespace中表的seg文件分裂大小,在10M到2G之间,使用带有K、M、G单位表示,默认为2G;
- maxsize_value:指定表空间最大限额,它要大于segsize值,使用带有K,M,G单位表示。由用户保证磁盘可用空间大于maxsize_value。默认为不限制。该参数在集群层指定则表示每个节点的表空间最大限额。资源管理先于表空间进行空间的限额检验。
DROP TABLESPACE
语法格式
DROP TABLESPACE [[vc_name.]database_name.]<tablespace_name>;
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- tablespace_name:空间名称。
注意:删除表空间有如下限制:
(1)默认表空间不允许删除;
(2)系统表空间sys_tablespace不允许删除;
(3)正在使用的表空间不允许删除。
ALTER TABLESPACE
功能说明
修改TABLESPACE 最大限额。
语法格式
ALTER TABLESPACE [[vc_name.]database_name.]tablespace_name MAXSIZE <maxsize_value>;
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- tablespace_name:表空间名称。
- maxsize_value:指定表空间最大限额,它要大于segsize值,使用带有K、M、G单位表示。由用户保证磁盘可用空间大于maxsize_value。默认为不限制。只支持增大修改,不允许减少。资源管理先于表空间进行空间的限额检验。
建表时指定表空间
功能说明
创建表时可以指定要使用的TABLESPACE,不做指定则使用库的默认表空间。分区表作为一个表来看待,只能指定一个tablespace,不支持为不同分区指定不同tablespace。
语法格式
CREATE TABLE [[vc_name.]database_name.]table_name (column_def...) TABLESPASCE=tablespace_name;
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- table_name:表名称。
- tablespace_name:表空间名称。
说明
(1)CREATE TABLE …LIKE…不支持指定表空间;
(2)CREATE TABLE …AS SELECT…支持指定表空间。
设置库的默认表空间
功能说明
用户可以修改指定库的默认Tablespace,设置数据库的默认Tablespace后,创建表不指定Tablespace时,使用默认Tablespace。该功能不支持针对系统库操作,包括gbase、gctmpdb、performance_schema和information_schema等。
语法格式
USE [[vc_name.]database_name.]tablespace_name AS DEFAULT TABLESPACE;
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- tablespace_name:表空间名称。
说明
使用use前必须保证要设置的tablespace已经创建好。
SHOW TABLESPACES
功能说明
查询表空间信息。
语法格式
SHOW [full] TABLESPACES;
- full:显示是否是默认表空间。
示例
gbase> SHOW FULL TABLESPACES;
+------------------------+------------------------+------------+
| Tablespace_in_test_sdy | Tablespace_in_test_sdy | Is_default |
+------------------------+------------------------+------------+
| sys_tablespace | . | no |
| tbs1 | ../tbs1 | yes |
+------------------------+------------------------+------------+
2 rows in set (Elapsed: 00:00:00.00)
REFRESH TABLESPACE
功能说明
刷新表空间使用大小信息。
语法格式
REFRESH TABLESPACE [[vc_name.]database_name.] tablespace_nameSTORAGE USAGE
- vc_name:虚拟集群名称,可选项。
- database_name:数据库名称,可选项。
- tablespace_name:表空间名称。
注意
(1)不支持gctmpdb库、gclusterdb库下,除SHOW TABLESPACES之外的其他TABLESPACE相关操作;
(2)在建立镜像关系之前,用户需要预先手动在相关节点创建指定的目录和对应的TABLESPACE,且需要用户保证其一致性,镜像关系建立后,支持创建TABLESPACE指令的镜像下发功能;
(3)卸载时,用户自定义表空间的相关目录中的数据会被删除;
(4)关于备份恢复工具,其分为三个等级:实例级、库级和表级。其中,实例级和库级的恢复过程,用户不需要手动建立TABLESPACE和对应的目录,这些工作均由程序完成;表级的恢复过程,需要用户预先手动在指定库中建立好与备份时相同的TABLESPACE;
(5)关于扩容功能,用户需要预先手动在扩容的新节点上将TABLESPACE所需要的目录建立起来,新节点上的创建TABLESPACE的动作由程序自行完成;
(6)关于分区表,按照一个表来对待,用户只能指定一个TABLESPACE,不支持不同分区指定不同TABLESPACE;
(7)对于节点替换功能,用户需要在被替换节点上预先手动建立好TABLESPACE的路径。
评论
热门帖子
- 12023-05-09浏览数:19306
- 22023-09-25浏览数:12411
- 32020-05-11浏览数:12221
- 42019-04-26浏览数:11651
- 52023-07-04浏览数:10882