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

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

原创 小马专业莲藕打孔 2022-12-02
359

学习目标

进一步学习表空间与数据库对象的关系,了解oid的含义。


准备工作

连接数据库

#第一次进入等待15秒
#数据库启动中...
su - omm
gsql -r



课后作业

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

--查看数据库所在的表空间,可以看到一个表空间可以有多个数据库

select datname,dattablespace,spcname from pg_database d, pg_tablespace t where d.dattablespace=t.oid;        


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

--查看数据库、表空间的oid  

select oid,datname from pg_database;

select oid,* from pg_tablespace ;

select datname,dattablespace,spcname from pg_database d, pg_tablespace t where d.dattablespace=t.oid; 

--从文件系统,查看newtbs1表空间oid,可以看到一个表空间可以有多个数据库

cd /var/lib/opengauss/data/pg_tblspc/xxxxx/
cd PG_9.2* 
ls
#说明:xxxxx是表空间 newtbs1的oid

执行结果为

omm=# omm=# 
select datname,dattablespace,spcname from pg_database d, pg_tablespace t where d.dattablespace=t.oid; 
  datname  | dattablespace |  spcname   
-----------+---------------+------------
 template1 |          1663 | pg_default
 omm       |          1663 | pg_default
 musicdb   |         16389 | music_tbs
 newdb3    |         16398 | newtbs1
(11 rows)

 template0 |          1663 | pg_default
 musicdb1  |         16389 | music_tbs
 musicdb2  |         16389 | music_tbs
 musicdb3  |         16389 | music_tbs
 postgres  |          1663 | pg_default
 newdb1    |         16398 | newtbs1
 newdb2    |         16398 | newtbs1
omm=# omm=# 

omm=# 
omm=# 
omm=# 
omm=# \q
omm@modb:~$ cd /var/lib/opengauss/data/pg_tblspc/xxxxx/
omm@modb:~$ -bash: cd: /var/lib/opengauss/data/pg_tblspc/xxxxx/: No such file or directory
cd /var/lib/opengauss/data/pg_tblspc/xxxxx/-bash: cd: /var/lib/opengauss/data/pg_tblspc/xxxxx/: No such file or directory
omm@modb:~$ 
omm@modb:~$ 
cd /var/lib/opengauss/data/pg_tblspc/xxxx/
-bash: cd: /var/lib/opengauss/data/pg_t/: No such file or directory
omm@modb:~$ 
omm@modb:~$ 
omm@modb:~$ cd /var/lib/opengauss/data/pg_tblspc/16398/ 
omm@modb:/var/lib/opengauss/data/pg_tblspc/16398$ ls
PG_9.2_201611171_gaussdb
omm@modb:/var/lib/opengauss/data/pg_tblspc/16398$ cd PG_9.2_201611171_gaussdb/
omm@modb:/var/lib/opengauss/data/pg_tblspc/16398/PG_9.2_201611171_gaussdb$ ls
16399  16400  16401  pgsql_tmp
omm@modb:/var/lib/opengauss/data/pg_tblspc/16398/PG_9.2_201611171_gaussdb$ 

可以看到一个表空间可以有多个数据库

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

评论