Compartilhar via


Usar extensões PostgreSQL no seu servidor PostgreSQL habilitado para Azure Arc

O PostgreSQL apresenta sua melhor performance quando usado com extensões.

[!INCLUDE [azure-arc-data-preview](./includes/azure-arc-data-preview.md]

Extensões com suporte

As seguintes extensões são implantadas por padrão nos contêineres do servidor PostgreSQL habilitado para Azure Arc. Algumas delas são extensões contrib padrão:

  • address_standardizer_data_us 3.3.1
  • adminpack 2.1
  • amcheck 1.3
  • autoinc 1
  • bloom 1
  • btree_gin 1.3
  • btree_gist 1.6
  • citext 1.6
  • cube 1.5
  • dblink 1.2
  • dict_int 1
  • dict_xsyn 1
  • earthdistance 1.1
  • file_fdw 1
  • fuzzystrmatch 1.1
  • hstore 1.8
  • hypopg 1.3.1
  • insert_username 1
  • intagg 1.1
  • intarray 1.5
  • isn 1.2
  • lo 1.1
  • ltree 1.2
  • moddatetime 1
  • old_snapshot 1
  • orafce 4
  • pageinspect 1.9
  • pg_buffercache 1.3
  • pg_cron 1.4-1
  • pg_freespacemap 1.2
  • pg_partman 4.7.1
  • pg_prewarm 1.2
  • pg_repack 1.4.8
  • pg_stat_statements 1.9
  • pg_surgery 1
  • pg_trgm 1.6
  • pg_visibility 1.2
  • pgaudit 1.7
  • pgcrypto 1.3
  • pglogical 2.4.2
  • pglogical_origin 1.0.0
  • pgrouting 3.4.1
  • pgrowlocks 1.2
  • pgstattuple 1.5
  • plpgsql 1
  • postgis 3.3.1
  • postgis_raster 3.3.1
  • postgis_tiger_geocoder 3.3.1
  • postgis_topology 3.3.1
  • postgres_fdw 1.1
  • refint 1
  • seg 1.4
  • sslinfo 1.2
  • tablefunc 1
  • tcn 1
  • timescaledb 2.8.1
  • tsm_system_rows 1
  • tsm_system_time 1
  • unaccent 1.1

As atualizações à essa lista serão lançadas à medida que ela evoluir ao longo do tempo.

Habilitar extensões no servidor PostgreSQL habilitado para Arc

Você pode criar um servidor PostgreSQL habilitado para Arc com qualquer uma das extensões com suporte habilitadas passando uma lista separada por vírgulas de extensões para o parâmetro --extensions do comando create.

az postgres server-arc create -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pg_partman" --use-k8s

OBSERVAÇÃO: as extensões habilitadas são adicionadas à configuração shared_preload_libraries. As extensões devem ser instaladas em seu banco de dados antes de você usá-lo. Para instalar uma extensão específica, execute o comando CREATE EXTENSION. Esse comando carrega os objetos empacotados em seu banco de dados.

Por exemplo, conecte-se ao banco de dados e emita o seguinte comando do PostgreSQL para instalar a extensão pgaudit:

CREATE EXTENSION pgaudit;

Atualizar extensões

Você pode adicionar ou remover extensões de um servidor PostgreSQL existente habilitado para Arc.

Você pode executar o comando kubectl describe para obter a lista atual de extensões habilitadas:

kubectl describe postgresqls <server-name> -n <namespace>

Se houver extensões habilitadas, a saída conterá uma seção como esta:

  config:
    postgreSqlExtensions: pgaudit,pg_partman

Verifique se a extensão está instalada depois de se conectar ao banco de dados executando o comando do PostgreSQL a seguir:

select * from pg_extension;

Habilite novas extensões acrescentando-as à lista existente ou remova as extensões removendo-as da lista existente. Passe a lista desejada para o comando de atualização. Por exemplo, para adicionar pgcrypto e remover pg_partman do servidor no exemplo acima:

az postgres server-arc update -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pgrypto" --use-k8s

Depois que a lista de extensões permitidas for atualizada. Conecte-se ao banco de dados e instale a extensão recém-adicionada com o comando a seguir:

CREATE EXTENSION pgcrypto;

Da mesma forma, para remover uma extensão de um banco de dados existente, emita o comando DROP EXTENSION:

DROP EXTENSION pg_partman;

Mostrar a lista de extensões instaladas

Conecte-se ao banco de dados com a ferramenta cliente de sua escolha e execute a consulta padrão do PostgreSQL:

select * from pg_extension;
  • Experimente. Introdução rápida com o artigo Começar a usar o Azure Arc rapidamente no AKS (Serviço de Kubernetes do Azure), no EKS (Elastic Kubernetes Service da AWS), no GKE (Google Cloud Kubernetes Engine) ou em uma VM do Azure.