安装扩展
Module:
Pigsty 使用操作系统标准的包管理器(yum/apt)来安装 PostgreSQL 扩展插件。
扩展安装相关参数
您可以在以下变量中指定要安装哪些扩展,两者的效果基本相同:
通常 pg_packages
用于在全局指定整个环境中所有 PostgreSQL 集群都需要统一安装的软件包:
例如 PostgreSQL 内核,高可用组建 Patroni,连接池 pgBouncer,监控 pgExporter 等。
Pigsty 默认也会在这里指定安装两个必选扩展: pg_repack
和 wal2json
用于膨胀治理和 CDC 变更抽取。
而 pg_extensions
则通常用于在特定集群中,指定本集群需要安装的扩展插件。
Pigsty 默认安装三个PG生态的重要扩展:postgis
, timescaledb
, pgvector
,您可以在这里指定需要安装的其他扩展插件。
pg_packages: # pg packages to be installed, alias can be used
- postgresql
- patroni pgbouncer pgbackrest pg_exporter pgbadger vip-manager wal2json pg_repack
pg_extensions: # pg extensions to be installed, alias can be used
- postgis timescaledb pgvector
另一个重要区别是:pg_packages
安装的软件包只确保存在,而 pg_extensions
安装的软件包会默认升级到最新可用版本。
当使用本地软件源时,这并不是一个问题。当您直接使用互联网上游软件源时,请充分考虑这一点,并将不希望升级的扩展插件转移到 pg_packages
中。
在 PGSQL 集群初始化时,Pigsty 会自动安装 pg_packages
和 pg_extensions
中指定的扩展插件。
在已有集群上安装扩展
对于一个已经完成置备初始化的 PostgreSQL 集群,您可以首先将所需的扩展添加至 pg_packages
或 pg_extensions
中,然后通过以下命令安装扩展:
./pgsql.yml -t pg_extension # 安装 pg_extensions 中指定的扩展插件
扩展名翻译机制
在 Pigsty 中,您可以在 pg_packages
和 pg_extensions
中使用:
- 原始的操作系统包名
- 标准扩展名(Alias)
例如:
postgis # 安装当前 PG 大版本对应的 PostGIS 包
postgis34_$v* # 安装当前 PG 大版本对应的 PostGIS RPM 包
postgis34_15* # 安装 PG 15 大版本对应的 PostGIS RPM 包
postgresql-$v-postgis-3* # 安装当前 PG 大版本对应的 PostGIS DEB 包
postgresql-14-postgis-3* # 安装 PG 14 大版本对应的 PostGIS DEB 包
我们建议使用 Pigsty 提供的标准化扩展名(Alias),在不同的操作系统发行版中,Pigsty 将标准扩展名翻译为对应 PG 大版本的 RPM / DEB 包名,这样用户可以无需关心不同操作系统发行版的扩展包名差异:
Pigsty 尽最大努力对齐 EL 操作系统与 Debian 操作系统生态的 PostgreSQL 扩展,但仍有少量扩展因为各种原因难以/尚未移植, 请参考 RPM扩展列表 与 DEB扩展列表 了解更多信息。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.