IBM Cloud Docs
PostgreSQL の拡張機能の管理

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 資料

  • 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)