管理PostgreSQL扩展
在 PostgreSQL, 扩展是提供额外函数、运算符或类型的模块。 IBM Cloud® Databases for PostgreSQL中提供了许多扩展。 要使用这些密码,请为服务 设置管理密码,并使用该密码来
连接 psql
。
列出已安装的扩展
使用 \dx
命令获取数据库上安装的所有扩展的列表。
例如,在 Databases for PostgreSQL 缺省数据库上运行时,\dx
的输出将显示唯一已安装的扩展。
ibmclouddb=> \dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 row)
安装扩展
要在数据库上安装扩展,请使用 CREATE EXTENSION
。 例如,要将 pg_stat_statements
添加到 ibmclouddb
数据库中,请使用以下命令:
ibmclouddb=> CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION
扩展将安装到只读 ibm_extension
模式中。 该模式是 search_path
的一部分,因此不需要使用模式来限定扩展对象。 要保护数据的安全性和完整性,必须将 public
模式更改为 ibm_extension
模式。
如果在安装扩展后运行 \dx
命令,那么它将显示在表中。
ibmclouddb=> \dx
List of installed extensions
Name | Version | Schema | Description
--------------------+---------+---------------+-----------------------------------------------------------
pg_stat_statements | 1.5 | ibm_extension | track execution statistics of all SQL statements executed
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 rows)
PostgreSQL 中的数据库扩展按数据库进行管理。 如果有多个数据库需要安装扩展,请对每个数据库运行 CREATE
命令。
升级扩展功能
如果有比您当前已安装的扩展更高版本的扩展可用,请使用 ALTER EXTENSION
对其进行升级。
扩展说明
pg_repack
-
运行
pg_repack
命令时,请输入 -k 标记,以绕过超级用户检查。 请参阅以下示例:pg_repack -k [OPTION]... [DBNAME]
-
要使
pg_repack
可靠地运行,您的部署应该在 PostgreSQL 9.6 及更高版本上。 -
任何用户都可以运行
pg_repack
,但该命令只能重新打包他们具有许可权的表。 -
pg_repack
需要对它在重组结束时重组的对象执行互斥锁定。 如果在特定时间段后无法获取此锁定,那么将取消所有冲突的查询。 如果无法执行此操作,那么 reorg 将失败。 缺省情况下,只有 PostgreSQL 9.6 和更高版本上的管理用户才能取消有冲突的查询。 要向其他数据库用户公开取消查询的能力,请授予pg_signal_backend
角色 从管理用户。
pgaudit
pgaudit
库已预载,无需执行。create extension pgaudit
有关更多信息,请参阅 使用 pgAudit 启用 pgaudit 日志。
pgvector
- 要在部署中添加
pgvector
扩展名,请使用create extension vector
命令。 - 重要:
pgvector
需要 PostgreSQL 15 或更高版本。
可用扩展
请查看以下所有可用扩展列表。 要获取部署上可用扩展的列表,请在 psql
中使用 SELECT name FROM pg_available_extensions;
。
ibmclouddb=> SELECT name FROM pg_available_extensions order by 1;
name
------------------------------
address_standardizer
address_standardizer_data_us
amcheck
autoinc
bloom
btree_gin
btree_gist
citext
cube
dblink
dict_int
dict_xsyn
earthdistance
file_fdw
fuzzystrmatch
hstore
insert_username
intagg
intarray
isn
lo
ltree
moddatetime
old_snapshot
pageinspect
pg_buffercache
pg_freespacemap
pg_prewarm
pg_repack
pg_stat_statements
pg_surgery
pg_trgm
pg_visibility
pg_walinspect
pgaudit
pgcrypto
pgrouting
pgrowlocks
pgstattuple
plpgsql
postgis
postgis_raster
postgis_tiger_geocoder
postgis_topology
postgres_fdw
refint
seg
sslinfo
tablefunc
tcn
tsm_system_rows
tsm_system_time
unaccent
uuid-ossp
xml2
(55 rows)
ibmclouddb=> select version();
version
----------------------------------------------------------------------------------------------------------
PostgreSQL 16.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-2), 64-bit
(1 row)