当前位置: 首页 > article >正文

CentOS 7上PostgreSQL 14.8源码编译安装与优化指南

CentOS 7上PostgreSQL 14.8源码编译安装与生产级优化实战在当今数据驱动的商业环境中PostgreSQL作为最先进的开源关系型数据库之一凭借其强大的功能集和卓越的稳定性已成为企业级应用的首选。本文将深入探讨在CentOS 7环境下通过源码编译方式部署PostgreSQL 14.8的全过程并分享针对生产环境的关键优化策略。1. 环境准备与依赖安装在开始PostgreSQL的源码编译之前确保系统环境准备充分是成功部署的第一步。CentOS 7作为稳定可靠的企业级Linux发行版为数据库服务提供了坚实的基础。首先更新系统基础软件包至最新版本yum update -y yum upgrade -yPostgreSQL源码编译需要大量开发工具和库文件支持以下命令将安装所有必需依赖yum groupinstall Development Tools -y yum install -y perl-ExtUtils-Embed systemd-devel readline-devel \ uuid-devel zlib-devel libicu-devel libxml2-devel libxslt-devel \ python-devel python3-devel openssl-devel lz4-devel pam-devel \ openldap-devel cmake bison flex tcl-devel提示对于生产环境建议在干净的CentOS 7最小化安装基础上进行避免已有软件包冲突。验证关键工具链版本是否符合要求gcc --version | head -n1 make --version | head -n1 cmake --version | head -n12. 系统配置与存储规划合理的存储规划对数据库性能至关重要。我们建议将PostgreSQL的数据目录、WAL日志和备份分别存放在不同的存储设备上以优化I/O性能。创建专用用户和目录结构useradd -U -m -d /home/postgres -s /bin/bash postgres mkdir -p /opt/pgsql/{source,extensions} mkdir -p /data/pgsql/{data,wal,backup} chown -R postgres:postgres /opt/pgsql /data/pgsql chmod 700 /data/pgsql/data配置PostgreSQL用户环境变量cat /home/postgres/.bash_profile EOF # PostgreSQL Environment export PGHOME/usr/local/pgsql export PGDATA/data/pgsql/data export PATH$PGHOME/bin:$PATH export LD_LIBRARY_PATH$PGHOME/lib:$LD_LIBRARY_PATH EOF3. 源码获取与编译安装从PostgreSQL官方镜像下载源码包并验证完整性wget https://ftp.postgresql.org/pub/source/v14.8/postgresql-14.8.tar.gz \ -P /opt/pgsql/source cd /opt/pgsql/source echo 05a8078ee17d4f00779138767b802065 postgresql-14.8.tar.gz | md5sum -c解压并进入源码目录tar xf postgresql-14.8.tar.gz cd postgresql-14.8配置编译选项时根据实际需求启用相应功能模块./configure \ --prefix/usr/local/pgsql \ --with-systemd \ --with-uuidossp \ --with-perl \ --with-python \ --with-tcl \ --with-icu \ --with-openssl \ --with-libxml \ --with-libxslt \ --with-lz4 \ --with-pam \ --with-ldap \ --enable-debug \ --enable-dtrace \ --enable-nls启动编译和安装过程make -j $(nproc) world make install-world注意-j $(nproc)选项会使用所有可用的CPU核心进行并行编译显著加快构建速度。4. 数据库初始化与基础配置切换到postgres用户初始化数据库集群su - postgres initdb -D $PGDATA \ -E UTF8 \ --localeC \ --wal-segsize64 \ --data-checksums关键配置文件调整建议postgresql.conf基础优化listen_addresses * port 5432 max_connections 200 shared_buffers 4GB work_mem 16MB maintenance_work_mem 256MB effective_cache_size 12GB wal_level replica synchronous_commit on wal_buffers 16MB checkpoint_timeout 15min max_wal_size 8GB min_wal_size 2GB random_page_cost 1.1 effective_io_concurrency 200pg_hba.conf安全配置示例# TYPE DATABASE USER ADDRESS METHOD local all all scram-sha-256 host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256 hostssl replication replicator 192.168.1.0/24 scram-sha-2565. 系统服务集成与管理创建systemd服务单元文件实现服务管理cat /etc/systemd/system/postgresql.service EOF [Unit] DescriptionPostgreSQL Database Server Afternetwork.target [Service] Typenotify Userpostgres Grouppostgres EnvironmentPGDATA/data/pgsql/data OOMScoreAdjust-1000 ExecStart/usr/local/pgsql/bin/postgres -D ${PGDATA} ExecReload/bin/kill -HUP $MAINPID KillModemixed KillSignalSIGINT TimeoutSec0 [Install] WantedBymulti-user.target EOF启用并启动PostgreSQL服务systemctl daemon-reload systemctl enable --now postgresql systemctl status postgresql6. 生产环境高级优化策略6.1 内存与I/O优化根据服务器硬件配置调整关键参数参数名称推荐值说明shared_buffers物理内存的25%数据库缓存大小effective_cache_size物理内存的50-75%操作系统和数据库缓存总和work_mem4-32MB每个查询操作的内存限制maintenance_work_mem256MB-1GB维护操作内存限制6.2 查询优化器调整ALTER SYSTEM SET random_page_cost 1.1; ALTER SYSTEM SET effective_io_concurrency 200; ALTER SYSTEM SET parallel_setup_cost 10; ALTER SYSTEM SET parallel_tuple_cost 0.1;6.3 监控与维护配置启用关键统计信息收集track_io_timing on track_functions all track_activity_query_size 2048 log_statement ddl log_duration on log_lock_waits on deadlock_timeout 1s7. 安全加固与日常维护创建专用管理用户并设置适当权限CREATE ROLE dbadmin WITH LOGIN SUPERUSER CREATEDB CREATEROLE REPLICATION; ALTER ROLE dbadmin WITH PASSWORD StrongPassword123!;定期维护任务建议# 每日自动清理和分析 0 3 * * * postgres /usr/local/pgsql/bin/vacuumdb --all --analyze # 每周完整备份 0 4 * * 0 postgres /usr/local/pgsql/bin/pg_dumpall | gzip /data/pgsql/backup/full_$(date \%Y\%m\%d).sql.gz配置SSL加密连接openssl req -new -x509 -days 365 -nodes -text -out $PGDATA/server.crt \ -keyout $PGDATA/server.key -subj /CNdb.example.com chmod 600 $PGDATA/server.key chown postgres:postgres $PGDATA/server.{crt,key}

相关文章:

CentOS 7上PostgreSQL 14.8源码编译安装与优化指南

CentOS 7上PostgreSQL 14.8源码编译安装与生产级优化实战 在当今数据驱动的商业环境中,PostgreSQL作为最先进的开源关系型数据库之一,凭借其强大的功能集和卓越的稳定性,已成为企业级应用的首选。本文将深入探讨在CentOS 7环境下通过源码编译…...

ECBS多机器人路径规划:从理论到实践的优化策略

1. 多机器人路径规划的核心挑战 想象一下让10个外卖机器人在商场里送餐,或者让50个仓储机器人在仓库搬运货物。每个机器人都有自己的起点和目的地,但通道宽度只够1-2台机器并行。这就是典型的多机器人路径规划(MAPF)问题——既要保证所有机器人按时到达目…...

异步电机参数解析:从铭牌数据到等效电路的公式法实践

1. 异步电机参数计算的基础知识 异步电机作为工业领域最常见的动力设备之一,其性能分析和系统仿真都离不开准确的等效电路参数。传统上,我们通过空载和堵转实验来获取这些参数,但这种方法存在几个明显的缺陷。首先,堵转实验时转子…...

统信UOS外接显示器黑屏?5步搞定NVIDIA驱动配置(附BusID查找技巧)

统信UOS多屏办公实战:NVIDIA显卡驱动配置全指南 当你在统信UOS系统上连接第二块显示器,期待扩展工作空间时,却只看到一个黑屏——这种体验确实令人沮丧。作为一款优秀的国产操作系统,统信UOS在办公场景下表现优异,但遇…...

Kiro AWS Observability Power 配置与使用指南

CloudWatch MCP | Application Signals MCP | CloudTrail MCP | AWS Docs MCP | 一站式排障 概述 痛点 日常排查 AWS 问题需要在多个工具间切换: 工具 维度 局限 CloudWatch Metrics 📊 指标 只看数值,不知道为什么 CloudWatch Logs 📝 日志 海量日志,人工过滤 X-Ray …...

COZE - 3

应用开发与发布 什么是应用? 通过扣子平台构建的 AI 应用具备强大的可扩展性,支持与个性化的用户界面绑定。扣子应用通过工作流或对话流处理复杂的业务逻辑与编排,其内置的丰富节点库提供了逻辑处理、知识写入与检索、大模型服务、会话管理等…...

74HC595避坑指南:LED点阵显示残影消除的3种实战方法

74HC595实战精要:彻底解决LED点阵残影的3大技术方案 LED点阵显示屏在嵌入式系统中应用广泛,但动态扫描时出现的残影问题常常困扰开发者。本文将深入剖析残影成因,并提供三种经过验证的解决方案,帮助您实现专业级的显示效果。 1. 残…...

Power Writer客户端隐藏技巧:用PWLINK 2批量烧录不同型号芯片的实战方案

Power Writer客户端隐藏技巧:用PWLINK 2批量烧录不同型号芯片的实战方案 在中小批量硬件生产环境中,烧录效率往往成为制约产能的关键瓶颈。传统方式需要人工切换不同芯片型号的配置参数,不仅耗时且容易出错。PWLINK 2作为一款支持多架构的调试…...

MLX90614红外测温实战:基于STM32F1软件IIC的寄存器深度解析与高精度应用

1. MLX90614红外测温模块的硬件基础 第一次接触MLX90614这个红外测温模块时,我和大多数开发者一样遇到了不少困惑。市面上能找到的资料要么过于简单,要么就是收费内容,真正实用的技术细节少之又少。经过多次实践,我总结出了这套完…...

Beyond Compare 5 密钥生成完整指南:两种方法快速激活软件授权

Beyond Compare 5 密钥生成完整指南:两种方法快速激活软件授权 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5 是一款功能强大的文件比较和同步工具,但…...

Altium Designer原理图绘制全攻略:从格点设置到元件对齐的15个实用技巧

Altium Designer原理图绘制全攻略:从格点设置到元件对齐的15个实用技巧 在电子设计领域,原理图绘制是电路设计的基石。作为行业标准的Altium Designer,其原理图编辑功能强大但操作复杂,许多工程师在使用过程中常陷入低效操作的困境…...

革新性视觉交互系统:MediaPipe TouchDesigner实时交互开发全指南

革新性视觉交互系统:MediaPipe TouchDesigner实时交互开发全指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 在数字创作与实时交…...

内存池初始化失败,任务卡死无日志,堆栈溢出却显示“内存充足”——工业C内存池隐蔽性缺陷深度拆解,你中招了吗?

第一章:工业C内存池避坑指南工业级嵌入式系统中,内存池(Memory Pool)是规避动态内存碎片、保障实时性与确定性的关键机制。但不当设计极易引发越界访问、重复释放、对齐错误或生命周期错配等隐蔽缺陷,导致系统在高负载…...

双馈风机风电场经串补并网次同步振荡/谐振仿真模型探索

双馈风机风电场经串补并网次同步振荡/谐振仿真模型,附参考文献。 DFIG-SSO/SSR simulink仿真 包含模型中红体字提到的参考文献。 可运行,振荡程度可自调,运行结果很理想。 可选择matlab2021版本与2019版本。在风电领域,双馈风机风…...

解决Keil中AT32单片机缺失问题的3种方法(附详细操作截图)

解决Keil中AT32单片机支持包缺失的实战指南 当你第一次在Keil MDK中创建AT32单片机项目时,可能会遇到一个令人沮丧的问题——软件提示找不到对应的设备支持包。这种情况在尝试使用较新型号的国产单片机时尤为常见。作为一位长期使用Keil进行嵌入式开发的工程师&…...

3个强力方案:FunClip智能视频处理全攻略

3个强力方案:FunClip智能视频处理全攻略 【免费下载链接】FunClip Open-source, accurate and easy-to-use video clipping tool, LLM based AI clipping intergrated || 开源、精准、方便的视频切片工具,集成了大语言模型AI智能剪辑功能 项目地址: ht…...

VBA——01篇(基础篇——从零构建自动化脚本)

1. 为什么你需要学习VBA自动化 想象一下这样的场景:每个月末你都要手动整理上百行的销售数据,重复执行复制粘贴、格式调整、数据计算等操作,整个过程至少耗费两小时。这种机械性工作不仅枯燥,还容易因疲劳导致错误。而VBA&#xf…...

nodejs+vue基于springboot的大学生创新创业项目管理

目录技术栈选择系统架构设计功能模块划分数据库设计接口规范开发流程部署方案安全措施性能优化扩展计划项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 Node.js 作为后端服务框架&#xff…...

阿里云DataWorks离线同步实战:从本地MySQL到MySQL的完整配置流程(含调度设置)

阿里云DataWorks离线同步实战:从MySQL到MySQL的数据迁移全指南 在数据驱动的商业环境中,企业经常面临不同数据库间数据迁移的需求。无论是数据仓库建设、业务系统升级还是数据分析需求,高效可靠的数据同步方案都至关重要。阿里云DataWorks作为…...

OWL ADVENTURE 快速上手:治愈系像素界面,让AI图像理解变得简单有趣

OWL ADVENTURE 快速上手:治愈系像素界面,让AI图像理解变得简单有趣 1. 认识OWL ADVENTURE:当AI遇见像素艺术 OWL ADVENTURE是一款与众不同的AI图像理解工具,它将强大的多模态大模型mPLUG-Owl3封装在一个充满童趣的像素风格界面中…...

无人驾驶L4级商业化的保险与法律困境:谁为事故负责

前言:责任认定的灰色地带 2025 年 6 月 15 日,北京发生了无人驾驶历史上第一起致人死亡的重大事故。 一辆小鹏 P9 在自动驾驶模式下,未能及时制动,与一位 68 岁的老人相撞。老人最终不治身亡。 这场悲剧引发了一连串灵魂拷问: 谁应该为这起事故负责? 小鹏(车企)? 用…...

nodejs+vue基于springboot的大学校园图书借阅管理系统

目录技术栈选择系统模块设计关键实现细节开发与部署流程扩展功能建议项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 后端采用Spring Boot框架,提供RESTful API接口&#xff0c…...

如何快速定位Windows热键冲突?Hotkey Detective终极解决方案

如何快速定位Windows热键冲突?Hotkey Detective终极解决方案 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经按下熟悉的快…...

DepthAnything(4): 基于TensorRT在Jetson平台实现DepthAnything模型的高效部署与性能优化

1. 为什么要在Jetson上部署DepthAnything? DepthAnything作为通用深度估计模型,能够处理各种复杂场景下的图像深度信息提取。但在边缘设备上直接运行原始PyTorch模型往往会遇到性能瓶颈,特别是Jetson这类资源受限的平台。我去年在Jetson Xavi…...

Bean 的一生:从实例化到销毁的 12 个关键节点与扩展点

欢迎来到“Spring 妇产医院”兼“职业介绍所”。很多开发者对 Bean 的理解停留在:“哦,加个 @Component,然后 @Autowired 就能用了。”哈哈 还是太天真了! Bean 在 Spring 容器里的一生,比人类的成长史还要跌宕起伏。它要经历受孕、出生、认亲、培训、上岗、甚至退休。 …...

BetterNCM安装器:告别手动安装烦恼,轻松管理网易云音乐插件

BetterNCM安装器:告别手动安装烦恼,轻松管理网易云音乐插件 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否曾为网易云音乐的手动插件安装而烦恼&#xf…...

KLayout新手必看:5分钟搞定圆形、文字和复杂图案绘制(附实例截图)

KLayout新手必看:5分钟搞定圆形、文字和复杂图案绘制(附实例截图) 作为一名芯片设计工程师,我深知KLayout在版图设计中的重要性。这款开源工具虽然功能强大,但对新手来说却有些门槛。记得我第一次使用时,光…...

3分钟快速上手:NCMconverter让你的网易云音乐解锁播放自由

3分钟快速上手:NCMconverter让你的网易云音乐解锁播放自由 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 还在为网易云音乐的NCM加密格式文件而烦恼吗?N…...

嵌入式C静态分析工具选型终极决策树(含MISRA-2012/2023、AUTOSAR C++14子集、IEC 61508 SIL3适配矩阵)

第一章:嵌入式C静态分析工具选型指南嵌入式C开发对代码安全性、可移植性与资源约束敏感度极高,静态分析是保障固件质量的关键前置环节。选型需综合考量目标架构支持(如ARM Cortex-M系列)、MISRA C/ISO 26262等合规性覆盖能力、内存…...

AXI4突发传输时序全解析:如何高效设计高性能从机IP

AXI4突发传输时序全解析:如何高效设计高性能从机IP 在当今高性能计算和复杂SoC设计中,AXI4总线协议已成为事实上的标准接口。作为IP核开发工程师,深入理解AXI4突发传输时序的底层机制,掌握从机IP设计的优化技巧,对于提…...