使用 Yum 在 Linux 上安装和管理 PostgreSQL?如何在Linux用Yum安装PostgreSQL?Yum能装PostgreSQL吗?

06-08 3177阅读

目录

  1. 准备工作
  2. 添加PostgreSQL官方仓库
  3. 安装PostgreSQL
  4. 配置与优化
  5. 日常维护管理
  6. 故障排查指南
  7. 扩展资源

PostgreSQL作为企业级开源关系型数据库,以其强大的功能、高度的可扩展性和完善的SQL标准支持著称,在RHEL/CentOS等基于RPM的Linux发行版中,yum包管理器提供了便捷的PostgreSQL生命周期管理方案,本指南将系统性地介绍从仓库配置到性能调优的全流程实践。

准备工作

在开始安装前,请完成以下环境准备:

使用 Yum 在 Linux 上安装和管理 PostgreSQL?如何在Linux用Yum安装PostgreSQL?Yum能装PostgreSQL吗?

  1. 系统兼容性检查

    • 确认系统版本:cat /etc/redhat-release
    • 推荐使用RHEL/CentOS 7+或Fedora 28+版本
  2. 权限与网络配置

    # 验证sudo权限
    sudo -v
    # 测试网络连通性
    ping -c 3 download.postgresql.org
  3. 系统更新

    sudo yum update -y && sudo reboot
  4. 存储规划

    • 建议为数据库准备独立分区
    • 确保/var目录有至少10GB可用空间

添加PostgreSQL官方仓库

针对不同系统版本选择对应的仓库配置方案:

RHEL/CentOS 7

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

RHEL/CentOS 8+

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

仓库验证

yum repolist | grep -i postgres
# 预期输出应包含pgdg相关条目

安装PostgreSQL

多版本管理

PostgreSQL支持并行安装多个版本,可通过以下命令查看可用版本:

yum module list postgresql

典型安装示例(以PostgreSQL 15为例)

sudo yum install -y postgresql15-server postgresql15-contrib postgresql15-devel

组件说明

使用 Yum 在 Linux 上安装和管理 PostgreSQL?如何在Linux用Yum安装PostgreSQL?Yum能装PostgreSQL吗?

  • postgresql15-server:数据库服务核心
  • postgresql15-contrib:附加功能模块
  • postgresql15-devel:开发头文件

数据库初始化

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

初始化过程会创建:

  • 默认数据库集群(/var/lib/pgsql/15/data)
  • 系统用户postgres
  • 基础模板数据库

服务管理

# 启动服务
sudo systemctl start postgresql-15
# 设置开机自启
sudo systemctl enable postgresql-15
# 验证状态
systemctl status postgresql-15

配置与优化

核心配置文件

文件路径 作用
/var/lib/pgsql/15/data/postgresql.conf 主配置文件
/var/lib/pgsql/15/data/pg_hba.conf 客户端认证配置
/var/lib/pgsql/15/data/pg_ident.conf 用户映射配置

远程访问配置

  1. 修改监听地址:

    sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /var/lib/pgsql/15/data/postgresql.conf
  2. 配置访问规则:

    echo "host    all             all             0.0.0.0/0               scram-sha-256" | sudo tee -a /var/lib/pgsql/15/data/pg_hba.conf
  3. 防火墙设置:

    sudo firewall-cmd --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload

性能调优建议

根据服务器配置调整以下参数(8GB内存示例):

shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 16MB
maintenance_work_mem = 512MB

日常维护管理

版本升级流程

  1. 创建备份:

    sudo -u postgres pg_dumpall > full_backup.sql
  2. 安装新版本:

    使用 Yum 在 Linux 上安装和管理 PostgreSQL?如何在Linux用Yum安装PostgreSQL?Yum能装PostgreSQL吗?

    sudo yum install postgresql16-server
  3. 数据迁移:

    sudo /usr/pgsql-16/bin/pg_upgrade \
      -b /usr/pgsql-15/bin \
      -B /usr/pgsql-16/bin \
      -d /var/lib/pgsql/15/data \
      -D /var/lib/pgsql/16/data

常用维护命令

# 检查数据库状态
sudo -u postgres psql -c "SELECT version();"
# 查看活动连接
sudo -u postgres psql -c "SELECT * FROM pg_stat_activity;"
# 执行定期维护
sudo -u postgres vacuumdb --all --analyze

故障排查指南

常见问题处理

  1. 服务启动失败

    # 查看详细日志
    journalctl -u postgresql-15 --no-pager -n 50
  2. 连接数不足

    ALTER SYSTEM SET max_connections = 200;
    SELECT pg_reload_conf();
  3. 磁盘空间告警

    # 查找大表
    sudo -u postgres psql -c "SELECT nspname || '.' || relname AS relation, 
    pg_size_pretty(pg_total_relation_size(C.oid)) AS total_size FROM pg_class C 
    LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) ORDER BY 
    pg_total_relation_size(C.oid) DESC LIMIT 10;"

扩展资源

最佳实践提示

  1. 生产环境建议配置WAL归档和定期备份
  2. 使用pgBadger进行日志分析
  3. 考虑使用pgBouncer管理连接池

通过本指南,您已经掌握使用yum管理PostgreSQL的核心技能,建议定期检查PostgreSQL安全公告,保持数据库的安全更新。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码