Condividi tramite


Usare le estensioni PostgreSQL nel server PostgreSQL abilitato per Azure Arc

PostgreSQL funziona in modo ottimale quando viene usato assieme alle estensioni.

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

Estensioni supportate

Le estensioni seguenti vengono distribuite per impostazione predefinita nei contenitori del server PostgreSQL abilitato per Azure Arc; alcune di esse sono estensioni contrib standard:

  • 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

Gli aggiornamenti di questo elenco verranno pubblicati non appena disponibili.

Abilitare le estensioni nel server PostgreSQL abilitato per Azure Arc

È possibile creare un server PostgreSQL abilitato per Azure Arc con una delle estensioni supportate abilitate passando un elenco delimitato da virgole di estensioni al parametro --extensions del comando create.

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

NOTA: le estensioni abilitate vengono aggiunte alla configurazione shared_preload_libraries. Prima di poter usare il database, è necessario installarvi le estensioni. Per installare una particolare estensione, è necessario eseguire il comando CREATE EXTENSION. Questo comando carica gli oggetti in pacchetto nel database.

Ad esempio, connettersi al database ed eseguire il comando PostgreSQL seguente per installare l'estensione pgaudit:

CREATE EXTENSION pgaudit;

Aggiornare le estensioni

È possibile aggiungere o rimuovere estensioni da un server PostgreSQL abilitato per Azure Arc esistente.

È possibile eseguire il comando describe dello strumento kubectl per ottenere l'elenco corrente delle estensioni abilitate:

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

Se le estensioni sono abilitate, l'output contiene una sezione simile alla seguente:

  config:
    postgreSqlExtensions: pgaudit,pg_partman

Verificare se l'estensione è installata dopo la connessione al database eseguendo il comando PostgreSQL seguente:

select * from pg_extension;

Abilitare le nuove estensioni aggiungendole all'elenco esistente o rimuovendole dall'elenco esistente. Passare l'elenco desiderato al comando update. Ad esempio, per aggiungere pgcrypto e rimuovere pg_partman dal server nell'esempio precedente:

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

Dopo aver aggiornato l'elenco delle estensioni consentite, connettersi al database e installare l'estensione appena aggiunta tramite il comando seguente:

CREATE EXTENSION pgcrypto;

Analogamente, per rimuovere un'estensione da un database esistente, eseguire il comando DROP EXTENSION:

DROP EXTENSION pg_partman;

Visualizzare l'elenco delle estensioni installate

Connettersi al database con lo strumento client preferito ed eseguire la query PostgreSQL standard:

select * from pg_extension;
  • Versione di valutazione. È possibile iniziare rapidamente a usare Azure Arc Jumpstart nel servizio Azure Kubernetes, in AWS Elastic Kubernetes Service (EKS), in Google Cloud Kubernetes Engine (GKE) o in una macchina virtuale di Azure.