IBM Cloud Docs
Gestión de extensiones de PostgreSQL

Gestión de extensiones de PostgreSQL

En PostgreSQL, las extensiones son módulos que suministran tipos, operadores o funciones adicionales. Hay muchas extensiones disponibles en IBM Cloud® Databases for PostgreSQL. Para utilizarlos, establezca la contraseña de administrador para el servicio y utilícela para conectarse con psql.

Listado de extensiones instaladas

Obtenga una lista de todas las extensiones instaladas en una base de datos utilizando el mandato \dx.

Por ejemplo, la salida de \dx cuando se ejecuta en la base de datos predeterminada de Databases for PostgreSQL muestra la única extensión instalada.

ibmclouddb=> \dx
                 List of installed extensions
  Name   | Version |   Schema   |         Description
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

Instalación de extensiones

Para instalar una extensión en una base de datos utilice CREATE EXTENSION. Por ejemplo, para instalar pg_stat_statements en la base de datos ibmclouddb, utilice el siguiente comando:

ibmclouddb=> CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION

Las extensiones se instalan en el esquema ibm_extension de sólo lectura. El esquema forma parte de search_path, por lo que no es necesario que los objetos de extensión se califiquen con un esquema. El cambio del esquema public al esquema ibm_extension es necesario para proteger la seguridad y la integridad de los datos.

Si ejecuta el mandato \dx después de instalar una extensión, aparecerá en la tabla.

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)

Las extensiones de base de datos en PostgreSQL se gestionan para cada base de datos. Si tiene varias bases de datos en las que necesita instalar una extensión, ejecute el comando CREATE en cada base de datos.

Actualización de extensiones

Si hay disponible una versión más reciente de una extensión que la que tiene instalada actualmente, utilice ALTER EXTENSION para actualizarla.

Notas específicas de la extensión

pg_repack

  • La documentación de pg_repack

  • Cuando ejecute el comando pg_repack, introduzca el indicador -k para evitar la comprobación de superusuario. Consulte el ejemplo siguiente:

    pg_repack -k [OPTION]... [DBNAME]
    
  • Para que pg_repack se ejecute de forma fiable, el despliegue debe estar en PostgreSQL 9.6 y superior.

  • Cualquier usuario puede ejecutar pg_repack, pero el mandato solo podrá volver a empaquetar una tabla sobre la que tenga permisos.

  • pg_repack necesita tener un bloqueo exclusivo sobre los objetos que va a reorganizar al final de la reorganización. Si no puede obtener este bloqueo después de un determinado periodo, cancelará todas las consultas en conflicto. Si no puede hacerlo, la reorganización fallará. De forma predeterminada, únicamente el usuario administrador en PostgreSQL 9.6 y superior podrá cancelar consultas en conflicto. Para exponer la posibilidad de cancelar consultas a otros usuarios de base de datos, otorgue el pg_signal_backend rol desde el usuario administrador.

pgaudit

  • pgaudit están precargadas y no requieren la ejecución de create extension pgaudit. Para obtener más información, consulte Registro con pgAudit para activar los registros de pgaudit.

pgvector

  • Para añadir la extensión pgvector a su implantación, utilice el comando create extension vector.
  • Importante: pgvector requiere PostgreSQL versión 15 o superior.

Extensiones disponibles

Consulte la siguiente lista de todas las extensiones disponibles. Para obtener una lista de las extensiones disponibles en el despliegue, utilice SELECT name FROM pg_available_extensions; en 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)