返回首页

gbase数据、南大通用产品文档:GBase8c创建和管理表空间

更新日期:2024年09月11日

背景信息
通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。这样有以下优点:

如果初始化数据库所在的分区或者卷空间已满,
又不能逻辑上扩展更多空间,
可以在不
同的分区上创建和使用表空间,直到系统重新配置空间。

表空间允许管理员根据数据库对象的使用模式安排数据位置,从而提高性能。

一个频繁使用的索引可以放在性能稳定且运算速度较快的磁盘上,
比如一种固态设
备。

一个存储归档的数据,
很少使用的或者对性能要求不高的表可以存储在一个运算速
度较慢的磁盘上。

管理员通过表空间可以设置占用的磁盘空间。
用以在和其他数据共用分区的时候,
防止
表空间占用相同分区上的其他空间。

表空间对应于一个文件系统目录,假定数据库节点数据目录/pg_location/ mount1/path1
是用户拥有读写权限的空目录。
使用表空间配额管理会使性能有30%左右的影响,
MAXSIZE 指定每个数据库节点的配
额大小,
误差范围在500MB 以内。
根据实际情况,
确认是否需要设置表空间的最大值。
GBase 8c 自带了两个表空间:pg_default 和pg_global。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
21

默认表空间pg_default:用来存储非共享系统表、用户表、用户表index、临时表、临
时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base 目录。

共享表空间pg_global:用来存放共享系统表的表空间。对应存储目录为实例数据目录
下的global 目录。
注意事项
在HCS 等场景下一般不建议用户使用自定义的表空间。用户自定义表空间通常配合主
存(即默认表空间所在的存储设备,如磁盘)以外的其它存储介质使用,以隔离不同业务可
以使用的IO 资源,
而在HCS 等场景下,
存储设备都是采用标准化的配置,无其它可用的存
储介质,自定义表空间使用不当不利于系统长稳运行以及影响整体性能,因此建议使用默
认表空间即可。
操作步骤
步骤1 创建表空间

执行如下命令创建用户jack。
postgres=# CREATE USER jack IDENTIFIED BY 'xxxxxxxxx';
当结果显示为如下信息,则表示创建成功。
CREATE ROLE

执行如下命令创建表空间。
postgres=# CREATE TABLESPACE fastspace RELATIVE LOCATION
'tablespace/tablespace_1';
当结果显示为如下信息,则表示创建成功。
CREATE TABLESPACE
其中,fastspace 为新创建的表空间,/pg_location/ tablespace/tablespace_1 是用户拥有读写权
限的空目录。

数据库系统管理员执行如下命令将表空间fastspace 的访问权限赋予数据用户jack。
postgres=# GRANT CREATE ON TABLESPACE fastspace TO jack;
当结果显示为如下信息,则表示赋予成功。
GRANT
步骤2 在表空间中创建对象
如果用户拥有表空间的CREATE 权限,就可以在表空间上创建数据库对象,比如:表

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
22
和索引等。以创建表为例。

方式1:执行如下命令在指定表空间创建表。
postgres=# CREATE TABLE foo(i int) TABLESPACE fastspace;
当结果显示为如下信息,则表示创建成功。
CREATE TABLE

方式2:先使用set default_tablespace 设置默认表空间,再创建表。
postgres=# SET default_tablespace = 'fastspace';
SET
postgres=# CREATE TABLE foo2(i int);
CREATE TABLE
假设设置fastspace 为默认表空间,然后创建表foo2。
步骤3 查询表空间

方式1:检查pg_tablespace 系统表。如下命令可查到系统和用户定义的全部表空间。
postgres=# SELECT spcname FROM pg_tablespace;

方式2:使用gsql 程序的元命令查询表空间。
postgres=# \db
步骤4 查询表空间使用率

查询表空间的当前使用情况。
postgres=# SELECT PG_TABLESPACE_SIZE('fastspace');
返回如下信息:
pg_tablespace_size
--------------------
6
(1 row)
其中2146304 表示表空间的大小,单位为字节。

计算表空间使用率。
表空间使用率=PG_TABLESPACE_SIZE/表空间所在目录的磁盘大小。
步骤5 修改表空间
执行如下命令对表空间fastspace 重命名为fspace。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
23
postgres=# ALTER TABLESPACE fastspace RENAME TO fspace;
ALTER TABLESPACE
步骤6 删除表空间

执行如下命令删除用户jack。
postgres=# DROP USER jack CASCADE;
DROP ROLE

执行如下命令删除表foo 和foo2。
postgres=# DROP TABLE foo;
postgres=# DROP TABLE foo2;
当结果显示为如下信息,则表示删除成功。
DROP TABLE

执行如下命令删除表空间fspace。
postgres=# DROP TABLESPACE fspace;
DROP TABLESPACE
用户必须是表空间的owner 或者系统管理员才能删除表空间。

通过该功能您可以查看表数据迁移失败的记录,该记录存放于
“workspace\.metadata\table_error_log\”,迁移错误的记录文件名是以
“表
名_时间戳”的形式,如下图所示:


6 配置文件说明

本工具配置文件路径为:安装目录-->migration-->plugins-->
cn.gbase.studio. .manager--> conf 文件夹下,所有配置文件如下图所示:



GBase Mingration Toolkit 迁移工具手册
南大通用数据技术股份有限公司

- 29 -

注:所有配置文件在使用过程中尽量避免用户自行修改配置文件,若修改有误
可能会导致工具不能正常使用。若确实需要修改配置文件请遵循配置文件格式
进行修改,或咨询相关人员后方可修改。


在对象资源管理器中,右击“函数”节点,然后从快捷菜单中选择“新建函数”。

GBase 8s 企业管理器用户手册
南大通用数据技术股份有限公司

51

图:新建函数

修改后,点击“执行 SQL ”即可。