前提
我正在参加21天养成好习惯| 第二届openGauss每日一练活动
学习目标
通过使用表空间,管理员可以控制一个数据库安装的磁盘布局。
表空间对应于一个文件系统目录,假定数据库节点数据目录/pg_location/mount1/path1是用户拥有读写权限的空目录。
openGauss自带了两个表空间:pg_default和pg_global。
默认表空间pg_default:用来存储非共享系统表、用户表、用户表index、临时表、临时表index、内部临时表的默认表空间。对应存储目录为实例数据目录下的base目录。
共享表空间pg_global:用来存放共享系统表的表空间。对应存储目录为实例数据目录下的global目录。
课程作业
1、创建表空间t_tbspace、用户test,并使用test,在这个表空间上创建表t1
su - omm
gsql -r
–执行下面的SQL语句,创建表空间t_tbspace
CREATE TABLESPACE t_tbspace RELATIVE LOCATION 'tablespace/t_tbspace1';
–查看系统有哪些表空间
select oid,* from pg_tablespace ;
或
\db
–数据库系统管理员执行如下命令将“t_tbspace”表空间的访问权限赋予数据用户test
GRANT CREATE ON TABLESPACE t_tbspace TO test;
–执行如下命令,使用jack用户在指定表空间t_tbspace创建表。
\c omm test
CREATE TABLE foo(i int) TABLESPACE t_tbspace;
\q
2、查看表空间t_tbspace的oid和大小
SELECT PG_TABLESPACE_SIZE('t_tbspace');
[外链图片转存中…(img-wmIxENAK-1670168841970)]
[外链图片转存中…(img-sjI10m7l-1670168841970)]
3、查看数据库在默认表空间下有哪些对象
with objectInDefaultTS as
( select relname, relkind, relpages,pg_size_pretty(pg_relation_size(a.oid)),
reltablespace,relowner
from pg_class a
where a.relkind in ('r', 'i') and reltablespace='0'
)
select *
from objectInDefaultTS
where relname not like 'pg_%' and relname not like 'gs_%' and relname not like 'sql_%'
order by relpages desc;
4、查看数据库在非默认表空间下有哪些对象
–执行下面的SQL语句,查询数据库studentdb的非默认表空间t_tbspace下有哪些对象:
select relname,relkind,relpages,pg_size_pretty(pg_relation_size(a.oid)),
reltablespace,relowner
from pg_class a, pg_tablespace tb
where a.relkind in ('r', 'i')
and a.reltablespace=tb.oid
and tb.spcname='t_tbspace'
order by a.relpages desc;
5、重命名表空间
--命名表空间t_tbspace为app_tbs
ALTER TABLESPACE t_tbspace RENAME TO app_tbs;
--执行下面的gsql命令,查看数据库当前的表空间信息:
\db
6、删除表空间
–用户必须是表空间的owner或者系统管理员才能删除表空间。需要先删除表空间的对象,再删除表空间app_ts:
drop table test.foo ;
DROP TABLESPACE app_tbs;
了解openGauss
openGauss是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。openGauss网站
(https://opengauss.org/zh/ ) 提供了有关openGauss软件的最新信息。openGauss是一个数据库管理系统。
数据库是结构化的数据集合。它可以是任何数据,购物清单、图片库或公司网络中的大量信息。要添加、访问和处理存储在计算机数据库中的海量数据,您需要一个数据库管理系统(DBMS)。数据库管理系统可以对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。由于计算机非常擅长处理大量数据,因此数据库管理系统可以作为独立程序使用,也可以作为其他应用程序的一部分在计算中发挥着核心作用。
openGauss数据库是关系型的。
关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。行和列被称为表,一组表组成了数据库。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
openGauss的SQL部分代表
“结构化查询语言”。SQL是最常用的用于访问和处理数据库的标准计算机语言。根据您的编程环境,您可以直接输入SQL、将SQL语句嵌入到以另一种语言编写的代码中,或者使用包含SQL语法的特定语言
API。SQL由ANSI/ISO
SQL标准定义。SQL标准自1986年以来一直在发展,并且存在多个版本。本手册中,“SQL92”是指1992年发布的标准,“SQL99”是指1999年发布的标准,“SQL2003”是指2003年发布的标准。“SQL2011”是指该标准的当前版本。openGauss支持标准的SQL92/SQL99/SQL2003/SQL2011规范。openGauss软件是开源的。
开源意味着任何人都可以使用和修改软件。任何人都可以下载openGauss软件并使用它,而无需支付任何费用。如果您愿意,您可以研究源代码并对其进行更改以满足您的需要。openGauss软件使用木兰宽松许可证V2(http://license.coscl.org.cn/MulanPSL2)来定义软件的使用范围。