管理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。 例如,要在 ibmclouddb 資料庫上安裝 pg_stat_statements,請使用下列指令:
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)