北京oracle培训_oracle培训哪家好_CUUG官方论坛_CUUG培训怎么样_CUUG官网

 找回密码
 立即注册
查看: 640|回复: 0

从小白到专家 PostgreSQL技术大讲堂 - Part 5:PG数据库结构

[复制链接]
发表于 2023-1-11 14:34:25 | 显示全部楼层 |阅读模式

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
Part 5:PG数据库结构
内容1:PostgreSQL逻辑结构
内容2:PostgreSQL物理结构
内容3:PostgreSQL表空间结构

1.1、数据库集簇逻辑结构
数据库集簇逻辑结构 :


1.2、对象标识符
PostgreSQL中的所有数据库对象都由各自的对象标识符(oid)在内部管理。
这些对象标识符是无符号的4字节整数。数据库对象和相应的oid之间的关系存储在适当的系统目录中,具体取决于对象的类型。
数据库的oid存储在pg_database中。
数据库的oid与对应的数据库目录名是一致的

2、数据库集簇物理结构


每个数据库是base子目录下的子目录;数据库目录名与相应的oid相同。例如,当数据库sampledb的OID为16384时,其子目录名为16384。
cd $PGDATA
ls -ld base/16384
drwx------ 213 postgres postgres 7242 8 26 16:33 16384

2.1、其它目录结构
数据库集群的布局的主要文件和子目录如下所示:





3、Tablespaces
PostgreSQL Tablespaces
PostgreSQL中的表空间是基本目录之外的附加数据区域,此功能已在版本8.0中实现。
初始化数据库后默认的表空间有pg_default、pg_global。
pg_global表空间的物理文件位置在数据目录的global目录中,它用来保存系统表。
pg_default表空间的物理文件位置在数据目录的base子目录中,是template0和template1数据库的默认表空间。
创建数据库时,默认从template1数据库进行克隆,因此除非特别指定了新建数据库的表空间,否则默认使用template1使用的表空间,即pg_default表空间。

PostgreSQL表空间物理文件位置

创建表空间时产生的目录命名规则PG _ 'Major version' _ 'Catalogue version number'
例如:
sampledb=# create tablespace new_tblspc location '/home/postgres/tblspc';
$ ls -l /home/postgres/tblspc/ total 4
drwx------ 4 postgres postgres PG_12_201909212

新建表空间的目录由pg_tblspc子目录中的软链接寻址,链接名与表空间的OID值相同

如果在表空间下创建一个新的数据库(OID是90209),那么它的目录将在版本特定的子目录下创建
ls -l /home/postgres/tblspc/PG_12_201909212 total 4
drwxr-x---. 2 postgres postgres 4096 Mar 30 09:27 90209

在base目录下创建的数据库上创建新表指定到新建的表空间
testdb=# create table test1 (id int) tablespace new_tblspc;
testdb=# SELECT pg_relation_filepath('test1'); pg_relation_filepath
---------------------------------------------
pg_tblspc/90208/PG_12_201909212/16385/90210 #在新表空间目录下创建数据库目录


以上就是Part 5 - PG数据库结构 的内容,大家可以进群一起探讨,QQ交流群:752027153
微信交流群:联系客服拉你进微信PG交流群
钉钉交流群:35822460,本周五晚上8点会有公开课专门讲解此内容

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|CUUG认证培训 ( 京ICP备11008061号 )

GMT+8, 2024-10-24 15:20 , Processed in 0.018283 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表