一、学习目标
进一步学习表空间与数据库对象的关系,了解oid的含义。
二、课程学习
openGauss中一个表空间可以存储多个数据库,任务非常简单
三、课程作业
测试环境准备:
- 连接数据库:

- 清除已有的环境:

- 此时环境如下


可以开始进行操作了!
1.创建表空间newtbs1
CREATE TABLESPACE newtbs1 RELATIVE LOCATION ‘tablespace/test_ts1’;
2.创建3个数据库newdb1、newdb2、newdb3,默认表空间为newtbs1
CREATE DATABASE newdb1 WITH TABLESPACE = newtbs1;
CREATE DATABASE newdb2 WITH TABLESPACE = newtbs1;
CREATE DATABASE newdb3 WITH TABLESPACE = newtbs1;
3.使用sql查看表空间newtbs1上有几个数据库
查看数据库的oid:
select oid,datname from pg_database;
查看表空间的oid:
select oid,* from pg_tablespace;
查看数据库所在的表空间:
select datname,dattablespace,spcname from pg_database d, pg_tablespace t where d.dattablespace=t.oid;
可以看到我们新创建的数据库存在于表空间newtbs1,说明openGauss中一个表空间可以存储多个数据库。
验证成功:从查看数据库所在的表空间所展示出来的东西,可以看到一个表空间可以有多个数据库:
4.在文件系统中查看表空间newtbs1中的多个数据库
\q退出数据库
从文件系统,查看newtbs1表空间oid,可以看到一个表空间可以有多个数据库:
cd /var/lib/opengauss/data/pg_tblspc/16389/
cd PG_9.2*
ls
从第三步的查看数据库的oid可以看到,
16390 16391 16392属于数据库oid,文件系统中找寻的结果,与在数据库中找寻的oid相符,实验成功
补充说明:16389是表空间newtbs1的oid
四、个人小结
- 本次学习内容是第八天的衍生——openGauss中一个表空间可以存储多个数据库,今天实验内容重点在于对openGauss文件系统的架构的说明,我们需要学习如何从数据库和数据库外部查看我们所创建出来的数据库和表空间,涉及到一些openGauss结构和系统表的知识,还需要掌握对sql语句查询的书写。本次作业内容简单而且课程引导很好,能快速完成今天打卡,如果大家熟悉相关操作和数据库语句就能很快上手并完成任务,希望大家都继续坚持打卡,互勉加油!










