PostgreSQL开发与实战(6.3)体系结构3
作者:太阳
四、物理结构
4.1 软件安装目录
bin //二进制可执行文件
include //头文件目录
lib //动态库文件
share //文档以及配置模版文件
4.2 数据目录

4.2.1 参数文件
pg_hba.conf //认证配置文件
pg_ident.conf //认证方式用户映射文件
postgresql.auto.conf //alter system动态修改配置文件
postgresql.conf //主配置文件
postmaster.opts
postmaster.pid //pid
1、pg_hba.conf
pg_hba.conf文件为pg的认证配置文件,无论是我们用户登录还是主从复制,都需要在该文件下填写相关的认证配置,保证可正常联通数据库。
pg_hba.conf主要由5个参数组成:Type(主机类型)、Database(数据库名)、User(用户名)、Address(IP地址和掩码)、 Method(加密方法)
Type : 指定允许的连接方式
"local"表示使用 Unix-domain socket 进行连接;
“host” 表示可以使用 ssl或者非ssl加密的 TCP/IP socket 进行连接;
“hostssl” 表示必须通过ssl加密的 TCP/IP socket 进行连接;
“hostnossl” 表示通过使用非ssl的 TCP/IP socket 进行连接。
Database : 指定允许访问数据库信息
可以为 “all”, “sameuser”, “samerole”, “replication”,或者业务数据库名称。“all"并不包括"replication”,若需要方通replication需要单独编写放通规则;
多个数据库使用逗号分隔
User : 指定允许用户
表示认证配置的数据库用户信息,可以为"all"也可以指定某个数据库用户,多个用户授权可使用逗号分隔;
可引用外部文件中配置信息信息认证配置,@${filename}
Address : 指定允许主机IP信息
表示认证配置的主机IP信息,可以是一个主机名,也可以是IP+掩码;0.0.0.0/0表示所有主机
Method : 指定认证策略
表示认证策略,可以设置为"trust", “reject”, “md5”, “password”, “scram-sha-256”, “gss”, “sspi”, “ident”, “peer”, “pam”, “ldap”, “radius” or “cert”;
password表示以明文方式发送密码;
2、postgres.conf
配置参数类别
| 参数类型 | 参数类型 |
|---|---|
| internal | 内部参数,只读无法修改。postgres程序写死或者是在初始化指定后无法修改的参数 |
| postmaster | 修改该类参数需要重启数据库 |
| sighup | 不需要重启数据库,重新加载配置文件即可对所有的进程生效 |
| backup | 不需要重启数据库,重新加载配置文件后,新的链接可以应用修改后的参数,已存在链接不生效 |
| superuser | 必须通过超级用户进行修改 |
| user | 普通用户可进行修改 |
PG数据库所有的参数都在pg_settings表中,具体参数对应什么类别可通过该表进行查询。
连接相关参数
| 参数 | 含义 |
|---|---|
| listen_addresses | v |
| port | 服务器监听TCP端口,默认5432 |
| max_connections | server端允许最大连接数,默认100 |
| superuser_reserved_connections | Server端为超级账号保留的连接数,默认3 |
| unix_socket_directory | |
| Server监听客户端Unix嵌套字目录,默认/tmp | |
内存相关参数
| 参数 | 含义 |
|---|---|
| shared_buffer | 共享内存缓存区大小,默认128MB |
| temp_buffers | 每个会话使用的临时缓存区大小,默认8MB |
| work_mem | 内存临时表排序操作或者hash需要使用到的内存缓存大小,默认4MB |
| maintenance_work_mem | 对于维护性操作(vacuum、create index)最大使用内存,默认64M,最小1M。 |
| max_stack_depth | Server端执行堆栈最大安全深度,默认2M,若发现无法执行复杂函数时可适当调整该参数 |
wal相关参数
| 参数 | 含义 |
|---|---|
| wal_level | minimal, replica, or logical |
| fsync | 是否使用fsync()将内存中的脏页刷新到物理磁盘,默认为ON |
| synchronous_commit | 事务提交是否需要等待对应的wal日志刷盘,默认为ON |
| wal_sync_method | wal日志刷盘方式 |
| full_page_write | 在checkpoint之后将第一次发生修改的页面写入到wal日志中,保证数据库奔溃恢复可以wal日志中该保存页面以及wal日志 |
| wal_buffer | wal缓存的大小,默认为-1 |
错误日志相关参数
| 参数 | 含义 |
|---|---|
| logging_collector | 是否打开日志 |
| log_rotation_age | |
| 超过多少天生产一个新的日志文件 | |
| log_rotation_size | 超过多少大小生成一个新的日志文件 |
| log_destination | 日志目录 |
| log_filename | 日志文件名 |
| log_truncate_on_rotation | 当日志名已存在时,是否覆盖原文件 |
4.2.2 日志文件
pg_xact //事务提交日志,记录事务提交状态的子目录
postgresql-2020-09-10_154100.log //运行日志,打印一些error信息
pg_wal //重做日志,wal预写日志文件的子目录
4.2.3 其他一些目录文件
## $PGDATA下
base //默认表空间目录
global //共享系统表目录
pg_commit_ts //记录事务提交时间的子目录
pg_dynshmem //记录使用共享内存文件的子目录
pg_logical //包含用于逻辑复制的状态数据的子目录
pg_multixact //包含多事务(multi-transaction)状态数据的子目录(用于共享的行锁)
pg_notify //包含LISTEN/NOTIFY状态数据的子目录
pg_replslot //包含复制槽数据的子目录
pg_serial //包含已提交的可序列化事务信息的子目录
pg_snapshots //包含导出的快照的子目录
pg_stat //包含用于统计子系统的永久文件的子目
pg_stat_tmp //包含用于统计信息子系统的临时文件的子目录
pg_subtrans //记录事务状态数据的子目录
pg_tblspc //指向表空间的符号连接
pg_twophase //记录分布式事务状态的子目录
PG_VERSION //记录PG版本
## 单独的表空间目录下
tbs01 //表空间目录
4.2.4 关于表空间

在PG数据库中,对于默认使用pg_default表空间的所有数据,都默认存储在$PGDATA下base目录下,对于独立划分出来的表空间,除表空间指定的location外,还需要在$PGDATA下的pg_tblspc进行记录,并利用软连接连接至对应的表空间目录。
所有数据库对象都有各自的oid(object identifiers),oid是一个无符号的四字节整数,相关对象的oid都存放在相关的system catalog表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。
## 表空间目录
/data/pgsql12/tbs01/PG_12_201909212/17096
PG_12 表示数据库版本
201909212 表示 Catalog 版本
16391 表示 该表空间下数据库的oid## 查看数据库Catalog信息
$ pg_controldata
pg_control version number: 1201
Catalog version number: 201909212
Database system identifier: 6870373621203487994
Database cluster state: in production
pg_control last modified: Thu 10 Sep 2020 09:28:48 PM CST## 查看数据库oid
postgres=# select oid,datname from pg_database;oid | datname
-------+-----------13547 | postgres16384 | db11 | template113546 | template017096 | db2 //可以看到表空间tbs01其实是被db2使用的
(5 rows)
更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw
相关文章:
PostgreSQL开发与实战(6.3)体系结构3
作者:太阳 四、物理结构 4.1 软件安装目录 bin //二进制可执行文件 include //头文件目录 lib //动态库文件 share //文档以及配置模版文件4.2 数据目录 4.2.1 参数文件 pg_hba.conf //认证配置文件 p…...
ISIS接口MD5 算法认证实验简述
默认情况下,ISIS接口认证通过在ISIS协议数据单元(PDU)中添加认证字段,例如:MD5 算法,用于验证发送方的身份。 ISIS接口认证防止未经授权的设备加入到网络中,并确保邻居之间的通信是可信的。它可…...
Vue项目的搭建
Node.js 下载 Node.js — Download (nodejs.org)https://nodejs.org/en/download/ 安装 测试 winR->cmd执行 node -v配置 在安装目录下创建两个子文件夹node_cache和node_global,我的就是 D:\nodejs\node_cache D:\nodejs\node_global 在node_global文件下再创建一个…...
ABB新款ACS880-04-650A-3逆变器模块ACS88004650A3加急发货
全球商业别名:ACS880-04-650A-3 产品编号:3AUA0000137885 ABB型号名称:ACS880-04-650A-3 目录描述:低压交流工业单传动模块,IEC:Pn 355 kW,650 A,400 V,UL:Pl…...
Science Robotics 封面论文:美国宇航局喷气推进实验室开发了自主蛇形机器人,用于冰雪世界探索
人们对探索冰冷的卫星(如土卫二)的兴趣越来越大,这可能具有天体生物学意义。然而,由于地表或冰口内的环境极端,获取样本具有挑战性。美国宇航局的喷气推进实验室正在开发一种名为Exobiology Extant Life Surveyor&…...
flutter环境搭建实践
Dart Dart 是一种客户端和服务器端的编程语言,最早由 Google 提出。它被设计用于构建高性能、高度可伸缩和可靠的应用程序。Dart 可以编译成本地代码或者在虚拟机中直接运行。在移动应用开发中,Dart 主要用于开发 Flutter 应用。 Flutter 和 Dart 的关…...
CentOS无法解析部分网站(域名)
我正在安装helm软件,参考官方文档,要求下载 get-helm-3 这个文件。 但是我执行该条命令后,报错 连接被拒绝: curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 # curl: (7) Fai…...
使用HttpRequest工具类调用第三方URL传入普通以及文件参数并转换MultipartFile成File
使用HttpRequest工具类调用第三方URL传入普通以及文件参数 一、依赖及配置二、代码1、模拟第三方服务2、调用服务3、效果实现 一、依赖及配置 <!--工具依赖--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId&g…...
24计算机考研调剂 | 武汉科技大学
武汉科技大学冶金新技术与功能金属材料研究梯队招收研究生 考研调剂招生信息 学校:武汉科技大学 专业: 工学->治金工程 工学->材料科学与工程 工学->计算机科学与技术 工学->动力工程及工程热物理 工学->机械工程 年级:2024 招生人数:20 招生状态:正在招…...
个人网站制作 Part 11 添加用户权限管理 | Web开发项目
文章目录 👩💻 基础Web开发练手项目系列:个人网站制作🚀 添加用户权限管理🔨使用Passport.js🔧步骤 1: 修改Passport本地策略 🔨修改用户模型🔧步骤 2: 修改用户模型 🔨…...
百科源码生活资讯百科门户类网站百科知识,生活常识
百科源码生活资讯百科门户类网站百科知识,生活常识 百科源码安装环境 支持php5.6,数据库mysql即可,需要有子目录权限,没有权限的话无法安装 百科源码可以创建百科内容,创建活动内容。 包含用户注册,词条创建ÿ…...
Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一…...
【C++ 08】vector 顺序表的常见基本操作
文章目录 前言🌈 Ⅰ vector 类对象的定义1. 定义格式2. vector 对象的构造 🌈 Ⅱ vector 类对象的容量🌈 Ⅲ vector 类对象的访问🌈 Ⅳ vector 类对象的修改🌈 Ⅴ vector 定义二维数组 前言 vector 介绍 vector 是一…...
Day67:WEB攻防-Java安全JNDIRMILDAP五大不安全组件RCE执行不出网
知识点: 1、Java安全-RCE执行-5大类函数调用 2、Java安全-JNDI注入-RMI&LDAP&高版本 3、Java安全-不安全组件-Shiro&FastJson&JackJson&XStream&Log4j Java安全-RCE执行-5大类函数调用 Java中代码执行的类: GroovyRuntimeExecPr…...
GCNv2_SLAM-CPU详细安装教程(ubuntu18.04)
GCNv2_SLAM-CPU详细安装教程-ubuntu18.04 前言一、安装第三方库1.安装Pangolin2.安装OpenCV3.安装Eigen4.安装Pytorch(c) 二、安装以及运行GCNv2_SLAM1.安装编译GCNv2_SLAM2.RGBD模式模式运行演示案例 总结 前言 paper:https://arxiv.org/pdf/1902.11046.pdf githup::https://…...
使用gitee自动备份文件
需求 舍友磁盘前两天gg了,里面的论文没有本地备份,最后费劲巴拉的在坚果云上找到了很早前的版本。我说可以上传到github,建一个私人仓库就行了,安全性应该有保证,毕竟不是啥学术大亨,不会有人偷你论文。但是…...
智慧城市新篇章:数字孪生的力量与未来
随着信息技术的迅猛发展和数字化浪潮的推进,智慧城市作为现代城市发展的新模式,正在逐步改变我们的生活方式和社会结构。在智慧城市的构建中,数字孪生技术以其独特的优势,为城市的规划、管理、服务等方面带来了革命性的变革。本文…...
python讲解(2)
目录 一.变量与赋值 二.字符串类型 引号: 三引号: 字符串拼接 三.len函数 四.注释 注释的方法 一.# 二.文档字符串 注释的要求 群体注释 五.python的报错 六.bool类型 一.变量与赋值 python中的变量是不需要声明的,直接定义即…...
安卓安装Magisk面具以及激活EdXposed
模拟器:雷电模拟器 安卓版本: Android9 文中工具下载链接合集:https://pan.baidu.com/s/1c1X3XFlO2WZhqWx0oE11bA?pwdr08s 前提准备 模拟器需要开启system可写入和root权限 一、安装Magisk 1. 安装magisk 将magisk安装包拖入模拟器 点击:…...
C到C++的敲门砖-1
文章目录 关键字命名空间输入和输出缺省参数函数重载 关键字 相较于C语言32个关键字: autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilesta…...
别再为日期格式头疼了!Oracle TO_TIMESTAMP函数保姆级使用指南(含常见报错解决)
Oracle TO_TIMESTAMP实战:从混乱字符串到精准时间戳的避坑指南 刚接手一个数据迁移项目时,我对着几十万条格式各异的日期记录发愁——有"2023/12/01"这样的斜杠分隔,也有"01-Dec-23 14.30.00.123"带英文月份缩写和毫秒的…...
【Oracle篇】基于OGG 21c全程图形化实现9TB数据从Oracle 11g到19c的不停机迁移(上):微服务架构详解与微服务部署,及同步问题总览(第一篇,总共三篇)
💫《博主主页》: 🔎 CSDN主页: 奈斯DB 🔎 IF Club社区主页: 奈斯、 🔎 微信公众号: 奈斯DB 🔥《擅长领域》: 🗃️ 数据库…...
Wan2.1视频生成小白必看:避开这些坑,让你的视频生成一次成功
Wan2.1视频生成小白必看:避开这些坑,让你的视频生成一次成功 1. 为什么你的视频生成总是失败? 很多新手第一次使用Wan2.1视频生成模型时,都会遇到各种问题:生成的视频模糊不清、内容与描述不符、甚至直接失败。这通常…...
手把手教你用VSCode快速定位并修改RuoYi框架的页面标题和图标(避坑指南)
高效定制RuoYi前端界面:VSCode全局搜索实战指南 刚接触RuoYi框架的开发者常会遇到这样的困扰:想修改浏览器标签页标题或系统Logo,却不知从何下手。前后端分离的项目结构让配置文件散落在各处,而手动翻找无异于大海捞针。本文将带你…...
Windows记事本CVE-2026-20841漏洞分析:从命令注入根因、全链路攻击链到企业级纵深防御的全维度深度复盘
在Windows系统的生态里,从来没有一款工具能像记事本一样,拥有长达40年的“绝对安全”共识。 从1985年Windows 1.0首次预装,到如今Windows 11的全版本覆盖,这个仅数百KB的纯文本编辑器,始终是全球用户记录备忘、清理格…...
显卡驱动深度清理指南:用DDU解决驱动残留难题
显卡驱动深度清理指南:用DDU解决驱动残留难题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 你是…...
3分钟搞定跨平台:Whisky让你的Mac运行Windows应用零障碍
3分钟搞定跨平台:Whisky让你的Mac运行Windows应用零障碍 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 你是否曾经在Mac上需要运行某个Windows专属软件而感到束手无策&a…...
Qwen2.5-VL视觉定位模型支持多目标检测:一句话同时定位‘人和汽车’,效果惊艳
Qwen2.5-VL视觉定位模型支持多目标检测:一句话同时定位"人和汽车",效果惊艳 1. 视觉定位技术的新突破 在计算机视觉领域,视觉定位(Visual Grounding)技术正经历着革命性的进步。传统的目标检测方法需要预先…...
Java Web新手必看:EDUCODER头哥MVC用户登录实战(含JDBC连接避坑指南)
Java Web新手实战:EDUCODER平台MVC用户登录全流程解析 第一次接触Java Web开发时,最让人兴奋的莫过于亲手实现一个完整的用户登录系统。这不仅是对MVC架构的直观理解,更是打通前后端数据流的关键里程碑。在EDUCODER这样的实训平台上ÿ…...
GPEN快速上手教程:手机自拍模糊修复,30秒获取高清证件照
GPEN快速上手教程:手机自拍模糊修复,30秒获取高清证件照 你是不是也遇到过这种情况:急着要用证件照,翻遍手机相册却发现每张自拍都模糊不清?要么是光线太暗,要么是手抖拍糊了,要么就是像素太低…...
