使用 Yum 在 Linux 上安装和管理 PostgreSQL?如何在Linux用Yum安装PostgreSQL?Yum能装PostgreSQL吗?
目录
PostgreSQL作为企业级开源关系型数据库,以其强大的功能、高度的可扩展性和完善的SQL标准支持著称,在RHEL/CentOS等基于RPM的Linux发行版中,yum包管理器提供了便捷的PostgreSQL生命周期管理方案,本指南将系统性地介绍从仓库配置到性能调优的全流程实践。
准备工作
在开始安装前,请完成以下环境准备:
-
系统兼容性检查
- 确认系统版本:
cat /etc/redhat-release
- 推荐使用RHEL/CentOS 7+或Fedora 28+版本
- 确认系统版本:
-
权限与网络配置
# 验证sudo权限 sudo -v # 测试网络连通性 ping -c 3 download.postgresql.org
-
系统更新
sudo yum update -y && sudo reboot
-
存储规划
- 建议为数据库准备独立分区
- 确保/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
组件说明:
- 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 | 用户映射配置 |
远程访问配置
-
修改监听地址:
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /var/lib/pgsql/15/data/postgresql.conf
-
配置访问规则:
echo "host all all 0.0.0.0/0 scram-sha-256" | sudo tee -a /var/lib/pgsql/15/data/pg_hba.conf
-
防火墙设置:
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
日常维护管理
版本升级流程
-
创建备份:
sudo -u postgres pg_dumpall > full_backup.sql
-
安装新版本:
sudo yum install postgresql16-server
-
数据迁移:
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
故障排查指南
常见问题处理
-
服务启动失败
# 查看详细日志 journalctl -u postgresql-15 --no-pager -n 50
-
连接数不足
ALTER SYSTEM SET max_connections = 200; SELECT pg_reload_conf();
-
磁盘空间告警
# 查找大表 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;"
扩展资源
最佳实践提示:
- 生产环境建议配置WAL归档和定期备份
- 使用pgBadger进行日志分析
- 考虑使用pgBouncer管理连接池
通过本指南,您已经掌握使用yum管理PostgreSQL的核心技能,建议定期检查PostgreSQL安全公告,保持数据库的安全更新。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。