参考资料

  1. Java 是一种面向对象、跨平台的编程语言
  2. 能否用Docker替代虚拟化?
  3. FAST OS DOCKER 是一个轻量化的 Docker 管理工具
  4. Kapacitor是InfluxData开发的开源数据处理引擎
  5. Silverpeas 是一个开源的企业协作平台
  6. Apache Spark 是一个开源的分布式计算系统
  7. Nginx 是一款高性能的开源 Web 服务器
  8. Nexus Repository Manager 3(简称Nexus3)是由Sonatype公司开发的一款企业级仓库管理工具

PostgreSQL 简介

PostgreSQL 是一个开源的关系型数据库管理系统(RDBMS),支持 SQL 标准并扩展了许多高级功能。它以其稳定性、可扩展性和强大的功能集而闻名,适用于各种规模的应用程序。

特点

  1. 开源免费:遵循 PostgreSQL License,可自由使用和修改。

  2. 高度可扩展:支持自定义数据类型、函数、操作符和索引。

  3. ACID 兼容:严格的事务支持,确保数据一致性。

  4. 多版本并发控制(MVCC):高效处理并发读写操作。

  5. 丰富的扩展生态:如 PostGIS(地理空间数据)、pg_partman(分区管理)等。

  6. 跨平台:支持 Linux、Windows、macOS 等操作系统。

最新更新内容及时间

  • 版本 16(2023年9月14日发布):

    • 逻辑复制的并行处理。

    • 新增 pg_stat_io 视图监控 I/O 统计。

    • 增强 JSON/JSONB 处理性能。

    • 改进 vacuum 和 ANALYZE 操作。

下载地址

官网地址

文档地址

Docker 安装示例

# 拉取镜像
docker pull postgres:16

# 运行容器(默认用户 postgres,密码 mypassword)
docker run --name mypostgres \
  -e POSTGRES_PASSWORD=mypassword \
  -p 5432:5432 \
  -d postgres:16

# 进入容器
docker exec -it mypostgres psql -U postgres

YAML 配置示例(如 docker-compose.yml

version: '3'
services:
  postgres:
    image: postgres:16
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: mydb
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:

常见错误及解决

  1. 连接拒绝

    • 检查服务是否启动:systemctl status postgresql

    • 确认 pg_hba.conf 配置允许连接(如 host all all 0.0.0.0/0 md5)。

  2. 端口占用

    • 修改端口或停止冲突服务:netstat -tulnp | grep 5432

  3. 权限不足

    • 确保用户有数据库访问权限:  

      GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
  4. 磁盘空间不足

    • 清理 WAL 日志或扩展存储:VACUUM FULL;

  5. 启动失败

    • 检查日志:journalctl -u postgresql/var/log/postgresql.log