如何在阿里云轻量应用服务器上安装和配置PostgreSQL?

在阿里云轻量应用服务器(Simple Application Server, SAS)上部署 PostgreSQL,核心思路是利用其预装的“应用镜像”一键部署,或手动在纯净 Linux 系统上编译安装。考虑到轻量服务器的资源特性(通常配置为 1-4 核 CPU,2-8GB 内存),推荐优先使用官方维护的镜像方案,稳定性高且运维成本低。

以下是两种主流方案的实操步骤:

方案一:使用“应用镜像”一键部署(推荐)

这是最简单、风险最低的方式。阿里云轻量应用服务器内置了多种数据库的一键镜像,PostgreSQL 是其中标配。

  1. 创建实例

    • 登录阿里云控制台,进入“轻量应用服务器”页面。
    • 点击“创建实例”。
    • 在“镜像选择”环节,不要选“自定义镜像”或“系统镜像”,而是切换到“应用镜像”分类。
    • 搜索"PostgreSQL",你会看到类似 PostgreSQL 14/15/16 等版本选项。建议选择较新的稳定版(如 14 或 15)。
    • 完成其他基础设置(地域、带宽、密码等)并下单。
  2. 初始连接与验证

    • 实例启动后,进入控制台详情页,点击“远程连接”或使用 SSH 工具(如 Xshell、PuTTY)登录。
    • 默认情况下,该镜像会生成一个默认的超级用户(通常是 postgres)和随机生成的密码。
    • 获取密码:在控制台实例详情页的“基本信息”或“重置密码”区域,查看是否提供了初始化密码。如果未直接显示,可能需要执行以下命令查看日志或重置:
      # 尝试查看默认密码(不同镜像可能略有差异,部分镜像会在 /root/.pgpass 或输出日志中提供)
      sudo cat /var/log/postgresql.log | grep "password"
      # 或者重置 postgres 用户密码
      sudo -u postgres psql -c "ALTER USER postgres PASSWORD '你的新密码';"
    • 登录数据库:
      sudo -u postgres psql
  3. 安全组配置(关键)

    • 默认情况下,PostgreSQL 仅监听本地(localhost)。若需从外部访问(如连接本地数据库管理工具 DBeaver、Navicat),必须修改安全组规则。
    • 在阿里云控制台找到该实例的“安全组” -> “入方向” -> “添加规则”。
    • 协议类型选择 TCP,端口填写 5432(PostgreSQL 默认端口),授权对象填写 0.0.0.0/0(生产环境建议限制为特定 IP)。
    • 注意:修改安全组后,还需在数据库内部确认监听地址。编辑配置文件 /etc/postgresql/<版本>/main/postgresql.conf,将 listen_addresses 改为 '*',然后重启服务 sudo systemctl restart postgresql

方案二:在纯净 Linux 系统上手动安装

如果你需要更定制化的环境,或者使用的是“通用型”系统镜像,可以手动安装。此方法适合熟悉 Linux 运维的用户。

  1. 更新系统与依赖
    以 Ubuntu/Debian 为例(CentOS/RHEL 逻辑类似,包管理器替换为 yumdnf):

    sudo apt update && sudo apt upgrade -y
    sudo apt install curl gnupg2 ca-certificates lsb-release -y
  2. 添加 PostgreSQL 官方源
    为了避免使用系统自带的旧版本,建议添加官方 APT 源:

    echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
    curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
  3. 安装指定版本
    例如安装 PostgreSQL 15:

    sudo apt update
    sudo apt install postgresql-15 postgresql-contrib-15 -y
  4. 基础配置优化
    轻量服务器内存有限,需调整共享内存参数以防 OOM(内存溢出)。

    • 编辑配置文件:
      sudo nano /etc/postgresql/15/main/postgresql.conf
    • 修改或添加以下参数(根据实际内存调整,假设 4GB 内存):
      shared_buffers = 512MB
      effective_cache_size = 1.5GB
      work_mem = 64MB
      maintenance_work_mem = 256MB
    • 允许远程连接:
      同样修改 listen_addresses = '*'
    • 配置权限文件 /etc/postgresql/15/main/pg_hba.conf,添加允许远程连接的规则:
      host    all             all             0.0.0.0/0               scram-sha-256
  5. 启动服务与防火墙

    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    sudo systemctl status postgresql
    • 确保阿里云安全组已放行 5432 端口(同方案一)。

运维与注意事项

  1. 数据备份
    轻量应用服务器的磁盘空间有限,务必定期备份。推荐使用 pg_dump 结合阿里云 OSS 进行冷备:

    pg_dump -U postgres mydb > backup.sql
    # 配合 ossutil 上传至 OSS
  2. 性能调优
    轻量服务器通常没有 SSD 高速盘或 IOPS 受限。避免运行复杂的实时分析查询,尽量将读多写少的业务通过 Redis 缓存,减轻 DB 压力。

  3. 监控告警
    利用阿里云云监控(CloudMonitor)绑定轻量服务器,设置 CPU、内存、磁盘使用率的告警阈值。对于数据库本身,可开启慢查询日志(log_min_duration_statement),以便及时优化 SQL。

  4. 合规与安全

    • 弱口令风险:严禁使用 postgres 作为密码,务必设置强密码。
    • 网络隔离:生产环境强烈建议在安全组中将 5432 端口对 0.0.0.0/0 的限制收紧,仅开放给应用服务器或固定办公 IP。
    • 数据合规:确保存储的数据符合国内相关法律法规,避免存储敏感个人信息时未做脱敏处理。

通过以上步骤,你可以在阿里云轻量应用服务器上快速搭建起一个稳定、可用的 PostgreSQL 环境。如果是个人学习或小型项目,方案一最为高效;若是企业级复杂场景,方案二能提供更好的可控性。

未经允许不得转载:CLOUD云枢 » 如何在阿里云轻量应用服务器上安装和配置PostgreSQL?