加载扩展
Module:
安装 PostgreSQL 扩展后,您便可以在 PostgreSQL 的 pg_available_extensions
视图中看到它们。
除了纯 SQL 编写的扩展外,绝大多数扩展都会提供一个 .so
文件,这是一个动态连接库文件。
大部分扩展并不需要显式加载,只需要通过 CREATE EXTENSION
启用即可。
但一小部分扩展使用 PostgreSQL 的 Hook 机制,这些扩展必须通过 shared_preload_libraries
参数预先加载,并重启 PostgreSQL 后才能生效。
如果您在未加载/重启生效的情况下直接执行 CREATE EXTENSION
会报错。
在 Pigsty 中,您可以在集群的 pg_libs
参数中预先指定集群需要加载的扩展,或者在集群初始化后 修改集群配置。
需要加载的扩展
在 扩展列表 中,带有 LOAD
标记的扩展,即为需要动态加载并重启的扩展,包括:
扩展名 | 标准名 | 说明 |
---|---|---|
timescaledb |
timescaledb | 时序数据库扩展插件 |
pgml |
pgml | PostgresML:用SQL运行机器学习算法并训练模型 |
citus |
citus | Citus 分布式数据库 |
pg_squeeze |
pg_squeeze | 从关系中删除未使用空间 |
pgautofailover |
pgautofailover | PG 自动故障迁移 |
pg_prewarm |
pg_prewarm | 预热关系数据 |
pg_stat_kcache |
pg_stat_kcache | 内核统计信息收集 |
bgw_replstatus |
bgw_replstatus | 用于汇报本机主从状态的后台工作进程 |
auto_explain |
auto_explain | 提供一种自动记录执行计划的手段 |
pg_stat_statements |
pg_stat_statements | 跟踪所有执行的 SQL 语句的计划和执行统计信息 |
passwordcheck_cracklib |
passwordcheck | 使用cracklib加固PG用户密码 |
supautils |
supautils | 用于在云环境中确保数据库集群的安全 |
pg_tde |
pg_tde | 试点性质的加密存储引擎 |
pgaudit |
pgaudit | 提供审计功能 |
pg_snakeoil |
pg_snakeoil | PostgreSQL动态链接库反病毒功能 |
pgextwlist |
pgextwlist | PostgreSQL扩展白名单功能 |
sepgsql |
sepgsql | 基于SELinux标签的强制访问控制 |
auth_delay |
auth_delay | 在返回认证失败前暂停一会,避免爆破 |
passwordcheck |
passwordcheck | 用于强制拒绝修改弱密码的扩展 |
pg_statement_rollback |
pg_statement_rollback | 在服务端提供类似Oracle/DB2的语句级回滚能力 |
babelfishpg_tsql |
babelfishpg_tsql | SQL Server SQL语法兼容性扩展 |
加载顺序
在 shared_preload_libraries
中,如果有多个扩展插件需要加载,可以使用逗号分隔,例如:
'timescaledb, pg_stat_statements, auto_explain'
请注意,Citus 和 TimescaleDB 这两个扩展显式提出要求,要在 shared_preload_libraries
中预先加载,也就是放在最前面。
虽然同时使用 Citus 与 TimescaleDB 的情况非常罕见,但在这种情况中,建议将 citus
放在 timescaledb
之前。
Pigsty 默认会加载两个扩展:pg_stat_statements
与 auto_explain
,这两个扩展对于优化数据库性能非常实用,强烈建议安装。
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.