公司法
当前位置: 首页 法律大全

PGA结构(超详细的PG数据存储结构--逻辑结构和物理存储总结)

时间:2023-05-30 作者: 小编 阅读量: 2 栏目名: 法律大全

物理存储结构是操作系统中组织和管理数据的方式。每个表、索引、序列对象都是由若干个区组成。数据文件被创建后,除自动保留部分区作为控制区外,其他区全部处于未分配状态。若某bit位为1,则表明该bit位所关联的Extent已被分配给该IAM,反之未被分配。U前缀的数据文件代表的表空间名为PG。

PGA结构?今天主要讲讲PG的数据结构,PG数据存储结构分为:逻辑结构和物理存储,下面我们就来说一说关于PGA结构?我们一起去了解并探讨一下这个问题吧!

PGA结构

概述

今天主要讲讲PG的数据结构,PG数据存储结构分为:逻辑结构和物理存储。

其中逻辑存储结构是内部的组织和管理数据的方式。物理存储结构是操作系统中组织和管理数据的方式。逻辑存储结构适用于不同的操作系统和硬件平台。


一、逻辑存储结构

逻辑结构包括:

所有数据库对象都有各自的oid(object identifiers),oid是一个无符号的四字节整数,相关对象的oid都存放在相关的system catalog表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。

1、数据库集群-Database cluster

2、数据库-Database

3、表空间-tablespace

数据库在逻辑上分成多个存储单元,称作表空间。表空间用作把逻辑上相关的结构放在一起。数据库逻辑上是由一个或多个表空间组成。

新创建的数据库默认创建下面的表空间:

1)Catalog表空间 存放系统表信息2)System表空间 存放用户数据3)Temp表空间

4、模式-Schema

自动创建的系统模式如下:

1)PG_CATALOG2)PG_LARGEOBJECT3)PG_TOAST4)PG_PARTITION

默认的用户模式PUBLIC。

5、段-segment

6、区-extent

7、块-block

8、数据库对象-Database object

1)模式对象表、索引、序列、大对象、视图、函数、存储过程、触发器、包 … …2)非模式对象用户、数据库

9、数据表-Table

10、索引-Index

11、序列-Sequence

12、视图-View


二、物理存储结构

在执行initdb的时候会初始化一个目录,通常我们都会在系统配置相关的环境变量$PGDATA来表示,初始化完成后,会再这个目录生成相关的子目录以及一些文件。在postgresql中,tablespace的概念并不同于其他关系型数据库,这里一个tablespace对应的都是一个目录。如下图就是PG的物理结构:

1、存储系统主要包括三个部分:

内存中:buffer,MemoryContext;

数据文件,临时文件;

日志文件,日志缓存。

2、文件和目录相关作用描述:

3、数据文件结构

3.1、页

将数据文件中的空间从逻辑上划分成一个个页面(数据块)。页面是数据库I/O的基本单位,即只能整页读写数据文件, 页面的大小默认是8K。

页面可以分成两种:

1)数据页面:数据页面是用来存储用户数据的。

2)控制页面:控制页面用来管理这些数据页面。

数据库共享缓存中的空间划分也是按页为基本单位, 一个页的大小与数据文件中页的大小一致, 这样便于整页读取数据文件,并放入到数据库Buffer中, 从Buffer写入数据文件也同理,保证了缓存与数据文件结构和内容上的一致性。

3.2、Block(块)

概念上基本等同于Page, 但Block更多用于说明DMS中对数据文件中Page的描述。

例如: 对文件的读写的操作, 文件读写位置的定位, 数据文件空间回收等操作, 单位均是以块进行。

数据块的大小在系统初始化时指定,默认是8K,可以取值4K,8K,16K,32K。

3.3、Extent(区)

把数据文件中8个连续的Page构成的空间称为一个Extent。Extent是数据库进行数据文件空间分配/释放的基本单位。每个表、索引、序列对象都是由若干个区组成。数据文件被创建后,除自动保留部分区作为控制区外,其他区全部处于未分配状态。表、索引、序列对象的所有数据都存放在Extent中,当向这些Extent中插入数据时,若该Extent的所有页面都已占满,系统就会自动在所属表空间的数据文件中寻找一个尚未分配的区,并将其状态修改为数据区。

3.4、控制页面

用于空间管理的控制页面:PFS/GAM/IAM。

用于增量备份的控制页面:DCM。

判断可见性的控制页面:VM。

预留的控制页面:BCM/SGAM。

3.5、PFS

Page Free Space,简称PFS页.

用于记录本数据文件中页面的空间使用情况。对文件中的每个页面,PFS中都有一个“字节”与之对应,该字节记录了该页面的状态。

PFS页前64bytes被预留为页头, 剩下81024-64=8128一共覆盖81288K=64MB空间.

故PFS页每隔8128个页面出现一次, 系统初始化把第一个PFS页放在数据文件的第二个页面位置,即:第1号数据页面, 由此可知,第N个PFS页的位置在8128*N 1.

3.6、GAM

Global Allocation Map,简称GAM页。

功能:记录所在数据文件的Extent的分配情况,GAM页中除GAM头外,剩下空间的每一位(bit)均对应一个Extent的分配情况。若某bit位为1,则表明该bit位所关联的Extent已被分配出去,反之未被分配。

若一个GAM页面大小为8K,则除GAM头(64 bytes)外,一个GAM页面所能覆盖的文件范围是: (81024-64)8(88K),约4GB空间。此外,GAM页每隔881288个页面出现一个,系统要求第一个GAM页出现在文件的第3个页面位置(即:第2个索引位置),由此得知,第N个GAM页的出现位置是: 881288*N 2

3.7、IAM

Index Allocation Map,简称IAM页。

功能:每个IAM页只隶属于一个数据库对象(例如:表),但一个数据库对象可包含多个IAM页,由此可见IAM页与数据库对象的关系是1对1,而数据库对象与IAM页的关系是1对多.

IAM的结构与GAM页类似,除IAM头外,剩下空间的每一位(bit)均对应着一个与IAM相关的Extent。若某bit位为1,则表明该bit位所关联的Extent已被分配给该IAM,反之未被分配。若一个IAM页面大小为8K,则除IAM头(64 bytes)外,一个IAM页面所能覆盖的文件范围是: (81024-64)8(88K),约4GB空间。

但与GAM也不同之处在于:IAM的出现位置不固定,只在在创建数据库对象的时候才分配。


三、逻辑与物理存储关系

1、逻辑关系存在表空间;

2、表空间存在对应的数据文件中;

新创建的数据库对应的数据文件的名称:

Catalog表空间 – databasename.dbfSystem表空间 – Udatabasename.dbfTemp表空间-- Tdatabasename.dbf

前面加 “U” 前缀代表用户数据表空间,用于保存用户表的数据。

不带 U 代表 是系统表的表空间,用于保存系统表的数据。

U 前缀的数据文件代表的表空间名为PG。

不带U 的数据文件代表的表空间为 CATALOG。


四、数据库文件、表空间、其他文件之间的关系

1、关系图如下:

说明:

1)每一个数据库具有一个或多个数据文件,用户存放数据库的所有数据。

2)数据库的数据文件有以下特征:

一个数据库文件只能与一个数据库的一个表空间相连。

一个表空间可以由多个数据文件组成。

3)数据库对象与文件关系:

数据库对象放到表空间中。

表空间有多个数据文件。

表空间中有多个数据库对象。

4)数据库对象逻辑上是存储在表空间中,物理上是存储在与表空间相关联的数据文件中。

2、数据库包含的文件种类:

1)数据库文件:data/DB

数据库对象,如:数据库、表,索引,序列等对象。

2)控制文件:data/CTL

用来记录数据库集群的状态信息,如:版本信息、集群所管理的各种文件信息、检查点信息、事务状态信息等。

3)日志文件:data/REDOLOG

记录数据修改操作的日志,用于系统发生故障时进行数据恢复。

4)临时文件:data/DB

存放数据库进行计算的过程中,生成的各种中间对象,如排序运算的外存归并单元。

5)参数文件:data目录下


五、Postgresql 底层存储管理方式:

Postgresql的每个数据库均存放在一个目录中,以db_oid命名,该目录中存放每个表对应的文件,文件名以该数据表对应的relfilenode_oid命名。当表中的数据量足够大,导致表文件的大小大于1GB的时候,postgresql会自动创建新的文件用于存放新插入的数据。新文件的名称为: relfilenode_iod.1, relfilenode_iod.2 等。使用该策略是为了防止在某些文件系统中,最大支持文件尺寸不能大于1GB的情形。

db_oid, relfilenode_oid可以从pg_class系统表中查询得出。

每个table对应的文件内部又按照Page的方式组织。每个Page的大小默认为8KB。所以每个数据库对应文件的Disk 分布由下图所示:

每个Page中包含Page Header以及Data段,Page Header中,pg_lower指向Free Space的起始地址,pg_upper指向Free Space的结束地址。

Data 段中,包含有: ItemIdData 段,Free Space段, Items段 以及Special space段。

ItemIdData 段: Array of (offset,length) pairs pointing to the actual items. 4 bytes per item.

Free Space 段:The unallocated space. New item pointers are allocated from the start of this area, new items from the end.

Items 段: The actual items themselves.

Special space 段: Index access method specific data. Different methods store different data. Empty in ordinary tables.

Item的存储是从pg_upper向pg_lower(类似堆)方向增长。ItenIdData的存储是从pg_lower向pg_upper方向增长(类似栈)。


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

    推荐阅读
  • 阴婚怀孕生子小说(双性生子第三章)

    李然放在键盘上的手控制不住的微微颤抖,心跳加速,他迅速转头期待的看向房门,是谁?这让李然日日夜夜为其魂牵梦绕的声音,早已深深的刻在了李然的骨子里,他又怎能忘记,终于让李然确信,这不是错觉,是真的。门终于打开,好像也打开了终日罩在李然心头的阴霾!顾不了郝骞满身的风尘,紧紧的抱了上去,李然呼吸急促,压抑不住奔涌而出的眼泪,与喉咙里的呜咽。

  • 陕西事实婚姻与同居关系的差异是啥

    依据各自的概念,我们可以知道,事实婚姻在我国目前审判实际中的发生、认可,是受到特定时间、特定条件等方面限制的。一旦被认定为事实婚姻,具体处理时与合法的经登记缔结的婚姻关系同样对待。对于事实婚姻关系案件,人民法院受理后,依法要先进行调解,调解和好或者撤诉的,确认该婚姻关系有效,发给调解书或者裁定书。根据前述司法解释的规定,人民法院受理这类纠纷后,不能进行调解,一律予以解除。

  • 名越敬真参与的短片不理想家族分镜绘制(名越敬真参与的短片不理想家族分镜绘制)

    引进远程办公的企业增加,居住场所的限制消失了,重新审视工作方式、生活方式的人也增加了,对地方移居的关心高涨。离家也变成了常态,短片主角一对因为家庭小事差点分开的夫妻。短片讲述小家庭从不理想家庭,最后大团圆回归理想家庭。

  • 恶灵附身2女鬼支线奖励(恶灵附身2又4折黑魂3139元)

    我们熟悉的杉果游戏今天迎来了网站上线五周年纪念日,虽然其母公司中电博亚已经进入游戏行业18年,但专营数字游戏销售的杉果游戏其实年轻得多。为了庆祝五周年生日,杉果在筹备20日举行的“杉果π硬核玩家狂欢派对”的同时还开启了一波大型折扣,全场2000多款游戏均在打折。所有玩家在活动中都可以参与扭蛋抽奖活动,抽取包含《极限竞速7》激活码,及仅在同期举行的线下活动“杉果π硬核玩家狂欢派对”现场发放的实体周边奖品。

  • 林阳苏颜是什么小说(林阳苏颜的小说简介)

    接下来我们就一起去了解一下吧!林阳苏颜是什么小说林阳苏颜是小说《女神的超级赘婿》中的男女主角。《女神的超级赘婿》是连载于黑岩网的一部现代类网络小说,作者是黑夜的瞳。《女神的超级赘婿》小说简介:我遵循母亲的遗言,装成废物去给别人做上门女婿,为期三年。现在,三年时间结束了...

  • 蚊香蚊香液蚊香片哪个好 蚊香液和蚊香片哪种好

    目前市面上比较常见的三种驱蚊产品就是蚊香、蚊香液和蚊香片,那蚊香、蚊香液、蚊香片哪个好一些呢?蚊香片蚊香片是通过将有效成分浸在载体上,通过蚊香器加热达到165℃左右将其挥发到空气中,而起到驱蚊的作用,相对蚊香液来说,蚊香片的价格要更低一些,但每次使用的时候都需要进行更换新的蚊香片,并不是特别方便。

  • 七色花的寓意(七色花有哪些寓意呢)

    七色花的寓意七色花的花语是“爱你”,七色花的花瓣一共有七瓣。“七”在中华古籍中是一个吉祥、吉利、尊贵博大的数字。七片花瓣分别代表着“日、月、金、木、水、火、土”,它是阴阳与五行之和,寓意千信人秉承“和”、“合”之美,并通过科技产业构筑和谐之美象征你们爱情的七色花,编撰自己的爱情史记、倾诉情感,和众多爱情之路上努力的战友交流和共同努力,成为你心灵的家。

  • 吃了达泊西汀以后会不会有后遗症(吃了达泊西汀不管用)

    彭叔的第128期推送:我是彭叔,男科医生彭培海。zx是一种常见的的男性性功能障碍疾病,它的治疗方式很多,其中药物因为安全、有效、方便的特点,是目前最常用的治疗方式。已知的治疗zx药物很多,其中达泊西汀是受关注度较高的一种。接下来,彭叔就达泊西汀的用法用量,再度进行一次清楚的科普,望帮助到正在为此苦恼的朋友们。并且,彭叔建议有“性生活”的朋友,一周保证用2次,即便同房的频率不到2次,也得保证服药2次。

  • 回不去的是故乡到不了的是远方是什么意思(回不去的是故乡到不了的是远方指什么)

    回不去的是故乡到不了的是远方是什么意思“回不去的是故乡”,你要是看过《我的机器人女友》就能够很好的理解这句话了。故乡,随着岁月的流逝,沧海桑田,早已经不是记忆中的模样。当你从农村到达城市,你看首都是远方,当你到达首都北京,你看美国是远方,远方,永远都在前方,踩在脚下的,都已不能称之远方,所以,远方就是指那个你尚未到达的地方。那么远方自然就永远也到不了了,因为到了就不叫远方了啊!

  • 浑身痒头皮也痒是怎么回事(头皮痒咽部痒身上痒)

    头皮痒咽部痒身上痒出现瘙痒,不但身体不适,还会影响情绪分享一些简单实用的应对方法,不妨一试耳朵痒:别用棉签掏扬州大学附属医院呼吸内科主任医师丁惠珍:很多人有掏耳朵的习惯,不管有没有耳屎一般情况下,耳朵里面发痒,如果真的。