暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第9天 | openGauss中一个表空间可以存储多个数据库

原创 dodou 2022-12-02
948

课程地址

每日一练

学习目标

进一步学习表空间与数据库对象的关系,了解oid的含义。
表空间允许数据库管理员在文件系统里定义那些代表数据库对象的文件存放位置。 一旦创建了表空间,那么就可以在创建数据库对象的时候引用它。

通过使用表空间,管理员可以控制磁盘布局。 这么做至少有两个用处。
首先,如果初始化集群所在的分区或者卷用光了空间, 而又不能扩展,那么表空间可以在一个不同的分区上创建和使用, 直到系统可以重新配置。

第二,表空间允许管理员根据数据库对象的使用模式安排数据位置,从而优化性能。比如, 一个很频繁使用的索引可以放在非常快并且非常可靠的磁盘上,比如一种非常贵的固态设备。而同时,一个存储归档的数据,很少使用的或者对性能要求不高的表可以存储在一个便宜但比较慢的磁盘系统上。

课程作业

准备工作

1.创建表空间newtbs1

CREATE TABLESPACE newtbs1 RELATIVE LOCATION 'tablespace/newtbs1';

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上有几个数据库

--查看数据库所在的表空间,可以看到一个表空间可以有多个数据库 select datname,dattablespace,spcname from pg_database d, pg_tablespace t where d.dattablespace=t.oid and spcname='newtbs1';
datname | dattablespace | spcname ---------+---------------+--------- newdb1 | 16412 | newtbs1 newdb2 | 16412 | newtbs1 newdb3 | 16412 | newtbs1 (3 rows)

4.在文件系统中查看表空间newtbs1中的多个数据库

select oid,datname from pg_database; oid | datname -------+----------- 1 | template1 16413 | newdb1 16414 | newdb2 16415 | newdb3 (11 rows)

newdb1、newdb2、newdb3 数据库对应的oid:16413、16414、16415
–从文件系统,查看music_tbs表空间oid,可以看到一个表空间可以有多个数据库

cd $PG_DATA/pg_tblspc/newtbs1_oid(16412)/PG_9.2* ls 16413 16414 16415

16413 16414 16415 即数据库newdb1、newdb2、newdb3对应的oid

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论