Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >从小白到专家 PostgreSQL技术大讲堂 - Part 5:PG数据库结构

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

原创
作者头像
用户5892232
发布于 2023-01-11 08:25:36
发布于 2023-01-11 08:25:36
7120
举报

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数据库结构 的内容,大家可以一起探讨

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2024/01/12
3410
PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复
Postgresql存储结构
如果阅读过手册一定听过postgresql cluster的概念,第一次听到这个概念可能都会有一些困惑。cluster在安装数据库时,由initdb工具生成,initdb后产生的pgdata文件夹可以理解为cluster的物理存储结构。数据库启动、停止时pg_ctl -D参数指定的文件夹即cluster文件夹,所以一个PG Server可以运行在一个PG Cluster上。
mingjie
2022/05/12
1.2K0
Postgresql存储结构
实战演练:PostgreSQL在线扩容
墨墨导读:最近被问到PG在线扩容的问题,本文整理了整个过程,之前写过一篇文章,供大家参考:《PosgreSQL三种表空间使用方式》https://www.modb.pro/db/14119。
数据和云
2020/06/17
1.6K0
Postgresql表空间
不同的数据库表空间有不同的定义: 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系; 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系。
DB之路
2021/07/06
1.8K0
PostgreSQL数据库体系架构
PostgreSQL数据库的进程可以分为三类:后台进程、后端进程或叫服务器进程、客户端进程或用户进程。
用户8006012
2022/06/10
4.3K1
PostgreSQL体系架构介绍
PostgreSQL是最像Oracle的开源数据库,我们可以拿Oracle来比较学习它的体系结构,比较容易理解。PostgreSQL的主要结构如下:
用户8006012
2022/07/26
2.3K0
oid2name列出PostgreSQL和对应的oid
PostgreSQL 提供 oid2name 客户端程序,用来解析数据目录里的文件,平常用得比较少,这里简单介绍下。
DB之路
2021/03/15
1.4K0
《Postgresql 内幕探索》读书笔记 - 第一章:集簇、表空间、元组
PostgreSQL天然集群,多个集群可以组成集簇,有点类似军队的连、团、旅这样的组织规则。对于我们日常学习使用的单节点则是单个集簇单个集群,自己就是集群。
阿东
2023/06/27
6180
《Postgresql 内幕探索》读书笔记 - 第一章:集簇、表空间、元组
PostgreSQL核心揭秘(一):数据库集簇
PostgreSQL 数据库集簇(Database Cluster)是指一个或多个数据库实例的集合,这些数据库实例共享相同的数据库系统文件和配置。这种设计允许在同一个 PostgreSQL 服务器上管理多个数据库,而每个数据库又可以独立地运行和存储数据。
DBA实战
2024/10/29
1670
PostgreSQL核心揭秘(一):数据库集簇
【赵渝强老师】PostgreSQL的逻辑存储结构
PostgreSQL的逻辑存储结构主要是指数据库中的各种数据库对象,包括:数据库集群、数据库、表、索引、视图等等。所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。下图展示了PostgreSQL数据库的逻辑存储结构。
赵渝强老师
2024/11/25
1250
【赵渝强老师】PostgreSQL的逻辑存储结构
[ES三周年]PostgreSQL数据的存储基础知识
OID 是 PostgreSQL 内部用于标识数据库对象(数据库,表**,视图,**存储过程等等)的标识符,用4个字节的无符号整数表示。它是PostgreSQL大部分系统表的主键。
宇宙无敌暴龙战士之心悦大王
2023/03/15
2.4K0
PostgreSQL技术大讲堂 - 第15讲:数据文件与块存储结构
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2023/04/28
3360
PostgreSQL技术大讲堂 - 第15讲:数据文件与块存储结构
数据库PostrageSQL-表空间
PostgreSQL中的表空间允许数据库管理员在文件系统中定义用来存放表示数据库对象的文件的位置。一旦被创建,表空间就可以在创建数据库对象时通过名称引用。
cwl_java
2020/12/16
9500
【赵渝强老师】PostgreSQL的表空间
在PostgreSQL中,数据库在逻辑上分成多个存储单元,该单元称作表空间。表空间用作把逻辑上相关的数据结构放在一起。数据库逻辑上是由一个或多个表空间组成。在数据库初始化的时候,会自动创建pg_default和pg_global两个表空间。其中:
赵渝强老师
2024/11/29
1420
【赵渝强老师】PostgreSQL的表空间
PostgreSQL从入门到精通教程 - 第39讲:数据库完全恢复
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
用户5892232
2023/12/21
2660
PostgreSQL从入门到精通教程 - 第39讲:数据库完全恢复
PostgreSQL之进程分析
基本介绍 什么是PostgreSQL? PosgreSQL是一个 开源、对象关系的数据库系统。目前可以运行在Linux/Unix/Windows平台。支持ACID,内置INTEGER/NUMBERIC/BOOLEAN/CHAR/VARCHAR/DATE/INTERVAL/TIMESTAMP/binary larget objects等数据结构 PostgreSQL有些限制? 图片 PostgreSQL有哪些核心功能? MVCC PITR 时间点恢复 独立表空间和异步复制 Nested 事务和online
用户4700054
2022/08/17
1.8K0
PostgreSQL之进程分析
【赵渝强老师】史上最详细的PostgreSQL体系架构介绍
PostgreSQL是最像Oracle的开源数据库,我们可以拿Oracle来比较学习它的体系结构,比较容易理解。PostgreSQL的主要结构如下:
赵渝强老师
2024/08/11
6440
【赵渝强老师】史上最详细的PostgreSQL体系架构介绍
PosgreSQL 数据库越权手法简要介绍
PostgreSQL[1]是一种流行的开源关系型数据库管理系统。它提供了标准的SQL语言接口用于操作数据库。本文旨在简要介绍在该数据库下的一些特性及其相关越权手法,并展示函数、权限和扩展三个方面的示例。
绿盟科技研究通讯
2023/09/21
4950
PosgreSQL 数据库越权手法简要介绍
Snova运维篇(九):gp数据库中数据的基本操作-1
一个表空间可以让多个数据库使用;而一个数据库可以使用多个表空间。属于"多对多"的关系。
snova-最佳实践
2019/12/30
2.4K0
Snova运维篇(九):gp数据库中数据的基本操作-1
MOP 系列|MOP 三种主流数据库常用 SQL(三)PG篇
MOP 不用多说,指的就是 MySQL、Oracle、PostgreSQL 三种目前最主流的数据库,MOP 系列打算更新 MOP 三种数据库的索引知识、高可用架构及常用 SQL 语句等等,上面已经更新了 MOP 索引相关的文章,今天打算整理一下这三种数据库的常用 SQL 知识,由于文章过长,今天更新中间的一篇之 MySQL 篇。第一篇 Oracle 相关的详见下方链接:MOP 系列|MOP 三种主流数据库常用 SQL(一)。第二篇 MySQL 常用 SQL详见下方链接:MOP 系列|MOP 三种主流数据库常用 SQL(二)。
JiekeXu之路
2024/05/28
1380
MOP 系列|MOP 三种主流数据库常用 SQL(三)PG篇
相关推荐
PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文