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…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
【大厂机试题解法笔记】矩阵匹配
题目 从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。 输入描述 输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150 输入格式 N M K N*M矩阵 输…...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...