PostgreSQL教程FG005-PG快速上手:环境部署(二进制)极简步骤
本文详细介绍PostgreSQL 18二进制版本的快速安装步骤,包括环境检查、安装过程、基本配置和验证测试,帮助读者快速搭建PostgreSQL环境。风哥教程参考PostgreSQL官方文档Installation from Binaries等内容。
本文档风哥主要介绍PG快速上手:环境部署(二进制)极简步骤相关内容。风哥教程参考PostgreSQL官方文档Installation, Server Administration内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。
本文档介绍PostgreSQL二进制安装的快速部署方法,包括下载、安装、初始化、启动等核心步骤,适合快速搭建测试环境。风哥教程参考PostgreSQL官方文档Installation, Server Administration内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。
Part01-基础概念与理论知识
1.1 二进制安装概述
PostgreSQL二进制安装是指使用预编译好的二进制包进行安装,这种方式简单快捷,适合快速部署环境。二进制安装不需要编译源码,安装过程更加高效。学习交流加群风哥微信: itpux-com
1.2 系统要求
PostgreSQL 18对系统的基本要求:
– 操作系统:Oracle Linux 8.x/9.x、RHEL 8.x/9.x、Ubuntu 20.04+/22.04+、Debian 11+/12+等
– CPU:至少2核,风哥教程针对风哥教程针对风哥教程针对生产环境建议4核以上
– 内存:至少2GB,风哥教程针对风哥教程针对风哥教程针对生产环境建议8GB以上
– 磁盘:至少10GB可用空间,风哥教程针对风哥教程针对风哥教程针对生产环境建议50GB以上
from oracle:www.itpux.com
– 网络:能够访问互联网以下载安装包
Part02-生产环境规划与建议
2.1 硬件规划
– CPU:选择多核CPU,提高并行处理能力
– 内存:根据数据量和并发量确定,建议内存为数据量的1/4-1/2
– 存储:使用SSD提高I/O性能,风哥教程针对风哥教程针对风哥教程针对生产环境建议使用RAID 10
2.2 存储规划
– 数据目录:/postgresql/data18(默认)或自定义目录
– 日志目录:/postgresql/data18/log(默认)
– 备份目录:独立的存储设备,如/backup
– 临时目录:/tmp,建议至少1GB可用空间
2.3 网络规划
– 端口:默认5432,风哥教程针对风哥教程针对风哥教程针对生产环境建议修改为非默认端口
– 防火墙:开放PostgreSQL端口
– 网络隔离:风哥教程针对风哥教程针对风哥教程针对生产环境建议部署在专用网络段
Part03-生产环境项目实施方案
3.1 操作系统检查
以Oracle Linux 9.3为例,进行系统检查。
# cat /etc/oracle-release
Oracle Linux Server release 9.3
# 检查内核版本
# uname -r
5.15.0-97.87.1.el9uek.x86_64
# 检查系统架构
# uname -m
x86_64
# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 31Gi 1.2Gi 28Gi 10Mi 1.7Gi 29Gi
Swap: 15Gi 0B 15Gi
# 检查磁盘空间
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 39G 24% /
# 检查CPU核心数
# nproc
8
# 检查SELinux状态
# getenforce
Disabled
# 检查防火墙状态
# systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-04-02 09:00:00 CST; 1h ago
Docs: man:firewalld(1)
Main PID: 1234 (firewalld)
Tasks: 2 (limit: 4915)
Memory: 25.3M
CGroup: /system.slice/firewalld.service
└─1234 /usr/bin/python3 -s /usr/sbin/firewalld –nofork –nopid
3.2 安装PostgreSQL
使用PostgreSQL官方yum源安装PostgreSQL 18。
# dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 禁用默认PostgreSQL模块
# dnf -qy module disable postgresql
# 安装PostgreSQL 18服务器和客户端
# dnf install -y postgresql18-server postgresql18-contrib postgresql18
# 验证安装
# rpm -qa | grep postgresql18
postgresql18-18.3-1PGDG.rhel9.x86_64
postgresql18-libs-18.3-1PGDG.rhel9.x86_64
postgresql18-server-18.3-1PGDG.rhel9.x86_64
postgresql18-contrib-18.3-1PGDG.rhel9.x86_64
postgresql18-common-18.3-1PGDG.rhel9.x86_64
3.3 初始配置
初始化PostgreSQL数据库并配置服务。
# /postgresql/fgapp/bin/postgresql-18-setup initdb
Initializing fgedudb … OK
# 启动PostgreSQL服务并设置开机自启
# systemctl enable –now postgresql-18
Created symlink /etc/systemd/system/multi-fgedu.target.wants/postgresql-18.service → /usr/lib/systemd/system/postgresql-18.service.
# 检查服务状态
# systemctl status postgresql-18
● postgresql-18.service – PostgreSQL 18 fgedudb server
Loaded: loaded (/usr/lib/systemd/system/postgresql-18.service; enabled; preset: disabled)
Active: active (running) since Thu 2026-04-02 10:00:00 CST; 1min ago
Docs: https://www.postgresql.org/docs/18/
Process: 12345 ExecStartPre=/postgresql/fgapp/bin/postgresql-18-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 12346 (postmaster)
Tasks: 8 (limit: 4915)
Memory: 155.1M
CGroup: /system.slice/postgresql-18.service
├─12346 /postgresql/fgapp/bin/postmaster -D /postgresql/data18/
├─12347 pgsql: logger
├─12349 pgsql: checkpointer
├─12350 pgsql: background writer
├─12351 pgsql: walwriter
├─12352 pgsql: autovacuum launcher
├─12353 pgsql: stats collector
└─12354 pgsql: logical replication launcher
Apr 02 10:00:00 fgedu.net.cn systemd[1]: Starting PostgreSQL 18 fgedudb server…
Apr 02 10:00:00 fgedu.net.cn postmaster[12346]: 2026-04-02 10:00:00.123 CST [12346] LOG: redirecting log output to logging collector process
Apr 02 10:00:00 fgedu.net.cn postmaster[12346]: 2026-04-02 10:00:00.123 CST [12346] HINT: Future log output will fgappear in directory “/postgresql/data18/log”.
Apr 02 10:00:00 fgedu.net.cn systemd[1]: Started PostgreSQL 18 fgedudb server.
Part04-生产案例与实战讲解
4.1 安装实战
完整的安装过程演示。
# dnf install -y wget curl vim
# 2. 安装PostgreSQL yum源
# wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# dnf install -y pgdg-redhat-repo-latest.noarch.rpm
# 3. 禁用默认PostgreSQL模块
# dnf -qy module disable postgresql
# 4. 安装PostgreSQL 18
# dnf install -y postgresql18-server postgresql18-contrib postgresql18
# 5. 初始化数据库
# /postgresql/fgapp/bin/postgresql-18-setup initdb
# 6. 启动服务并设置开机自启
# systemctl enable –now postgresql-18
# 7. 配置防火墙
# firewall-cmd –permanent –add-port=5432/tcp
# firewall-cmd –reload
# 8. 设置postgres用户密码
# su – pgsql -c “psql -c \”ALTER USER pgsql WITH PASSWORD ‘fgedu123’;\””
ALTER ROLE
4.2 基础操作
PostgreSQL的基本操作演示。
# su – pgsql # 登录PostgreSQL
$ psql
psql (18.3)
Type “help” for help.
# 查看数据库列表
postgres=# \l
List of fgedudbs
Name | Owner | Encoding | Collate | Ctype | Access privileges
———–+———-+———-+———+———+———————–
pgsql | pgsql | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | pgsql | UTF8 | C.UTF-8 | C.UTF-8 | =c/pgsql +
| | | | | postgres=CTc/pgsql template1 | pgsql | UTF8 | C.UTF-8 | C.UTF-8 | =c/pgsql +
| | | | | postgres=CTc/pgsql (3 rows)
# 创建测试数据库
postgres=# CREATE DATABASE testdb;
CREATE DATABASE
# 连接到测试数据库
postgres=# \c testdb
You are now connected to fgedudb “testdb” as fgedu “postgres”.
# 创建测试表
postgres=# CREATE TABLE fgedu_test_table (
postgres(# id SERIAL PRIMARY KEY,
postgres(# name VARCHAR(50) NOT NULL,
postgres(# value INTEGER
postgres(# );
CREATE TABLE fgedu_# 插入测试数据
postgres=# INSERT INTO test_table (name, value) VALUES (‘fgedu1’, 100), (‘fgedu2’, 200), (‘fgedu3’, 300);
INSERT 0 3
# 查询测试数据
postgres=# SELECT * FROM test_table;
id | name | value
—-+——-+——-
1 | fgedu1 | 100
2 | fgedu2 | 200
3 | fgedu3 | 300
(3 rows)
# 退出PostgreSQL
postgres=# \q
$ exit
4.3 配置远程访问
配置PostgreSQL允许远程访问。
# vi /postgresql/data18/postgresql.conf
# 找到并修改listen_addresses参数
listen_addresses = ‘*’ # 允许所有IP访问
# 2. 修改pg_hba.conf文件
# vi /postgresql/data18/pg_hba.conf
# 在文件末尾添加以下内容,允许指定IP段访问
# TYPE DATABASE USER ADDRESS METHOD
fgedu.net.cn all all 192.168.1.0/24 scram-sha-256
# 3. 重启PostgreSQL服务
# systemctl restart postgresql-18
# 4. 验证远程访问
# 在另一台机器上测试连接
$ psql -h 192.168.1.100 -U pgsql -d pgsql Password for fgedu pgsql: psql (18.3)
Type “help” for help.
postgres=# SELECT version();
version
———————————————————————————————————————————————————
PostgreSQL 18.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3), 64-bit
(1 row)
Part05-风哥经验总结与分享
5.1 最佳实践建议
1. 安全设置:设置强密码,限制远程访问IP,禁用不必要的服务。
2. 性能调优:根据硬件配置调整shared_buffers、work_mem等参数。
3. 备份策略:定期备份数据库,测试恢复流程。
4. 监控配置:设置监控系统,监控数据库性能和状态。
5. 日志管理:配置适当的日志级别,定期清理日志文件。
5.2 常见问题与解决
1. 连接失败:检查防火墙设置、pg_hba.conf配置和listen_addresses参数。
2. 权限错误:检查用户权限和数据库对象的访问权限。
3. 服务启动失败:查看日志文件,检查数据目录权限和配置文件语法。
4. 性能问题:使用EXPLAIN分析查询计划,优化SQL语句和索引。
本文介绍了PostgreSQL 18二进制版本的快速安装步骤,包括环境检查、安装过程、基本配置和远程访问设置。通过学习本文,读者可以快速搭建PostgreSQL环境,并进行基本的数据库操作。更多学习教程公众号风哥教程itpux_com
from PostgreSQL:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
