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 | postgres
 16384 | db1
     1 | template1
 13546 | template0
 17096 | db2                //可以看到表空间tbs01其实是被db2使用的
(5 rows)

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

给电脑加硬件的办法 先找电脑支持的接口,再买相同接口的

需求:我硬盘太小,换或加一个大硬盘 结论:接口是NVMe PCIe 3.0 x4 1.找到硬盘型号 主硬盘 三星 MZALQ512HALU-000L2 (512 GB / 固态硬盘) 2.上官网查 或用bing查 非官方渠道信息,不确定。

HTTP代理的特性、功能作用是什么样的?

在当今互联网时代,HTTP代理作为网络通信中的一项重要技术,在各行各业都有着广泛的应用。然而,对于许多人来说,HTTP代理的特性和功能作用并不十分清晰。在本文中,我们将深入探讨HTTP代理的各种特性和功能,帮…

报表生成器FastReport .Net用户指南:关于脚本(上)

FastReport的报表生成器(无论VCL平台还是.NET平台),跨平台的多语言脚本引擎FastScript,桌面OLAP FastCube,如今都被世界各地的开发者所认可,这些名字被等价于“速度”、“可靠”和“品质”,在美国&#xff…

探索编程新纪元:Code GeeX、Copilot与通义灵码的智能辅助之旅

在人工智能技术日新月异的今天,编程领域的革新也正以前所未有的速度推进。新一代的编程辅助工具,如Code GeeX、Copilot和通义灵码,正在重塑开发者的工作流程,提升编程效率,并推动编程教育的普及。本文将深入探讨这三款…

如何在Windows 10上打开和关闭平板模式?这里提供详细步骤

前言 默认情况下,当你将可翻转PC重新配置为平板模式时,Windows 10会自动切换到平板模式。如果你希望手动打开或关闭平板模式,有几种方法可以实现。​ 自动平板模式在Windows 10上如何工作 如果你使用的是二合一可翻转笔记本电脑&#xff0…

《小程序从入门到入坑》框架语法

前言 哈喽大家好,我是 SuperYing,我们继续小程序入门系列,本文将对小程序框架语法进行比较全面的介绍。在《小程序从入门到入坑》简介及工程创建中,我们提到小程序项目结构,主要包括 app.json,app.js&…

某夕夕商品数据抓取逆向之webpack扣取

逆向网址 aHR0cHM6Ly93d3cucGluZHVvZHVvLmNvbQ 逆向链接 aHR0cHM6Ly93d3cucGluZHVvZHVvLmNvbS9ob21lL2JveXNoaXJ0 逆向接口 aHR0cHM6Ly9hcGl2Mi5waW5kdW9kdW8uY29tL2FwaS9naW5kZXgvdGYvcXVlcnlfdGZfZ29vZHNfaW5mbw 逆向过程 请求方式:GET 参数构成 【anti_content】…

爬虫入门到精通_实战篇12(使用Redis+Flask维护动态Cookies池)

1 目标 为什么要用Cookies池 网站需要登录才可爬取,例如新浪微博爬取过程中如果频率过高会导致封号需要维护多个账号的Cookies池实现大规模爬取 Cookies池的要求 自动登录更新定时验证筛选提供外部接口 2 流程框架 首先,需要有一个账号队列&#xf…

【Node.js从基础到高级运用】十一、构建RESTful API

在本篇博客中,我们将综合之前讨论的内容,深入探索如何使用Node.js构建一个RESTful API。我们将重点讨论设计合理的API端点,展示如何通过代码实现这些端点,并指导如何使用Postman测试我们的API,确保其按预期工作。 前提…

Spring Cloud Alibaba微服务从入门到进阶(四)(服务发现-Nacos )

Nacos是服务发现组件和配置服务器 作为服务发现注册组件Nacos Server 搭建Nacos Server 下载、启动 访问nacos,默认 用户/密码 nacos/nacos 将应用注册到nacos 加依赖 在SpringCloud子项目中,Feign是属于OpenFeign,Sentinel、Nacos是属于alibaba的&…

RabbitMQ 模拟实现【六】:程序模拟实现

文章目录 模拟实现模拟消费者模拟生产者效果展示 启动结果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/71841546ad8043f1bd51e4408df791de.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f6e3e72ff9a4483c978ec48e24f075c2.p…

阿里云-云服务器ECS新手如何建网站?

租阿里云服务器一年要多少钱? 不同类型的服务器有不同的价格。 以ECS计算型c5为例:2核4G-1年518.40元,4核8G-1年948.00元。 阿里云ECS云服务器租赁价格由三部分组成: 也就是说,云服务器配置成本磁盘价格网络宽带价格…

Xcode 15.3 Archive失败

Xcode 15.3 Archive失败 背景 升级 Xcode 到 15.3,真机运行正常。打包的时候发现 Archive 失败。 提示: Call parameter type does not match function signature! 仔细看报错里是和HandyJSON相关的提示。 解决 起初以为和 Pod 库有关系,…

Python Web开发记录 Day10:Django part4 靓号管理与优化

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据库准备2、靓号列表3、新建靓号4、编辑靓…

【探索Linux】—— 强大的命令行工具 P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)

阅读导航 引言一、UDP协议1. UDP简介2. UDP的特点3. UDP的使用场景4. UDP的局限性 二、TCP协议1. TCP简介2. TCP的特点3. TCP的应用场景 三、UDP 和 TCP 的异同温馨提示 引言 在上一篇文章中,我们深入探讨了Linux网络编程的基石——套接字(Socket&#…

微博热搜榜单采集,微博热搜榜单爬虫,微博热搜榜单解析,完整代码(话题榜+热搜榜+文娱榜和要闻榜)

文章目录 代码1. 话题榜2. 热搜榜3. 文娱榜和要闻榜 过程1. 话题榜2. 热搜榜3. 文娱榜和要闻榜 代码 1. 话题榜 import requests import pandas as pd import urllib from urllib import parse headers { authority: weibo.com, accept: application/json, text/pl…

黑马程序员java部分笔记(持续更新)十点二:封装

面向对象的三大特征:封装,继承,多态 告诉我们正确的属性与方法 例1:需求:定义一个类:人 属性:姓名,年龄 行为:吃饭,睡觉 代码: public class Pe…

IDEA中导入eclipse运行的java项目

本篇文章主要的内容是在IDEA中导入eclipse运行的java项目,亲测有效。 话不多说,直接开整。 前提:先打开idea软件,界面如下: 开始按下方步骤依次走即可。 1、file --> new --> Project from Existing Sources..…

el-input设置max、min无效的解决方案

目录 一、方式1:type“number” 二、方式2:oninput(推荐) 三、计算属性 如下表所示,下面为官方关于max,min的介绍: el-input: max原生属性,设置最大值min原生属性&a…

函数栈和调用

我们看函数调用,首先明确,ra是存着返回地址,s0是帧指针, addi函数一开始先开辟栈空间(改变sp) 然后存下ra和s0 然后把s0指向栈底部,然后利用s0来吧局部变量存放再栈上,然后又放进…