Postgresql从小白到高手 十:Linux服务器配置详解

Postgresql从小白到高手

第十章 Linux服务器配置详解


文章目录

  • Postgresql从小白到高手
  • Postgresql Linux 服务器配置
  • conf常用配置
  • conf配置类别
    • 1. 连接相关配置
    • 2. 资源管理相关配置
    • 3. 日志和错误报告相关配置
    • 4. 安全性相关配置
    • 5 内存和查询优化
    • 6、复制和备份
    • 配置注意事项


Postgresql Linux 服务器配置

一、前期准备
硬件和软件要求
确保您的Linux服务器满足PostgreSQL 16的硬件和软件要求。具体需求可以参考PostgreSQL的官方文档。
2. 安装环境准备
确保您的Linux系统已经安装了所有必要的依赖包和工具,如gcc、make等。

二、下载与安装
访问PostgreSQL官网
进入PostgreSQL的官方网站,找到对应的Linux版本的下载页面。
2. 选择并下载源码包
根据您的Linux版本和需求,选择适合的PostgreSQL 16源码包进行下载。
3. 上传并解压源码包
将下载的源码包上传到您的Linux服务器,并使用tar命令进行解压。
4. 编译与安装
进入解压后的目录,使用./configure命令进行配置,然后执行make和make install命令进行编译和安装。

三、创建用户和组
创建用户和组
为了安全起见,建议创建一个专门的用户和组来运行PostgreSQL进程。

四、配置文件
编辑postgresql.conf
postgresql.conf是PostgreSQL的主要配置文件,您可以在其中设置各种参数,如监听地址、端口号、日志级别等。根据您的需求进行相应配置。
2. 编辑pg_hba.conf
pg_hba.conf文件用于定义客户端认证方式。根据您的安全需求,配置合适的认证方法。

五、防火墙配置
打开PostgreSQL端口
PostgreSQL默认使用5432端口。您需要在Linux的防火墙中打开这个端口,以允许客户端连接。

六、启动与停止
启动PostgreSQL服务
使用pg_ctl命令或systemd服务来启动PostgreSQL。
2. 停止PostgreSQL服务
同样,使用pg_ctl命令或systemd服务来停止PostgreSQL。

七、备份与恢复
备份数据库
使用pg_dump命令定期备份您的数据库,以防止数据丢失。
2. 恢复数据库
在需要时,使用pg_restore命令从备份中恢复数据库。

八、其他配置
根据您的具体需求,可能还需要进行其他配置,如设置时区、调整共享内存大小等。这些都可以在PostgreSQL的配置文件中进行设置。

九、注意事项
权限管理
确保PostgreSQL的数据目录和日志文件目录的权限设置正确,以防止未经授权的访问。
2. 版本兼容性
在安装和配置过程中,注意检查您的操作系统和依赖包的版本是否与PostgreSQL 16兼容。

十、常见问题与解决
如果在安装和配置过程中遇到问题,可以参考PostgreSQL的官方文档或社区论坛寻求帮助。

conf常用配置

postgresql.conf 是 PostgreSQL 数据库的主要配置文件,它用于控制数据库实例的行为和特性。通常,这个文件位于 PostgreSQL 的数据目录($PGDATA)下,或者在某些安装中,它可能位于特定的版本子目录中,例如 /etc/postgresql/{version}/main/,其中 {version} 是您安装的 PostgreSQL 的版本号。

postgresql.conf 文件包含许多配置选项,以下是一些常见的配置项及其解释:

1、 listen_addresses:指定 PostgreSQL 监听的 IP 地址或主机名。默认情况下,它设置为 localhost,这意味着它只接受本地连接。您可以将其设置为 * 以允许所有 IP 地址的连接,或指定特定的 IP 地址。
2、port:指定 PostgreSQL 数据库服务器监听的端口号。默认端口是 5432。
3、max_connections:指定数据库服务器允许的最大并发连接数。当达到此限制时,新的连接尝试将被拒绝。您可以根据服务器的负载和可用资源来调整此值。
4、shared_buffers:用于缓存数据的内存大小。这是一个关键的性能参数,通常建议将其设置为系统总内存的 15% 到 25%。
5、wal_level、max_wal_senders 等:与 Write-Ahead Logging (WAL) 相关的配置,决定了日志的详细程度、复制功能以及点对点延迟等。
6、log_directory 和 log_filename:分别指定日志文件的存储目录和名称模板。
此外,postgresql.conf 还包含其他许多配置选项,允许您根据具体需求和服务器环境进行微调。

当您修改 postgresql.conf 文件时,通常需要重启 PostgreSQL 服务才能使更改生效。在修改配置文件之前,最好备份原始文件,以防万一。

请注意,具体的配置选项和默认值可能因 PostgreSQL 的版本和安装方式而有所不同。因此,在修改配置文件之前,建议查阅您所使用版本的官方文档,以获取最准确和最新的信息。

conf配置类别

1. 连接相关配置

listen_addresses:
作用:定义 PostgreSQL 服务器接受连接的 IP 地址。
使用:设置为 ‘localhost’ 仅允许本地连接,设置为 ‘*’ 允许所有 IP 地址的连接,也可以指定具体的 IP 地址。
port:
作用:指定 PostgreSQL 监听的端口号。
使用:默认值为 5432,可以根据需要更改为其他端口。
max_connections:
作用:设置数据库允许的最大并发连接数。
使用:根据服务器的负载和硬件资源来设定,过高的值可能导致资源耗尽。

2. 资源管理相关配置

shared_buffers:
作用:设置 PostgreSQL 实例使用的共享内存缓冲区大小。
使用:增加此值可以提高对常用数据的访问速度,但设置过高可能影响其他系统资源。通常建议设置为系统总内存的 15% 到 25%。
work_mem:
作用:单个数据库操作使用的内存量。
使用:针对复杂的查询和排序操作,增加此值可以提高性能,但同样要注意不要设置过高。
maintenance_work_mem:
作用:维护操作(如VACUUM和CREATE INDEX)使用的内存量。
使用:对于大型数据库,增加此值可以加速维护操作。
max_files_per_process:设置每个数据库进程可以打开的最大文件数。
shared_preload_libraries:指定预加载的共享库,用于加载额外的功能或扩展。

3. 日志和错误报告相关配置

logging_collector:
作用:启用或禁用日志收集。
使用:当设置为 on 时,PostgreSQL 将记录服务器进程的活动。
log_directory 和 log_filename:
作用:分别指定日志文件的存储目录和名称模板。
使用:设置合适的路径和命名规则,以便管理和查找日志文件。
log_statement:控制是否记录每个SQL语句。这对于调试和审计可能很有用,但会产生大量日志。
log_duration:记录每个语句的执行时间。
log_min_duration_statement:记录执行时间超过指定阈值的语句。

4. 安全性相关配置

password_encryption:
作用:控制是否对密码进行加密存储。
使用:应始终启用密码加密,以提高安全性。
ssl:
作用:控制是否启用 SSL/TLS 加密连接。
使用:在需要保证数据传输安全性的场景中,应启用 SSL/TLS 加密。
authentication_timeout:设置客户端认证的超时时间。
ssl_ciphers 和 ssl_cert_file 等:用于配置SSL连接的加密选项和证书。

5 内存和查询优化

effective_cache_size:设置数据库服务器估计的系统可用缓存大小。这个值用于查询优化器,以更好地决定查询的缓存策略。
random_page_cost 和 seq_page_cost:分别设置随机访问和顺序访问数据页的成本,用于查询优化器计算最佳查询路径。
maintenance_work_mem:设置维护操作(如VACUUM和CREATE INDEX)使用的内存量。

6、复制和备份

max_replication_slots:设置可以创建的最大复制槽数量。当使用物理复制时,每个复制消费者需要一个复制槽。
wal_keep_segments:设置保留的WAL文件数量,用于归档和恢复。
wal_level:
作用:设置 WAL(Write-Ahead Logging)的级别,影响复制和恢复功能。
使用:根据是否需要复制或点恢复功能来设置。
max_wal_senders:
作用:设置同时可以进行 WAL 发送的最大进程数。
使用:在使用逻辑复制或流复制时,需要根据复制需求设置此值

配置注意事项

内存和缓存相关配置
shared_buffers:通常设置为系统总内存的15%到25%,这个参数控制着 PostgreSQL 用于缓存数据的内存量。增加 shared_buffers 的大小可以提高缓存命中率,减少磁盘 I/O,从而加快查询速度。但是,如果设置得过高,可能会导致系统内存不足,影响其他进程的性能。
work_mem:对于复杂的排序和哈希操作,增加 work_mem 可以提高性能。但是,每个查询都会分配这个数量的内存,因此在高并发环境下,过高的设置可能导致内存耗尽。
effective_cache_size:这个参数告诉查询优化器系统中可用于缓存的数据量。正确设置这个值可以帮助优化器生成更有效的查询计划。
I/O 和存储相关配置
wal_level 和 wal_buffers:这些参数控制着写入前日志(WAL)的行为和缓冲区大小。WAL 是保证数据完整性和恢复能力的重要机制,但过高的 WAL 设置可能会增加磁盘 I/O,影响性能。
maintenance_work_mem:对于维护任务(如 VACUUM 和 REINDEX),增加这个值可以加速操作,但同样要注意内存使用。
并发和连接相关配置
max_connections:这个参数限制了数据库可以同时处理的连接数。如果设置得太低,可能会导致连接被拒绝;如果设置得太高,可能会耗尽系统资源。
max_worker_processes:控制并行查询和后台工作的最大进程数。在高并发或需要复杂查询的场景下,增加这个值可以提高性能。
日志和调试相关配置
logging_collector 和相关的日志参数:虽然这些配置不直接影响性能,但它们可以帮助诊断性能问题。启用详细的日志记录可以帮助你找到性能瓶颈和优化机会。
其他配置
random_page_cost 和 seq_page_cost:这些参数影响查询优化器对访问数据的估计成本。正确设置这些值可以帮助优化器选择更有效的查询路径。
authentication_timeout:虽然这个参数与性能不直接相关,但设置合理的认证超时时间可以避免因长时间的认证等待而导致的资源浪费。

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

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

相关文章

大象机器人开源协作机械臂myCobot 630 全面升级!

1. 开篇概述 在快速发展的机器人技术领域中,Elephant Robotics的myCobot 600已经证明了其在教育、科研和轻工业领域的显著适用性。作为一款具备六自由度的机械臂,myCobot 600以其600mm的工作半径和2kg的末端负载能力,满足了多样化的操作需求。…

中间件解析漏洞

1 、 apache 解析漏洞 漏洞环境搭建 下载 vulhub git clone https://github.com/vulhub/vulhub.git 进入对应漏洞目录、 cd vulhub/httpd/apache_parsing_vulnerability apt-get docker-compose 启动漏洞环境 docker-compose up -d 注:启动容器时&#xf…

leetcode2389--感染二叉树需要的总时间

1. 题意 给定一个节点,每秒该节点会感染相邻的节点,受感染的节点下一秒也会感染周围节点; 求使得所有节点感染的时间 2. 题解 2.1 dfs建图bfs搜索层次 我们将目标节点找到,并从该节点出发找到以该节点形成的树的深度即可。 …

【spring mvc】配置请求到视图名称转换器

最近在开发项目中遇到springmvc在进行视图渲染时,pc端和移动端不是同一个页面的情况,需要将不同的设备类型解析到不同的视图进行渲染。 一、配置方式 这里我写了一个RequestToViewNameTranslatorImpl类实现了RequestToViewNameTranslator接口&#xff…

用数据检验函数正确性,matlab2C

数据存取格式 filename1 g.txt; fid1 fopen(filename1,w); for i 1 : length(g)for j1:size(g,2)if(j1)fprintf(fid1,{%.16f,,g(i,j)); elseif(j>1&&j<151)fprintf(fid1,%.16f,,g(i,j)); elsefprintf(fid1,%.16f},\n,g(i,j));endend%fprintf(fid1,\n…

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和相机设备事件的技术背景Baumer工业相机通过NEOAPISDK在相机中查询和轮询相机设备事件函数功能1.引用合适的类文件2.通过NEOAPISDK…

ZooKeeper 环境搭建详细教程之三(真集群)

ZooKeeper 搭建详细步骤之三(真集群) ZooKeeper 搭建详细步骤之二(伪集群模式) ZooKeeper 搭建详细步骤之一(单机模式) ZooKeeper 及相关概念简介 真集群搭建 搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。 以下是一个简…

在java项目中使用QQ邮箱发送验证码邮件

第一步&#xff1a;集成邮箱服务 在一个java项目中需要一个邮件服务来发送邮件可以使用JavaMail API来实现这一点&#xff0c;在这之前需要在项目中导入javax.mail.jar写入依赖。 方法一&#xff1a;直接在Maven中写入依赖 <dependency><groupId>org.apache.commo…

STM32 CAN开发步骤

STM32 CAN开发通常涉及以下步骤&#xff1a; 1. 配置CAN外设&#xff1a;根据具体的STM32系列和型号&#xff0c;选择并配置CAN外设。可以使用STM32CubeMX软件进行可视化配置&#xff0c;或者直接编写寄存器级的配置代码。 2. 初始化CAN外设&#xff1a;使用HAL库或者寄存器级…

李沐64_注意力机制——自学笔记

注意力机制 1.卷积、全连接和池化层都只考虑不随意线索 2.注意力机制则显示的考虑随意线索 &#xff08;1&#xff09;随意线索倍称之为查询(query) &#xff08;2&#xff09;每个输入是一个值value&#xff0c;和不随意线索key的对 &#xff08;3&#xff09;通过注意力池…

【Unity动画系统】详解Root Motion动画在Unity中的应用(二)

Root Motion遇到Blend Tree 如果Root Motion动画片段的速度是1.8&#xff0c;那么阈值就要设置为1.8&#xff0c;那么在代码中的参数就可以直接反映出Root Motion的最终移动速度。 Compute Thresholds&#xff1a;根据Root Motion中某些数值自动计算这里的阈值。 Velocity X/…

浅析商业模式画布在鞋服零售行业的应用

前言 商业模式画布第一次接触是在10年&#xff0c;那时公司找了一位天师级别的人给公司搞规划&#xff0c;梳理咋做生意&#xff0c;就有幸参与到这一过程&#xff0c;便对这个工具独有情钟&#xff0c;后来多次在实际工作中应用与实践&#xff0c;有一种屡试屡爽之感&#xf…

【Vue+ElementUI】el-table动态高度设置及表格内容错乱对不齐

在Vue中使用ElementUI的el-table标签会遇到以下问题 一、遇到页面切换时&#xff0c;表格内容错乱&#xff08;对不齐&#xff09;&#xff1a;doLayout() 二、动态计算表格高度&#xff1a;getTableMaxHeight() 页面结构&#xff1a;搜索框表格&#xff0c;通常会在表格内部…

Meilisearch 快速入门(Windows 环境) 搜索引擎 语义搜索

Meilisearch 快速入门(Windows 环境)# 简介# Meilisearch 是一个基于 rust 开发的,快速的、完全开源的轻量级搜索引擎。它的数据存储基于磁盘与内存映射,不受 RAM 限制。在一定数量级下,搜索速度不逊于 Elasticsearch。 下载# 官方服务端包下载地址:github.com/meili…

(四)小程序学习笔记——自定义组件

1、组件注册——usingComponents &#xff08;1&#xff09;全局注册&#xff1a;在app.json文件中配置 usingComponents进行注册&#xff0c;注册后可以在任意页面使用。 &#xff08;2&#xff09;局部注册&#xff0c;在页面的json文件中配置suingComponents进行注册&#…

对于button按钮引发的bug

主要原因就是今天在给button按钮添加一个点击事件的时候&#xff0c;并没有声明button的type类型&#xff0c;就一直发生点击按钮但事件并不触发的问题。 触发这种问题的原因就是: 按钮默认的 type 类型是 "submit"&#xff0c;而不是 "button"。当你不显式…

C语言基础—多线程基础

C语言基础—多线程基础 简介正文 简介 多线程是一种并发编程技术&#xff0c;允许程序同时执行多个任务。在C语言中&#xff0c;我们可以使用POSIX线程库&#xff08;pthread&#xff09;来实现多线程编程。 正文 在C语言中&#xff0c;创建线程的基本步骤如下&#xff1a; …

【前端】VUE项目创建

在所需文件夹中打开cmd命令行窗口&#xff0c;输入vue ui 进入web可视化界面选择创建新项目 根据需求依次完成下列选择&#xff0c;下列是参考配置&#xff0c;完成后点击创建项目即可 最终显示完成

(学习日记)2024.05.10:UCOSIII第六十四节:常用的结构体(os.h文件)第三部分

之前的章节都是针对某个或某些知识点进行的专项讲解&#xff0c;重点在功能和代码解释。 回到最初开始学μC/OS-III系统时&#xff0c;当时就定下了一个目标&#xff0c;不仅要读懂&#xff0c;还要读透&#xff0c;改造成更适合中国宝宝体质的使用方式。在学完野火的教程后&a…

搭建git私人仓库

环境准备&#xff1a; 服务端&#xff1a;centos7 客户端&#xff1a;win11 1、安装git sudo apt-get install git2、创建git用户 adduser git修改密码 passwd git查看是否添加成功 cd /home && ls -al3、导入公钥 # 1.切换到git账号 su git# 2.进入 git账户的主…