400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
快速上手
集群部署
SQL参考
工具指南
定义一个新的表空间。
CREATE TABLESPACE tablespace_name [OWNER username] LOCATION '/path/to/dir'
[WITH (contentID_1='/path/to/dir1'[, contentID_2='/path/to/dir2' ... ], storage_degradation_parameter)]
CREATE TABLESPACE 为 YMatrix 数据库系统注册并配置新的表空间。 表空间名称必须不同于系统中任何现有表空间的名称。 表空间是 YMatrix 数据库系统对象(全局对象),如果您具有适当的特权,则可以使用任何数据库中的表空间。
表空间允许超级用户定义包含数据库对象(例如表和索引)的数据文件所在的备用主机文件系统位置。
具有适当特权的用户可以将表空间名称传递给 CREATE DATABASE, CREATE DATABASE 或 CREATE INDEX, 以将这些对象的数据文件存储在指定的表空间中。
在 YMatrix 数据库中,文件系统位置必须存在于所有主机上, 包括运行 Master,Standby,每个 Primary 和每个 Mirror 的主机。
tablespacename
OWNER username
LOCATION '/path/to/dir'
contentID_i='/path/to/dir_i'
storage_degradation_parameter
表空间仅在支持符号链接的系统上受支持。
CREATE TABLESPACE 不能在事务块内执行。
创建表空间时,请确保文件系统位置具有足够的 I/O 速度和可用磁盘空间。
CREATE TABLESPACE 创建从 Master 和 Segment 实例数据目录中的 pg_tblspc 目录到命令中指定目录的符号链接。
系统 catalog 表 pg_tablespace 存储表空间信息。 此命令显示表空间的 OID 值,名称和所有者。
SELECT oid, spcname, spcowner FROM pg_tablespace ;
YMatrix 数据库内置函数 gp_tablespace_location(tablespace_oid) 显示所有 Segment 实例的表空间主机系统文件位置。 此命令列出 OID 为 16385 的表空间的 Segment 数据库 ID 和主机系统文件位置。
SELECT * FROM gp_tablespace_location(16385)
字段名 | 单位 | 默认值 | 取值范围 | 描述 |
---|---|---|---|---|
oss_accessid | 0 ~ 2048 | 访问密钥 | ||
oss_secretkey | 0 ~ 2048 | 私密访问密钥。默认会对该字段做加密,保存的是密文。加密功能可以通过参数 mx_enable_oss_secretkey_encrypt 关闭 | ||
oss_sessiontoken | 0 ~ 2048 | STS 机制的 token。默认会对该字段做加密,保存的是密文。加密功能可以通过参数 mx_enable_oss_sessiontoken_encrypt 关闭 | ||
oss_region | cn-north-1 | 0 ~ 2048 | 对象服务区域(本地环境无需填写) | |
oss_endpoint | 0 ~ 2048 | 对象服务地址 | ||
oss_bucket | 0 ~ 2048 | 对象桶名称 | ||
oss_keyprefix | 0 ~ 2048 | 对象桶前缀。对象前缀类似于子目录,要求必须以 / 结束 |
||
oss_cache_size | MB | 2048 | 1 ~ INT_MAX | 指定用文件缓存对象存储时,表空间下可以占用的最大文件空间 |
创建一个新表空间,并为 Master 和所有 Segment 实例指定文件系统位置:
CREATE TABLESPACE mytblspace LOCATION '/gpdbtspc/mytestspace' ;
创建一个新表空间,并为 content ID 为 0 和 1 的 Segment 实例指定一个位置。 对于未在 WITH 子句中列出的 Master 和 Segment 实例, 在 LOCATION 子句中指定该表空间的文件系统位置。
CREATE TABLESPACE mytblspace LOCATION '/gpdbtspc/mytestspace' WITH (content0='/temp/mytest', content1='/temp/mytest');
该示例为两个 Segment 实例指定了相同的位置。 您可以为每个 Segment 指定不同的位置。
为接入降级存储功能在集群创建一个表空间:
CREATE TABLESPACE tbs LOCATION '/temp/mytest'
WITH(
oss_accessid='XYwJgHLTWGlk2KmP9Ruc',
oss_secretkey='fk160295luHpQsq2DiaIYaTBAzNCkjgoIMr1OHIT',
oss_endpoint='http://localhost:9000',
oss_bucket='test'
);
CREATE TABLESPACE 是 YMatrix 数据库扩展。