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_addressesv
port服务器监听TCP端口,默认5432
max_connectionsserver端允许最大连接数,默认100
superuser_reserved_connectionsServer端为超级账号保留的连接数,默认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_depthServer端执行堆栈最大安全深度,默认2M,若发现无法执行复杂函数时可适当调整该参数

wal相关参数

参数含义
wal_levelminimal, replica, or logical
fsync是否使用fsync()将内存中的脏页刷新到物理磁盘,默认为ON
synchronous_commit事务提交是否需要等待对应的wal日志刷盘,默认为ON
wal_sync_methodwal日志刷盘方式
full_page_write在checkpoint之后将第一次发生修改的页面写入到wal日志中,保证数据库奔溃恢复可以wal日志中该保存页面以及wal日志
wal_bufferwal缓存的大小,默认为-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/539644.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测——YOLOv3算法解读

论文:YOLOv3:An Incremental Improvement 作者:Joseph Redmon, Ali Farhadi 链接:https://arxiv.org/abs/1804.02767 代码:http://pjreddie.com/yolo/ YOLO系列其他文章: YOLOv1通俗易懂版解读SSD算法解读…

ArcGIS全系列实战视频教程——9个单一课程组合+系列直播回放

《ArcGIS全系列实战视频教程》是由9个单一课程组合合成。组成一条ArcGIS入门实战各项专题深入应用学习全链条,让你学有方向、学有目的,系统全面掌握ArcGIS。 ArcGIS全系列实战视频教程——9个单一课程组合https://edu.csdn.net/combo/detail/2569 《Ar…

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)

效果如图: 点击message 组件中的 工单管理, 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下: import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…

jenkins+maven+gitlab自动化构建打包、部署

Jenkins自动化部署实现原理 环境准备 1、jenkins已经安装好 docker安装jenkins 2、gitlab已经安装好 docker安装gitlab 一、Jenkins系统配置 1.Global Tool Configuration 任务构建所用到的编译环境等配置,配置参考: jdk配置(jenkins自带…

数据资产在制造行业的应用:释放潜在价值,驱动产业升级

随着信息技术的飞速发展,数据已成为各行各业的重要资产。在制造行业中,数据资产的应用更是日益广泛,为企业的生产、管理、决策等各个环节带来了前所未有的变革。本文将深入探讨数据资产在制造行业的应用,以及如何通过数据驱动实现…

递归类C++

1、汉诺塔 面试题 08.06. 汉诺塔问题 - 力扣(LeetCode) Why?为什么这个汉诺塔问题可以用递归来解决? 如何来解决汉诺塔问题? 如果N == 1时,A[0] B C,直接将A上的盘子转移到C上面。 如果N == 2时,A[1,0] B C,先将上面所有的盘子放到B,然后将A上最大的那个放到C,再把…

深度学习_20_卷积中的填充与步幅

如果图片本身比较小,卷积之后输出也会很小,那么可以在图片与卷积核相乘之前先填充一下,让输出为预期大小 一般填充后输入,输出相同 当图片比较大的时候,如果利用卷积核去得到我们想要的大小的话,得用到多层…

爬虫3_爬取翻页URL不变的网站

之前实现了对大学排数据爬取:爬虫2_2019年549所中国大学排名. 近期复现代码,发现原网站升级,在翻页时,发现URL不改变,修改代码,使用网页自动化工具selenium实现对该类网站数据获取。 #-*- coding: UTF-8 -…

【数据结构和算法初阶(C语言)】队列实操(概念实现+oj题目栈和队列的双向实现,超级经典!!!)

1. 队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表, 队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为…

BUGKU-WEB shell

题目描述 题目截图如下: 描述: $poc "a#s#s#e#r#t";$poc_1 explode("#", $poc);$poc_2 $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];$poc_2($_GET[s])进入场景看看:是一个空白的界面 解题思路 …

从根到叶:深度理解哈希表

​​​​​​​ 一.哈希表的概念 关于查找元素时: 在顺序结构以及平衡树 中,元素关键码与其存储位置之间没有对应的关系,因此在 查找一个元素时,必须要经过关键 码的多次比较 。 顺序查找时间复杂度为 O(N) ,平衡树中…

基于java实用的音乐软件微信小程序的设计与实现【附项目源码】分享

基于实用的音乐软件微信小程序的设计与实现: 源码地址:https://download.csdn.net/download/weixin_43894652/88842586 一、引言 随着移动互联网的普及和微信小程序的兴起,音乐类小程序成为了用户随时随地享受音乐的重要工具。本需求文档旨在详细阐述一…