Gerenciando extensões do PostgreSQL
No PostgreSQL, extensões são módulos que fornecem funções, operadores ou tipos adicionais. Há muitas extensões disponíveis no IBM Cloud® Databases for PostgreSQL. Para utilizá-las, configure a senha admin para o seu serviço e use-a para conectar com psql
.
Listando extensões instaladas
Obtenha uma lista de todas as extensões instaladas em um banco de dados usando o comando \dx
.
Por exemplo, a saída para \dx
quando executado no banco de dados padrão do Databases for PostgreSQL mostra a única extensão instalada.
ibmclouddb=> \dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 row)
Instalando extensões
Para instalar uma extensão em um banco de dados, use CREATE EXTENSION
. Por exemplo, para instalar o pg_stat_statements
no banco de dados ibmclouddb
, use o seguinte comando:
ibmclouddb=> CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION
Extensões são instaladas no esquema ibm_extension
somente leitura. O esquema faz parte dos search_path
so objetos de extensão não precisam ser qualificados com um esquema. A mudança de esquema public
para
esquema ibm_extension
é necessária para proteger a segurança e a integridade de seus dados.
Se você executar o comando \dx
depois de instalar uma extensão, ele aparecerá na tabela.
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)
As extensões do banco de dados no PostgreSQL são gerenciadas por banco de dados. Se você tiver vários bancos de dados nos quais precisa instalar uma extensão, execute o comando CREATE
em cada banco de dados.
Fazendo upgrade de extensões
Se houver uma versão de extensão mais nova disponível, use o ALTER EXTENSION
para fazer upgrade dela.
Notas específicas da extensão
pg_repack
-
Ao executar o comando
pg_repack
, passe o sinalizador -k para ignorar a verificação de superusuário. Consulte o seguinte exemplo:pg_repack -k [OPTION]... [DBNAME]
-
Para que o
pg_repack
seja executado de forma confiável, sua implementação deve estar no PostgreSQL 9.6 e mais recente. -
Qualquer usuário pode executar
pg_repack
, mas o comando só é capaz de reembalar uma tabela na qual tenha permissões. -
pg_repack
precisa ter um bloqueio exclusivo nos objetos que está reorganizando no término da reorganização. Se não conseguir obter esse bloqueio após um determinado período, ele cancelará todas as consultas em conflito. Se não for possível fazer isso, a reorganização falhará. Por padrão, apenas o usuário administrativo no PostgreSQL 9.6 e mais recente é capaz de cancelar consultas conflitantes. Para expor a capacidade de cancelar consultas a outros usuários de banco de dados, conceda a funçãopg_signal_backend
a partir do usuário admin.
pgaudit
pgaudit
as bibliotecas são pré-carregadas e não exigem a execução decreate extension pgaudit
. Para obter mais informações, consulte Registro com pgAudit para ativar os registros do pgaudit.
pgvetor
- Para adicionar a extensão
pgvector
à sua implantação, use o comandocreate extension vector
. - Importante: o site
pgvector
requer a versão 15 ou superior do PostgreSQL.
Extensões disponíveis
Consulte a lista a seguir de todas as extensões disponíveis. Para obter uma lista de extensões disponíveis em sua implementação, use SELECT name FROM pg_available_extensions;
no 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)