安装扩展
Module:
Pigsty 使用操作系统标准的包管理器(yum/apt)来安装 PostgreSQL 扩展插件。
配置扩展
在 PGSQL 集群初始化时,Pigsty 会自动安装 pg_packages
和 pg_extensions
中指定的扩展插件。
两个参数都可以用于安装 PostgreSQL 相关软件包,通常 pg_packages
用于在全局指定整个环境中所有 PostgreSQL 集群都需要统一安装的软件包:例如 PostgreSQL 内核,高可用组建 Patroni,连接池 pgBouncer,监控 pgExporter 等。
Pigsty 默认也会在这里指定安装三个重要扩展:pgvector
, pg_repack
和 wal2json
用于膨胀治理和 CDC 变更抽取。
而 pg_extensions
则通常用于在特定集群中,指定本集群需要安装的扩展插件。默认为空列表,表示不安装任何额外的扩展插件。
pg_packages: # 有待安装的 PostgreSQL 相关软件包,可以使用别名,安装中确保存在即可。
- postgresql
- wal2json pg_repack pgvector
- patroni pgbouncer pgbackrest pg_exporter pgbadger vip-manager
pg_extensions: [] # 有待安装的 PostgreSQL 扩展包,可以使用别名,会自动更新到最新可用版本
另一个重要区别是:pg_packages
安装的软件包只确保存在即可,而 pg_extensions
安装的软件包会默认 升级到最新可用版本。
当使用本地软件源时,这并不是一个问题。当您直接使用互联网上游软件源时,请充分考虑这一点,并将不希望升级的扩展插件转移到 pg_packages
中。
在现有集群上安装扩展
对于一个已经完成置备初始化的 PostgreSQL 集群,如果你想安装新的扩展插件:
首先将所需的扩展添加至 pg_extensions
中,然后通过以下命令执行子任务完成安装:
./pgsql.yml -t pg_extension # 安装 pg_extensions 中指定的扩展插件
请注意,pg_extension
任务中指定的扩展插件会默认升级到当前环境中最新可用版本。
安装扩展的前提条件
想要安装扩展插件,您需要确保以下两项中任意一项成立
- 本地安装:您已经配置了 Pigsty 的本地软件源,并且扩展已经下载至至本地软件仓库。
- 在线安装:您已经在待安装的节点上直接配置上游互联网软件源,并且可以访问互联网。
通常来说,对于严肃的生产环境,您应该使用 Pigsty 的本地软件源来统一管理并安装扩展: 首先下载到本地软件仓库中,再从本地软件仓库中安装扩展。这样可以确保扩展的版本全局一致,并避免让数据库节点直接访问互联网。 但某些时候(例如在开发环境中为了方便)您也可以直接使用互联网上游软件源来安装扩展。
要使用本地安装,您首先需要确保目标扩展已经被 下载 到本地软件仓库中。 如果要使用在线安装,请确保待安装的节点可以访问互联网,并且上游软件源可以正常访问。 然后使用以下命令来直接在目标集群上添加仓库并安装扩展:
./node.yml -l <cls> -t node_repo -e node_repo_modules=local,node,pgsql # 在目标节点上启用互联网软件仓库
./pgsql.yml -l <cls> -t pg_extension # 使用本地+互联网上游仓库安装扩展
扩展名翻译机制
在 Pigsty 中,您可以在 pg_packages
和 pg_extensions
中使用:
- 原始的操作系统 RPM/DEB 包名,您可以在包名中使用
*
通配符。 - 带有
$v
占位符的包名,Pigsty 会自动使用pg_version
的值替换占位符。 - Pigsty 提供的 标准扩展包名 ,Pigsty 会自动根据活跃 PG 大版本与操作系统翻译为对应的 RPM/DEB 包名。
例如:
postgis35_15* # 直接指定 RPM 包名名称
postgresql-14-postgis-3* # 直接指定 DEB 包名称
postgresql-$v-postgis-3* # 指定 DEB 包名称,同时使用 PG 大版本号占位符 $v
postgis35_$v* # 指定 RPM 包名称,同时使用 PG 大版本号占位符 $v
postgis # 指定扩展包别名,自动翻译为 DEB/RPM 包名,与当前活跃 PG 大版本
我们建议使用 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.