首页 > 其他分享 >5.PG的逻辑结构

5.PG的逻辑结构

时间:2023-12-19 22:56:51浏览次数:21  
标签:逻辑 postgres -- 数据库 存放 pg 空间 结构 PG

1.如图

[postgres@iZwz909xeqcc7ouqk8528zZ ~]$ cd $PGDATA
[postgres@iZwz909xeqcc7ouqk8528zZ data]$ ls
base          pg_dynshmem    pg_logical    pg_replslot   pg_stat      pg_tblspc    pg_wal                postgresql.conf  pоstgres
global        pg_hba.conf    pg_multixact  pg_serial     pg_stat_tmp  pg_twophase  pg_xact               postmaster.opts
pg_commit_ts  pg_ident.conf  pg_notify     pg_snapshots  pg_subtrans  PG_VERSION   postgresql.auto.conf  postmaster.pid
[postgres@iZwz909xeqcc7ouqk8528zZ data]$ oid2name 
All databases:
    Oid      Database Name  Tablespace
--------------------------------------
  13892           postgres  pg_default
  16412  readme_to_recover  pg_default
  13891          template0  pg_default
      1          template1  pg_default
  16416              u1_db  pg_default

2.表空间

 Postgresql默认有两个表空间:pg_default和pg_global表空间

 默认表空间:每个cluster默认情况下有2个表空间,分别命名为pg_default用于存放各个数据库私有的数据库对象,pg_global用于存放cluster全局共享的数据库对象信息,例如:cluster中数据库本身的信息,表空间的信息,数据库订阅信息,数据库复制信息,数据库认证授权信息、控制文件等。

 专用表空间:pg_global表空间是专表空间专用的,只能存放全局共享的数据库对象,不能存放用户数据,否则报错

  pg_default,表空间,默认存放cluster下所有数据库的所有数据库对象。这一点儿上,倒是有点儿类似于Oracle数据库的专表空间专用 表空间和数据库的关系:一个表空间可以给多个数据库使用,一个数据库里的不同数据库对象也可以存放在不同的表空间下。表空间和数据库的关系,不严格的讲,可以说是多对多的关系。不像Oracle数据库中,一个数据库可以包含多个表空间,且每个表空间只能属于一个数据库使用

 如何创建表空间?    1)OS上路径需提前创建,postgres用户得有读写操作系统文件系统权限,数据库管理员权限。
-- 不要把表空间目录放在data目录下
-bash-4.2$ psql
psql (9.2.24, server 15.3)
WARNING: psql version 9.2, server version 15.0.
         Some psql features might not work.
Type "help" for help.

postgres=# 
postgres=# create tablespace newtbs location '/var/lib/pgsql/15/data/tbs_dir';
WARNING:  tablespace location should not be inside the data directory
CREATE TABLESPACE
postgres=# 

create database newdb tablespace newtbs;
create table test_tbs(id int) tablespace newtbs ;

 修改表空间:
  数据库创建之后,或者数据库对象(表、index等)创建之后,也可以分别通过alter database/table/index来修改表空间信息。

 表空间作用:
 主要用于逻辑上隔离数据库对象,或者用于数据库存储空间规划或迁移存储。想要通过表空间的设置,进而对于数据库性能提升?作用不大,毕竟现在基本上都是直接上SSD(Solid State Drive )存储给数据库使用。   3.PG在物理上的结构
  
base                --存放默认数据库的目录
global              --存放的数据库相关的字典视图或者表文件        
pg_commit_ts            --事务存放的提交的时间戳数据
pg_dynshmem     --动态内存分配存放的空间(dynamic share memeory)
pg_hba.conf         --基于主机的配置文件
pg_ident.conf           --基于对等认证的配置文件
pg_logical          --存储数据库内部状态的逻辑解码数据
pg_multixact            --存放多事务状态的数据
pg_notify               --消息通知目录(LISTEN状态目录)
pg_replslot         --存放复制槽的数据
pg_serial               --提交的可串行化事务的状态数据
pg_snapshots            --执行导出快照函数时的状态信息数据
pg_stat                 --统计信息目录
pg_stat_tmp             --临时统计信息目录
pg_subtrans         --子事务目录
pg_tblspc            --表空间映射目录
pg_twophase         --两阶段提交状态的数据
PG_VERSION          --存放主版本编号的文件
pg_wal              --存储 WAL 文件的目录
pg_xact                 --事务提交的状态数据
postgresql.auto.conf --存储通过 ALTER SYSTEM 命令修改的参数文件(可以手动修改)
postgresql.conf       --数据库的参数配置文件
postmaster.opts       --上一次数据库启动状态的命令
postmaster.pid        --存放当前数据库的主进程编号及相关目录及端口的信息
postgres=# select oid,datname from pg_database;
  oid  |      datname      
-------+-------------------
 13892 | postgres
     1 | template1
 13891 | template0
 16412 | readme_to_recover
 16416 | u1_db
(5 rows)

其中oid是唯一标识的,每一个oid代表一个PG数据库物理存储上的一个目录或者文件。

标签:逻辑,postgres,--,数据库,存放,pg,空间,结构,PG
From: https://www.cnblogs.com/zmc60/p/17915039.html

相关文章

  • golang快速入门:结构体
    结构体Go语言的面向对象编程与我们之前所熟悉的PHP、Java那一套完全不同,没有 class、extends、implements 之类的关键字和相应的概念,而是借助结构体来实现类的声明。typePersonstruct{namestring//名字malebool//性别}可以理解为类名 Person,并且包含了 ......
  • 黑皮书存储结构
    存储结构①顺序表的存储结构#defineMAXSIZE100typedefstruct{ElemType*elem; //存储空间的基地址intlength;}SqList;②单链表的存储结构typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;③顺序栈的存储结构#define......
  • Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    场景PostGresSQL简介与Windows上的安装教程:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/113981563除了标准SQL语句之外,PostgreSQL还支持使用各种过程语言(例如PL/pgSQL、C、PL/Tcl、PL/Python、PL/Perl、PL/Java等)创建复杂的过程和函数,称为存储过程(Store......
  • Unity引擎2D游戏开发,受伤和死亡的逻辑和动画
    一、创建受伤动画找到相关受伤的动画素材,然后在Animation窗口创建动画。此处不再赘述。此时在Animator窗口删除刚才创建的两个动画,因为现在要采用另一种方式创建动画:采用Animator的Layer方式使用Animator→Layer创建受伤闪烁动画受伤闪烁动画意为受伤后短暂无敌时间点......
  • 「从ES到CK 04」Clickhouse表引擎选择和表结构设计
    导航在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:01《ElasticsearchvsClickhouse》02《Clickhouse的基础知识扫盲》03《Clickhouse多分片多副本集群部署》04《Clic......
  • Gowin FPGA Designer 简介
    高云FPGADesigner是高云FPGA开发的IDE软件,软件包不大,安装包241M,解压Gowin_V1.9.8.07_vin压缩包,后点击文件夹的exe安装包,直接一直按下一步,完成软件的安装,安装后在桌面会有如下图标  双击打开软件,进入主界面,如下  软件的使用,请参考软件使用视频或者在高云官......
  • 验证码相关后端逻辑
    响应结果  注:后端会将需要展示的图片封装在通用返回结果类中传递给前端,前端将用户输入的答案传递给后端进行相应校验    在进行redis存储时,key值一般都会进行相应拼接,并且设置过期时间    通用结果类继承HashMap,便于后续增加字段信息 生成相应图片 ......
  • 结构体写法(Struct)
    一、structstu{char*name;//姓名intnum;//学号intage;//年龄chargroup;//所在小组floatscore;//成绩}stu1;//定义结构体类型的同时定义结构体变量/**其他写法:*①/......
  • 数据结构
    数据结构有:1.数组;2.栈;3.队列;4.链表(单链表、双向链表、循环链表);5.数;6.散列表;7.堆;8.图。一、数组内存连续,可通过元素下标访问。二、栈先进后出三、队列先进先出四、链表物理存储不连续,因为存储了相邻元素的物理地址,所以逻辑上连续。五、树每个节点有零个或多个子节点;没......
  • 【面试官版】【持续更新中】融合滤波算法+数据结构+激光视觉SLAM+C++面试题汇总
    C++部分什么时候需要写虚函数、什么时候需要写纯虚函数?只继承接口为纯虚函数强调覆盖父类重写,或者父类也需要实现一定的功能,为虚函数指针传参和引用传参区别?引用传参本质上是传递原参数地址,指针传参本质还是值传递,生成拷贝指针,拷贝指针和原指针指向的为同一块内存。因此改变......