PostgreSQL 初体验

PostgreSQL 安装

一、核心基础

1. 简介

PostgreSQL 是开源对象关系型数据库(ORDBMS),源自加州伯克利分校,兼容 SQL 标准,支持事务、复杂查询与扩展。

2. 核心特点

  • 完全开源,许可宽松
  • 高度符合 SQL 标准,支持窗口函数、CTE、子查询
  • 数据类型丰富:JSON、数组、枚举、地理空间类型
  • MVCC 多版本并发,事务安全
  • 插件化扩展,支持 PostGIS、TimescaleDB
  • 细粒度权限、加密、审计,安全性高

3. 核心优势

高性能、高可用(主从 / 流复制)、灵活适配多场景、活跃社区、开源低成本。

4. 典型应用场景

企业 ERP/CRM、数据仓库、Web 高并发、GIS 地理信息、物联网 / 大数据。

二、逻辑结构(从上到下)

数据库集簇 → 数据库 → Schema → 表 / 视图 / 索引 / 函数等对象

  1. 数据库集簇:实例管理的所有数据库集合
  2. 数据库:默认 postgres、template0、template1
  3. Schema:隔离对象,默认 public
  4. 对象:表、索引、视图、序列、函数
  5. 表空间:逻辑存储映射物理目录
  6. OID:对象唯一标识

三、物理结构

安装目录
  • bin:命令工具
  • lib:动态库
  • share:文档、插件
  • include:头文件
  • data:数据核心目录
data 关键子目录
  • base:用户表 / 索引
  • global:全局系统表
  • pg_wal:WAL 预写日志
  • pg_tblspc:表空间链接
  • pg_xact:事务状态
关键配置文件
  • postgresql.conf:参数配置
  • pg_hba.conf:客户端认证
  • pg_ident.conf:用户映射

四、实验:安装与登录(OpenEuler 24)

实验 1:编译安装 PostgreSQL 16.3

  1. 安装依赖
bash 复制代码
yum -y install gcc gcc-* make libicu libicu-devel readline-devel zlib zlib-devel
  1. 解压并编译
bash 复制代码
tar zxvf postgresql-16.3.tar.gz
cd postgresql-16.3
./configure --prefix=/usr/local/pgsql
make && make install
  1. 创建用户与数据目录
bash 复制代码
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
  1. 配置环境变量
bash 复制代码
cat >> /etc/profile << 'EOF'
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
export PATH=/usr/local/pgsql/bin:$PATH
EOF
source /etc/profile
  1. 初始化并启动
bash 复制代码
su - postgres
initdb -D /usr/local/pgsql/data
pg_ctl -D /usr/local/pgsql/data -l logfile start
  1. 登录数据库
复制代码
psql

实验 2:DNF 安装 PostgreSQL 15.12

  1. 安装
bash 复制代码
dnf install -y postgresql-server
  1. 初始化
bash 复制代码
postgresql-setup --initdb
  1. 启动并登录
bash 复制代码
systemctl start postgre
su - postgres
psql

五、常用操作速记

  • 登录:psql -U 用户名 -d 数据库名

  • 查看库:\l

  • 进入库:\c 库名

  • 查看表:\dt

  • 帮助:\help

  • 退出:\q

相关推荐
dishugj3 分钟前
HANA 数据库备份与恢复
数据库·oracle
前进的李工10 分钟前
EXPLAIN输出格式全解析:JSON、TREE与可视化
开发语言·数据库·mysql·性能优化·explain
難釋懷31 分钟前
Redis网络模型-IO多路复用模型-poll模式
网络·数据库·redis
dFObBIMmai32 分钟前
如何在 CSS 中实现元素的绝对定位,使其不受窗口尺寸变化影响
jvm·数据库·python
treesforest1 小时前
IP精准定位服务:从城市轮廓到街道坐标,技术如何重塑空间感知
网络·数据库·网络协议·tcp/ip·ip
大明者省1 小时前
宝塔开了端口,Ubuntu 还得开相应端口才能打通
服务器·数据库·ubuntu
Teable任意门互动2 小时前
AI原生开源多维表格有哪些?主流开源多维表格对比解析
数据库·开源·excel·钉钉·飞书·开源软件·ai-native
TDengine (老段)2 小时前
MNode 内部机制深度解析 — SDB、事务引擎与 DDL 处理全链路
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
这个DBA有点耶2 小时前
数据库上云 vs 自建:从成本到人力的三维对比与决策框架
数据库·经验分享·sql·创业创新·dba
shizhan_cloud3 小时前
MySQL 索引优化 + 慢查询日志
数据库·mysql