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 사용자만 충돌하는 조회를 취소할 수 있습니다. 다른 데이터베이스 사용자에게 쿼리 취소 기능을 노출하려면 pg_signal_backend 역할 관리자 사용자로부터 을 부여하세요.

pgaudit

  • pgaudit 라이브러리는 미리 로드되어 있으며 create extension pgaudit 을 실행할 필요가 없습니다. 자세한 내용은 pgAudit 로깅을 사용하여 pgaudit 로그를 활성화하는 방법을 참조하세요.

pgvector

  • 배포에 pgvector 확장자를 추가하려면 create extension vector 명령을 사용합니다.
  • PostgreSQL 중요: pgvector 버전 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)