首页 > 数据库 > > 数据库使用-创建和管理表空间
通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。这样有以下优点:
gs_guc set -Z cmserver -N all -I all -c " enable_transaction_read_only = on "重启数据库使参数设置生效。
CREATE TABLESPACE example LOCATION 'tablespace/tablespace_1' MAXSIZE '5G';MAXSIZE为适配语法,使用该表空间配额管理性能会有30%左右的影响,MAXSIZE指定每个DN的配额大小,误差范围在500M * DN个数以内。请根据实际的情况确认是否需要设置表空间的最大值。
CREATE USER jack IDENTIFIED BY 'Bigdata@123';
当结果显示为如下信息,则表示创建成功。
CREATE ROLE执行如下命令创建表空间。
CREATE TABLESPACE fastspace RELATIVE LOCATION 'hdfs_tablespace/hdfs_tablespace_1' ;当结果显示为如下信息,则表示创建成功。
CREATE TABLESPACE其中“fastspace”为新创建的表空间,“CN和DN数据目录/pg_location/hdfs_tablespace/hdfs_tablespace_1”是用户拥有读写权限的空目录。
GRANT CREATE ON TABLESPACE fastspace TO jack;当结果显示为如下信息,则表示赋予成功。
GRANT在表空间中创建对象
如果用户拥有表空间的CREATE权限,就可以在表空间上创建数据库对象,比如:表和索引等。
以创建表为例。
CREATE TABLE foo(i int) TABLESPACE fastspace;当结果显示为如下信息,则表示创建成功。
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'i' as the distribution column by default.
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE
SET default_tablespace = 'fastspace';
SET
CREATE TABLE foo2(i int);
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'i' as the distribution column by default.
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE
假设设置“fastspace”为默认表空间,然后创建表foo2。
SELECT spcname FROM pg_tablespace;方式2:使用gsql程序的元命令查询表空间。
\db查询表空间使用率
SELECT PG_TABLESPACE_SIZE('example');返回如下信息:
pg_tablespace_size
--------------------
2146304
(1 row)
其中2146304表示表空间的大小,单位为字节。
表空间使用率=PG_TABLESPACE_SIZE/表空间所在目录的磁盘大小。
ALTER TABLESPACE fastspace RENAME TO fspace;
ALTER TABLESPACE
DROP USER jack CASCADE;
DROP ROLE
执行如下命令删除表foo和foo2。
DROP TABLE foo;
DROP TABLE foo2;
当结果显示为如下信息,则表示删除成功。
DROP TABLE执行如下命令删除表空间fspace。
DROP TABLESPACE fspace;
DROP TABLESPACE
说明:用户必须是表空间的owner或者系统管理员才能删除表空间。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3127056/ ,如需转载,请注明出处,否则将追究法律责任。