温馨提示×

Debian下pgAdmin如何进行集群管理

小樊
41
2025-12-28 07:38:01
栏目: 智能运维

Debian下使用 pgAdmin 进行集群管理的实操指南

一 架构与准备

  • 明确目标:在 Debian 上,pgAdmin 作为集中式 Web 管理控制台,用于连接并管理多个 PostgreSQL 节点(主从/流复制或基于 repmgr 的高可用集群)。pgAdmin 本身不承担数据复制与故障切换,这些由 PostgreSQL 复制与 repmgr 完成。
  • 组件与网络:准备 PostgreSQL、可选的 repmgrpgAdmin4;开放访问端口(pgAdmin 默认 5050,PostgreSQL 5432),并配置 SSL/TLS 与防火墙。
  • 安装要点(示例):
    • 添加 pgAdmin 官方 APT 源并安装:
      sudo apt update
      sudo apt install -y curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates
      curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
      echo “deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main” | sudo tee /etc/apt/sources.list.d/pgadmin4.list
      sudo apt update && sudo apt install -y pgadmin4
    • 初始化 Web 服务与开机自启:
      sudo /usr/pgadmin4/bin/setup-web.sh
      sudo systemctl start pgadmin4 && sudo systemctl enable pgadmin4
    • 防火墙放行:
      sudo ufw allow 5050/tcp
      sudo ufw enable
    • 访问控制台:浏览器打开 http://<服务器IP>:5050,使用初始化时设置的邮箱与密码登录。

二 搭建 PostgreSQL 复制集群

  • 基础复制(流复制)示例:
    • 主库配置(postgresql.conf):
      wal_level = replica
      max_wal_senders = 10
      max_replication_slots = 10
      hot_standby = on
    • 客户端认证(pg_hba.conf):
      host replication replicator 0.0.0.0/0 md5
    • 备库基础备份与配置:
      sudo -u postgres pg_basebackup -h <主库IP> -U replicator -D /var/lib/postgresql/<版本>/main -P -X stream -R -k

      -R 会自动写入 primary_conninfo;按需调整 recovery.conf/standby.signal

      sudo systemctl restart postgresql
  • 高可用方案(repmgr,推荐):
    • 所有节点安装 repmgr,编辑 /etc/repmgr/repmgr.conf(node_id、node_name、conninfo、pgdata 等)。
    • 主节点初始化:
      sudo repmgr init -h <主节点IP> -U <repmgr用户> -p <密码>
    • 备节点注册:
      sudo repmgr standby register -h <主节点IP> -U <repmgr用户> -p <密码>
    • 启动守护进程监控:
      sudo systemctl start repmgrd && sudo systemctl enable repmgrd
    • 常用运维:repmgr standby promote、repmgr standby follow、repmgr cluster show 等。

三 在 pgAdmin 中纳管集群

  • 添加服务器节点:
    • 登录 http://<服务器IP>:5050,在左侧 Servers 点击 “+”,新建服务器。
    • General:填写名称(如 “PG-主库”“PG-从库1”)。
    • Connection:填写主机名/IP、端口 5432、维护数据库(如 postgres)、用户名(如 replicator 或具有复制权限的角色)、密码;启用 SSL/TLS(生产强烈建议)。
  • 批量纳管:按同样方式为每个节点创建连接,形成“主—从”拓扑视图,便于统一查看与操作。
  • 权限与安全:
    • 在 pgAdmin 中创建用户/团队并分配角色(如 Browser/Editor),遵循最小权限原则
    • 在 PostgreSQL 中为对应用户授予数据库与模式权限(CONNECT、USAGE、SELECT/INSERT/UPDATE/DELETE 等)。

四 日常运维与故障切换

  • 监控与诊断:
    • 使用 pgAdmin 的可视化性能监控(连接数、锁、缓存命中率等)、**查询工具与执行计划可视化(F7)**定位慢查询与瓶颈。
    • 结合日志(PostgreSQL 与 pgAdmin)进行问题排查。
  • 备份与恢复:
    • 在 pgAdmin 中执行数据库备份/恢复;同时建议配合物理/逻辑备份策略(如 basebackup、WAL 归档)以满足 RPO/RTO。
  • 故障切换与切换演练:
    • 基于 repmgr 的切换:
      • 计划内切换:在主库执行 sudo repmgr standby promote,其他备库执行 sudo repmgr standby follow。
      • 故障切换:repmgrd 自动或手动执行 promote,随后重建旧主为备库并注册。
    • 切换后在 pgAdmin 中更新各节点的连接与拓扑备注,确保监控与告警指向当前主库。

五 安全与多用户协作

  • 传输与访问控制:
    • 全链路启用 SSL/TLS,限制数据库与 pgAdmin 访问来源,仅开放必要端口(如 5432/5050)。
    • 使用强口令与定期轮换,限制超级用户直连生产。
  • 多用户与最小权限:
    • 在 pgAdmin 内为不同团队/个人创建账号与角色,仅授予所需权限;定期审计与回收过期授权。
    • 如需系统层加固,可为 pgAdmin 目录设置合适的属主与权限(如 root:pgadmin,750)。

0