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
は、再編成の終了時に再編成されるオブジェクトの排他ロックを取得する必要があります。 特定の期間が経過した後にこのロックを取得できない場合、競合するすべての照会が取り消されます。 それができない場合、再編成は失敗します。 デフォルトでは、PostgreSQL 9.6 以上での admin ユーザーのみが、競合する照会を取り消すことができます。 他のデータベース・ユーザーに照会を取り消す機能を公開するには、 admin ユーザーからpg_signal_backend
役割を付与します。
pgaudit
pgaudit
ライブラリはプリロードされており、 を実行する必要はない。create extension pgaudit
詳細については、 pgAudit によるログ記録を 参照して、pgaudit ログを有効にしてください。
ページベクトル
- デプロイメントに
pgvector
拡張機能を追加するには、create extension vector
コマンドを使用します。 - 重要:
pgvector
には PostgreSQL バージョン15以上が必要です。
使用可能な拡張機能
利用可能な拡張機能の一覧は以下をご覧ください。 デプロイメントで使用可能な拡張機能のリストについては、SELECT name FROM pg_available_extensions;
で psql
を使用します。
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)