《openEuler2403 最小化系统部署 PostgreSQL17:精简环境下的安装技巧》
在openEuler 2403最小化系统(如Server版或Minimal Install)上部署PostgreSQL 17,能有效节省资源,适用于边缘计算、容器化或低配服务器场景。最小化系统仅包含核心组件,无图形界面,需手动处理依赖和配置。以下是精简环境下的高效安装步骤和技巧,确保过程可靠且资源占用低。通过以上步骤,在openEuler 2403最小化系统上部署PostgreSQL 17仅需50
·
openEuler2403 最小化系统部署 PostgreSQL17:精简环境下的安装技巧
在openEuler 2403最小化系统(如Server版或Minimal Install)上部署PostgreSQL 17,能有效节省资源,适用于边缘计算、容器化或低配服务器场景。最小化系统仅包含核心组件,无图形界面,需手动处理依赖和配置。以下是精简环境下的高效安装步骤和技巧,确保过程可靠且资源占用低。
1. 环境准备:最小化依赖与系统优化
- 系统更新:首先更新系统并安装基础工具,避免冗余包。
sudo dnf update -y sudo dnf install -y wget tar gcc make openssl-devel readline-devel zlib-devel systemd- 技巧:使用
--skip-broken参数跳过冲突包,减少安装失败风险。
- 技巧:使用
- 资源优化:调整系统参数,如限制后台服务。编辑
/etc/systemd/system.conf:DefaultMemoryAccounting=yes DefaultCPUAccounting=yes- 重启生效:
sudo systemctl daemon-reload。
- 重启生效:
- 依赖精简:PostgreSQL 17需C编译器和基础库,但可移除非必要包(如GUI工具)。计算最小内存需求:若系统内存为$M$ MB,建议预留至少$0.2M$ MB给PostgreSQL。
2. PostgreSQL 17 安装:源码编译以控制资源
最小化系统通常无预编译包,推荐源码安装以定制选项。
- 下载源码:
wget https://ftp.postgresql.org/pub/source/v17.0/postgresql-17.0.tar.gz tar -xzvf postgresql-17.0.tar.gz cd postgresql-17.0 - 编译与安装:启用最小化模块,禁用文档和测试以节省空间。
./configure --prefix=/usr/local/pgsql --without-readline --without-zlib --enable-thread-safety make -j$(nproc) # 使用多核加速编译 sudo make install- 技巧:
-j$(nproc)动态分配编译线程,避免CPU过载;--without-*参数移除非核心功能,减少二进制大小约30%。
- 技巧:
- 创建系统用户:专用于PostgreSQL,提升安全。
sudo groupadd postgres sudo useradd -g postgres -s /bin/false postgres
3. 配置与初始化:精简启动参数
- 数据目录初始化:使用最小化配置。
sudo mkdir /usr/local/pgsql/data sudo chown postgres:postgres /usr/local/pgsql/data sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --no-locale- 技巧:
--no-locale禁用本地化支持,节省内存。
- 技巧:
- 配置文件优化:编辑
/usr/local/pgsql/data/postgresql.conf:listen_addresses = 'localhost' # 仅本地访问,减少网络开销 shared_buffers = 128MB # 根据内存调整,公式:$S = \min(0.25 \times M, 1024)$ MB($M$为总内存) max_connections = 20 # 限制连接数,防止资源耗尽 - 服务管理:创建systemd服务文件
/etc/systemd/system/postgresql.service:[Unit] Description=PostgreSQL 17 After=network.target [Service] User=postgres Group=postgres ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data Restart=on-failure [Install] WantedBy=multi-user.target- 启动并设自启:
sudo systemctl enable --now postgresql。
- 启动并设自启:
4. 验证与安全:轻量级测试
- 基础测试:连接数据库检查状态。
输出应显示sudo -u postgres /usr/local/pgsql/bin/psql -c "SELECT version();"PostgreSQL 17.0。 - 安全加固:仅开放必要端口(默认5432),使用防火墙:
sudo firewall-cmd --add-port=5432/tcp --permanent sudo firewall-cmd --reload - 资源监控:用
top或htop观察内存占用,目标:PostgreSQL进程常驻内存低于200MB。
5. 常见问题与技巧总结
- 依赖缺失处理:若编译报错,通过
dnf provides <file>查找缺失包。 - 备份与恢复:在精简环境中,使用pg_dump轻量备份:
sudo -u postgres /usr/local/pgsql/bin/pg_dump dbname > backup.sql - 性能公式:查询响应时间$T$与连接数$C$相关,近似为$T \propto \frac{C}{S}$($S$为shared_buffers)。优化后,单查询可快至毫秒级。
通过以上步骤,在openEuler 2403最小化系统上部署PostgreSQL 17仅需500MB磁盘和512MB内存,适合资源受限场景。始终测试生产环境配置,确保稳定性。
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)