PostgreSQL开发与实战(6.3)体系结构3

news2024/12/23 3:39:49

作者:太阳

四、物理结构

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小蓝的漆房——算法思路

题目链接:1.小蓝的漆房 - 蓝桥云课 (lanqiao.cn) 本题只要是通过枚举的方法,算出涂成每一种颜色所需的天数,最后在所有天数中找出最小值(由题可知,最多只有60种颜色,所以可以尝试算出每种颜色所需的时间&am…

产品推荐 - 基于FPGA XC7K325T+DSP TMS320C6678的双目交汇视觉图像处理平台

一、产品概述 TES601是一款基于FPGA与DSP协同处理架构的双目交汇视觉图像处理系统平台,该平台采用1片TI的KeyStone系列多核浮点/定点DSP TMS320C6678作为核心处理单元,来完成视觉图像处理算法,采用1片Xilinx的Kintex-7系列FPGA XC7K325T作为视…

PCM和I2S区别

I2S和PCM接口都是数字音频接口,而所见的蓝牙到cpu以及codec的音频接口都是用PCM接口,是不是两个接口有各自不同的应用呢?先来看下概念。 PCM(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制,模拟语音信…

echarts散点图自定义tooltip,鼠标放上去展示多行数据

先放效果图 如图,就是鼠标悬停在散点上(这里的散点我替换成了图片,具体做法参考这篇文章:echarts散点图的散点用自定义图片替代-CSDN博客)时,可以展示多行数据。之前查找资料的时候,很多用字符串…

Redis数据结构对象之列表对象

列表对象 概述 ziplist编码的列表对象使用压缩列表作为底层实现,每个压缩列表节点(entry)保存了一个列表元素。 例子如下。如果numbers键的值对象使用的是ziplist编码,这个这个值对对象将会是如图所示的样子。 另一方面,linkedlist编码的列…

Oracle Primavera Analytics 是什么,与P6的关系?

前言 Oracle Primavera P6 Analytics 是与P6有关的一个相对较新的模块,Primavera 用户社区在很大程度上尚未对其进行探索。 那么它到底有什么作用呢? 通过了解得知它旨在通过深入了解组织的项目组合绩效,帮助高级管理层对其项目组合做出更好…

数据库精通之路:国产GBASE数据库学习网站全攻略

介绍:GBASE是一个包含多种产品的数据库系列,由南大通用数据技术有限公司推出,以其高性能和高可用性在国内数据库市场享有较高的品牌知名度。以下是GBASE系列的主要产品特点: GBase 8a:这是一个面向大数据分析的高性能数…

JavaScript slice()方法详解

在 JavaScript 中,slice() 是一个常用的数组方法,用于从现有数组中提取一部分元素,然后返回一个新的数组。它是一个非常有用的工具,可以帮助你在不改变原始数组的情况下操作数组的子集。本文将介绍 slice() 的基本概念、使用方法、…

CSS-DAY3

CSS-DAY3 2024/2/7 盒子模型 页面布局要学习三大核心, 盒子模型, 浮动 和 定位. 学习好盒子模型能非常好的帮助我们布局页面 1.1 看透网页布局的本质 网页布局过程: 先准备好相关的网页元素,网页元素基本都是盒子 Box 。利用 CSS 设置好盒子样式&a…

C++:菱形继承与虚继承

看下面这个示例代码 class A{ public: int num10; A(){cout<<"A构造"<<endl;} virtual void fun(){cout<<"A虚函数"<<endl;} };class B:public A{ public: B(){cout<<"B构造"<<endl;} void fun(){cout<…

C语言基础数据结构——栈和队列

目录 1.栈 1.1栈的选型 1.2 实现代码 2.队列 2.1整体思路 2.2初始化和销毁 2.3出入队列 2.4取队列元素 2.5判断队列是否为空 2.6返回队列中元素个数 2.7 Test 1.栈 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数…

AG32 MCU以太网应用实例demo

一. 前言 AGM32系列32位微控制器旨在为MCU用户提供新的自由度和丰富的兼容外设&#xff0c;以及兼容的引脚和功能。AG32F407系列产品具有卓越的品质&#xff0c;稳定性和卓越的价格价值。 AG32产品线支持其所有接口外设尽可能接近主流兼容性&#xff0c;并提供丰富的参考设计…

CSS学习(2)-盒子模型

1. CSS 长度单位 px &#xff1a;像素。em &#xff1a;相对元素 font-size 的倍数。rem &#xff1a;相对根字体大小&#xff0c;html标签就是根。% &#xff1a;相对父元素计算。 注意&#xff1a; CSS 中设置长度&#xff0c;必须加单位&#xff0c;否则样式无效&#xff…

Arduino IDE配置ESP8266开发环境

一、配置步骤 在Arduino IDE中配置ESP8266开发环境的详细步骤如下&#xff1a; 1.打开Arduino IDE&#xff0c;依次点击“文件”->“首选项”&#xff0c;在“附加开发板管理器网址”一栏添加ESP8266开发板的网址。常用的网址是&#xff1a; http://arduino.esp8266.com/s…

精细化运营从开店到抖音运营

本课程将覆盖精细化运营的各个方面&#xff0c;从实体店开店筹备到在抖音平台进行运营推广。学员将学习品牌定位、市场调研、社交媒体营销策略等内容&#xff0c;深入了解如何利用抖音等平台推动业务发展&#xff0c;提升品牌影响力。 课程大小&#xff1a;6.2G 课程下载&…

快速排序(数据结构)

1. 前言&#xff1a; 这两种排序经常使用&#xff0c;且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 最坏时间复杂度&#xff1a; O&#xff08;n^2&#xff09; 1.1. 左右向中遍历: 取最右侧4…

MechanicalSoup,一个非常实用的 Python 自动化浏览器交互工具库!

目录 前言 什么是 Python MechanicalSoup 库&#xff1f; 核心功能 使用方法 1. 安装 MechanicalSoup 库 2. 创建 MechanicalSoup 客户端 3. 打开网页并与之交互 实际应用场景 1. 网页自动化测试 2. 网络爬虫与数据提取 3. 网页自动化操作 4. 自动化填写和提交多个表单 5.…

数字IC实践项目(9)—SNN加速器的设计和实现(tiny_ODIN)

数字IC实践项目&#xff08;9&#xff09;—基于Verilog的SNN加速器 写在前面的话项目整体框图完整电路框图 项目简介和学习目的软件环境要求 Wave&CoverageTiming&#xff0c;Area & Power总结 写在前面的话 项目介绍&#xff1a; SNN硬件加速器是一种专为脉冲神经网…

【论文笔记合集】Transformers in Time Series A Survey综述总结

本文作者&#xff1a; slience_me 文章目录 Transformers in Time Series A Survey综述总结1 Introduction2 Transformer的组成Preliminaries of the Transformer2.1 Vanilla Transformer2.2 输入编码和位置编码 Input Encoding and Positional Encoding绝对位置编码 Absolute …

GPT-1, GPT-2, GPT-3, InstructGPT / ChatGPT and GPT-4 总结

1. GPT-1 What the problem GPT-1 solve? 在 GPT-1 之前&#xff0c;NLP 通常是一种监督模型。 对于每个任务&#xff0c;都有一些标记数据&#xff0c;然后根据这些标记数据开发监督模型。 这种方法存在几个问题&#xff1a;首先&#xff0c;需要标记数据。 但 NLP 不像 CV&…