FAQ

Pigsty快速上手常见问题

下载问题


源码包从哪里下载?

Pigsty源码包:pigsty.tgz 可以从多个地方下载:Pigsty官网,Pigsty CDN,以及Github。

  • Pigsty官网是最新最快都的下载地址,也是默认使用的地址。但只提供最新版本,不提供历史版本。
  • Github Release 是最权威最全面的下载地址,包含所有历史版本。
  • Pigsty CDN则主要用于下载历史版本,以及离线软件包。
https://pigsty.cc/pigsty.tgz                                          # 官网最新
https://github.com/Vonng/pigsty/releases/download/v0.9/pigsty.tgz     # Github
http://pigsty-1304147732.cos.accelerate.myqcloud.com/v0.9/pigsty.tgz  # CDN

离线安装包从哪里下载?

默认情况下,用户不需要操心这个问题configure过程中如果发现离线安装包不存在,将会自动提示用户下载。但如果用户需要在没有互联网访问的环境下进行安装,就需要自行下载并将其上传至目标服务器。

离线安装包pkg.tgz可以从Github Release 或CDN(专为大陆提供)下载。

https://github.com/Vonng/pigsty/releases/download/v0.9/pkg.tgz     # Github
http://pigsty-1304147732.cos.accelerate.myqcloud.com/v0.9/pkg.tgz  # CDN (China)

将其放置于安装机器的 /tmp/pkg.tgz 路径下,即可在安装过程中自动使用。离线软件包默认会解压至:/www/pigsty


不使用离线安装包?

离线安装包中包含了从各路Yum源与Github Release中收集下载的软件包。用户也可以选择不使用预先打包好的离线安装包,而是直接从原始上游下载。当用户使用非 CentOS 7.8 操作系统时,通常可以使用这种方式解决绝大多数依赖错漏问题。不使用离线安装包也很简单,在make config提示时选择否 n 即可。


安装yum软件包时报错

默认的离线软件安装包基于CentOS 7.8环境制作,如果出现问题,可以删除/www/pigsty中出现问题的相关rpm包,以及/www/pigsty/repo_complete标记文件。执行make repo-download重新下载与当前操作系统版本匹配的依赖软件包即可。


有些软件包下载速度太慢

Pigsty已经尽可能使用国内yum镜像进行下载,然而少量软件包仍然受到GFW的影响,导致下载缓慢,例如直接从Github下载的相关软件。有以下解决方案:

  1. Pigsty提供离线软件安装包,预先打包了所有软件及其依赖。在make config时会自动提示下载。

  2. 通过proxy_env指定代理服务器,通过代理服务器下载,或直接使用墙外服务器。

  3. 通过URL直接下载的软件,Pigsty CDN提供了镜像(文件名不变,前缀换掉),例如:

    http://pigsty-1304147732.cos.accelerate.myqcloud.com/pkg/pg_exporter-0.3.2-1.el7.x86_64.rpm
    

Vagrant沙箱第一次启动太慢

Pigsty沙箱默认使用CentOS 7虚拟机,Vagrant首次启动虚拟机时,会下载CentOS/7的ISO镜像Box,尺寸不小。(当然您也可以选择自己下一个CentOS 7 ISO然后用虚拟机安装)。使用代理可能会提高下载速度,好在这个下载只需要在第一次启动时进行。


版本问题


Pigsty源码有哪几种分支?

除了常规的语义版本号之外,Pigsty有三个主要分支:Default, Pro, Beta。pigsty.tgz为标准开源版本,pigsty-beta.tgz为BETA版本,pigsty-pro.tgz为专业版本。普通用户使用默认的pigsty.tgz即可,专业版目前不提供公开下载。


我需要要等1.0 GA吗?

Pigsty从0.3开始就实际应用于真实世界的生产环境中,并不是1.0才真正General Available。然而1.0计划了若干变更(例如监控指标的重新定义改造,PG14的支持),而Pigsty不会对v1.0前的版本提供升级支持。是否现在就用于生产请视自身情况考虑。


编辑Pigsty配置文件的GUI工具是什么?

那是一个单独的命令行工具pigsty-cli,目前处于beta状态。将于Pigsty v1.0一同正式发布。


环境问题


Pigsty的安装环境

安装Pigsty需要至少一个机器节点:规格至少为1核2GB,采用Linux内核,安装CentOS 7发行版,处理器为x86_64架构。

在生产环境中,建议使用更高规格的机器,并部署多个元节点作为容灾冗余。生产环境中元节点将作为管理节点发出控制命令,管理部署数据库集群,采集监控数据,运行定时任务等。


Pigsty的操作系统要求

Pigsty强烈建议使用CentOS 7.8操作系统安装元节点与数据库节点,以免将精力消耗在无谓的问题上。

Pigsty的默认开发、测试、部署环境都基于CentOS 7.8,CentOS 7.6也经过充分的验证。其他CentOS 7.x及其等效版本RHEL7 , Oracle Linux 7在理论上都没有问题,但并未进行测试与验证。

在使用仅监控模式监控已有PostgreSQL数据库集群时,可以使用不同的Linux发行版。因为监控系统相关组件均为Go编写的二进制,可以兼容各种Linux发行版。 但这并不是官方支持的行为。

后续其他操作系统支持可能以容器镜像的形式提供。

为什么不使用Docker与Kubernetes?

虽然Docker对于环境兼容性破事有非常好的疗效,然而数据库并不属于容器使用的最佳场景。此外Docker与Kubernetes本身也是有使用门槛。为了满足“降低门槛”的主旨,Pigsty采用裸机部署。

但Pigsty在设计之初就考虑到容器化云化的需求,这体现在其配置定义的声明式实现中。并不需要太多修改就可以迁移改造为云原生解决方案。当时机成熟时,会考虑使用Kubernetes Operator的方式进行重构。


集成问题


是否可以监控已有的PG实例?

对于非Pigsty供给方案创建的外部数据库,可以使用仅监控模式部署,详情请参考文档。注意Pigsty部署需要目标机器ssh sudo权限。因此通常无法支持云厂商RDS,但例如MyBase for PostgreSQL的ECS托管云数据库是可以纳入监控的。


云厂商RDS监控不了有什么办法?

目前Pigsty官方不支持对纯RDS的监控,因为缺少机器指标的监控系统只能说是半成品。但用户可以通过本地部署PG Exporter远程连接监控RDS,以及Prometheus本地静态服务发现抓取本地Exporter,并通过手工配置Label的方式实现曲线救国。


监控系统问题


监控系统中的Dashboard与文档不一致?

为什么监控系统里只有10个Dashboard?因为开源版本的Pigsty只提供这些监控面板,当然也绝对够用了。


为什么PG Instance Log面板没有数据?

日志收集目前是一个Beta特性,需要额外的安装步骤。执行make logging会安装lokipromtail,执行后该面板方可用。毕竟loki还是比较新的日志收集方案,不是所有人都愿意接受。


监控系统的数据量有多大?

这取决于您数据库的复杂程度(workload),作为参考:200个生产数据库实例1天产生的监控数据量约为16GB。Pigsty默认保留30天监控数据,可以通过参数调整。


架构问题


Pigsty都装了什么东西?

详情请参考系统架构

Pigsty是一套带有完整运行时的数据库解决方案。在本机上,Pigsty可以作为开发、测试、数据分析的环境。在生产环境中,Pigsty可以用于部署,管理,监控大规模PostgreSQL集群。


Pigsty数据库如何保证高可用

Patroni 2.0作为HA Agent,Consul作为DCS,Haproxy作为默认流量分发器。Pigsty的数据库集群成员在使用上幂等:只要集群还有任意一个实例存活,读写与只读流量都可以继续工作。

DCS自身的可用性通过多节点共识保证,故生产环境中建议部署3~5个meta节点,或使用外部的DCS集群。


Pigsty问题交流群

最后修改 2021-05-20: update en doc and faq (a607ae4)