体系结构
数据库:PostgreSQL 数据库是由一系列位于文件系统上的物理文件组成,通常将这些物理文件称为数据库,
将这些物理文件、管理这些物理文件的进程、进程管理的内存称为这个数据库的实例。
PostgreSQL 的内部功能实现上,可以分为:
系统控制器:负责接收外部连接请求
查询分析器:对连接请求查询进行分析并生成优化后的查询解析树,从文件系统获取结果集或通过事务系统对数据做处理,并由文件系统持久化数据
事务系统
恢复系统、
文件系统
.....
逻辑存储结构
数据库集簇( Database Cluster ):指由单个PostgreSQL 服务器实例管理的数据库集合,组成数据库集簇的这些数据库使用相同的全局配置文件和监昕端口、共用进程和内存结构
数据库集群:一组数据库服务器构成的集群
Database Cluster:
数据库Database(Database1...Databasen)
Schema
表、索引、序列、视图、函数等这些对象
Users
创建一个Database 时会为这个Database创建一个名为public 的默认Schema ,每个Database 可以有多个Schema
在这个数据库中创建其他数据库对象时如果没有指定Schema ,默认创建在public这个Schema 中。
Schema 可以理解为一个数据库中的命名空间,在数据库中创建的所有对象都在Schema中,不同的Schema 中可以有多个相同名称的Table 、Index 、View 、Sequence、Function 等数据库对象。
一个用户可以从同一个客户端连接中访问不同的Schema 。
物理存储结构
数据库的文件默认保存在initdb 时创建的数据目录中。包括:
数据文件
参数文件
控制文件
数据库运行日志
预写日志
......
数据目录结构:
~]# yum install tree
查看数据目录下文件
~]# tree -L 1 -d /opt/pg/data/9.5/
/opt/pg/data/9.5/
├── base
├── global
├── pg_clog
├── pg_commit_ts
├── pg_dynshmem
├── pg_log
├── pg_logical
├── pg_multixact
├── pg_notify
├── pg_replslot
├── pg_serial
├── pg_snapshots
├── pg_stat
├── pg_stat_tmp
├── pg_subtrans

本文详细阐述了PostgreSQL数据库的体系结构,包括物理存储结构(如文件系统布局、表空间与数据文件命名)、逻辑存储结构(数据库集簇、Schema与对象管理)、内存结构(本地内存与共享内存),以及进程结构(如postmaster与postgres进程及辅助进程)。
最低0.47元/天 解锁文章
871

被折叠的 条评论
为什么被折叠?



