PostgreSQL-extensies in Azure Database for PostgreSQL - individuele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

PostgreSQL biedt de mogelijkheid om de functionaliteit van uw database uit te breiden met behulp van extensies. Extensies bundelen meerdere SQL-objecten in één pakket dat met één opdracht kan worden geladen in of verwijderd uit uw database. Nadat de gegevens in de database zijn geladen, functioneren de extensies als ingebouwde functies.

PostgreSQL-extensies gebruiken

PostgreSQL-extensies moeten worden geïnstalleerd in uw database voordat u ze kunt gebruiken. Als u een bepaalde extensie wilt installeren, voert u de opdracht CREATE EXTENSION van het hulpprogramma psql uit om de verpakte objecten in uw database te laden.

Azure Database for PostgreSQL ondersteunt een subset van sleutelextensies, zoals hieronder wordt vermeld. Deze informatie is ook beschikbaar door uit te voeren SELECT * FROM pg_available_extensions;. Extensies buiten de vermelde extensies worden niet ondersteund. U kunt geen eigen extensie maken in Azure Database for PostgreSQL.

Postgres 11-extensies

De volgende extensies zijn beschikbaar in Azure Database for PostgreSQL-servers met Postgres versie 11.

Extensie Extensieversie Beschrijving
address_standardizer 2.5.1 Wordt gebruikt om een adres te parseren in samenstellende elementen.
address_standardizer_data_us 2.5.1 Voorbeeld van Een Standardizer US-gegevensset
btree_gin 1.3 ondersteuning voor het indexeren van algemene gegevenstypen in GIN
btree_gist 1.5 ondersteuning voor het indexeren van algemene gegevenstypen in GiST
citext 1.5 gegevenstype voor niet-hoofdlettergevoelige tekenreeksen
Kubus 1.4 gegevenstype voor multidimensionale kubussen
dblink 1.2 verbinding maken met andere PostgreSQL-databases vanuit een database
dict_int 1.0 tekstzoekwoordenlijstsjabloon voor gehele getallen
earthdistance 1.1 grote cirkelafstanden op het oppervlak van de aarde berekenen
fuzzystrmatch 1.1 overeenkomsten en afstand tussen tekenreeksen bepalen
Hstore 1.5 gegevenstype voor het opslaan van sets (sleutel- en waardeparen)
hypopg 1.1.2 Hypothetische indexen voor PostgreSQL
intarray 1.2 functies, operators en indexondersteuning voor 1D-matrices van gehele getallen
Isn 1.2 gegevenstypen voor internationale productnummeringsstandaarden
ltree 1.1 gegevenstype voor hiërarchische structuurachtige structuren
Orafce 3.7 Functies en operators die een subset van functies en pakketten van commerciële RDBMS emuleren
pgaudit 1.3.1 biedt controlefunctionaliteit
pgcrypto 1.3 cryptografische functies
pgrouting 2.6.2 pgRouting-extensie
pgrowlocks 1.2 informatie over het vergrendelen op rijniveau weergeven
pgungsuple 1.5 statistieken op tupleniveau weergeven
pg_buffercache 1.3 de gedeelde buffercache onderzoeken
pg_partman 4.0.0 Extensie voor het beheren van gepartitioneerde tabellen op tijd of id
pg_prewarm 1.2 relationele gegevens voorafwarmen
pg_stat_statements 1.6 uitvoeringsstatistieken bijhouden van alle SQL-instructies die zijn uitgevoerd
pg_trgm 1.4 vergelijking van tekst en index zoeken op basis van trigrammen
plpgsql 1.0 PL/pgSQL procedurele taal
plv8 2.3.11 Vertrouwde proceduretaal PL/JavaScript (v8)
Postgis 2.5.1 PostGIS geometrie, geografie en raster ruimtelijke typen en functies
postgis_sfcgal 2.5.1 PostGIS SFCGAL-functies
postgis_tiger_geocoder 2.5.1 PostGIS tiger geocoder en reverse geocoder
postgis_topology 2.5.1 Ruimtelijke typen en functies van PostGIS-topologie
postgres_fdw 1.0 foreign-data wrapper voor externe PostgreSQL-servers
tablefunc 1.0 functies waarmee hele tabellen worden bewerkt, inclusief kruistabel
timescaledb 1.7.4 Maakt schaalbare invoegingen en complexe query's mogelijk voor tijdreeksgegevens
Unaccent 1.1 woordenlijst voor zoeken in tekst waarmee accenten worden verwijderd
uuid-ossp 1.1 universally unique identifiers (UUID's) genereren

Postgres 10-extensies

De volgende extensies zijn beschikbaar in Azure Database for PostgreSQL-servers met Postgres versie 10.

Extensie Extensieversie Beschrijving
address_standardizer 2.5.1 Wordt gebruikt om een adres te parseren in samenstellende elementen.
address_standardizer_data_us 2.5.1 Voorbeeld van Een Standardizer US-gegevensset
btree_gin 1.3 ondersteuning voor het indexeren van algemene gegevenstypen in GIN
btree_gist 1.5 ondersteuning voor het indexeren van algemene gegevenstypen in GiST
chkpass 1.0 gegevenstype voor automatisch versleutelde wachtwoorden
citext 1.4 gegevenstype voor niet-hoofdlettergevoelige tekenreeksen
Kubus 1.2 gegevenstype voor multidimensionale kubussen
dblink 1.2 verbinding maken met andere PostgreSQL-databases vanuit een database
dict_int 1.0 tekstzoekwoordenlijstsjabloon voor gehele getallen
earthdistance 1.1 grote cirkelafstanden op het oppervlak van de aarde berekenen
fuzzystrmatch 1.1 overeenkomsten en afstand tussen tekenreeksen bepalen
Hstore 1.4 gegevenstype voor het opslaan van sets (sleutel- en waardeparen)
hypopg 1.1.1 Hypothetische indexen voor PostgreSQL
intarray 1.2 functies, operators en indexondersteuning voor 1D-matrices van gehele getallen
Isn 1.1 gegevenstypen voor internationale productnummeringsstandaarden
ltree 1.1 gegevenstype voor hiërarchische structuurachtige structuren
Orafce 3.7 Functies en operators die een subset van functies en pakketten van commerciële RDBMS emuleren
pgaudit 1.2 biedt controlefunctionaliteit
pgcrypto 1.3 cryptografische functies
pgrouting 2.5.2 pgRouting-extensie
pgrowlocks 1.2 informatie over het vergrendelen op rijniveau weergeven
pgungsuple 1.5 statistieken op tupleniveau weergeven
pg_buffercache 1.3 de gedeelde buffercache onderzoeken
pg_partman 2.6.3 Extensie voor het beheren van gepartitioneerde tabellen op tijd of id
pg_prewarm 1.1 relationele gegevens voorafwarmen
pg_stat_statements 1.6 uitvoeringsstatistieken bijhouden van alle SQL-instructies die zijn uitgevoerd
pg_trgm 1.3 vergelijking van tekst en index zoeken op basis van trigrammen
plpgsql 1.0 PL/pgSQL procedurele taal
plv8 2.1.0 Vertrouwde proceduretaal PL/JavaScript (v8)
Postgis 2.4.3 PostGIS geometrie, geografie en raster ruimtelijke typen en functies
postgis_sfcgal 2.4.3 PostGIS SFCGAL-functies
postgis_tiger_geocoder 2.4.3 PostGIS tiger geocoder en reverse geocoder
postgis_topology 2.4.3 Ruimtelijke typen en functies van PostGIS-topologie
postgres_fdw 1.0 foreign-data wrapper voor externe PostgreSQL-servers
tablefunc 1.0 functies waarmee hele tabellen worden bewerkt, inclusief kruistabel
timescaledb 1.7.4 Maakt schaalbare invoegingen en complexe query's mogelijk voor tijdreeksgegevens
Unaccent 1.1 woordenlijst voor zoeken in tekst waarmee accenten worden verwijderd
uuid-ossp 1.1 universally unique identifiers (UUID's) genereren

Postgres 9.6-extensies

De volgende extensies zijn beschikbaar in Azure Database for PostgreSQL-servers met Postgres versie 9.6.

Extensie Extensieversie Beschrijving
address_standardizer 2.3.2 Wordt gebruikt om een adres te parseren in samenstellende elementen.
address_standardizer_data_us 2.3.2 Voorbeeld van Een Standardizer US-gegevensset
btree_gin 1.0 ondersteuning voor het indexeren van algemene gegevenstypen in GIN
btree_gist 1.2 ondersteuning voor het indexeren van algemene gegevenstypen in GiST
chkpass 1.0 gegevenstype voor automatisch versleutelde wachtwoorden
citext 1.3 gegevenstype voor niet-hoofdlettergevoelige tekenreeksen
Kubus 1.2 gegevenstype voor multidimensionale kubussen
dblink 1.2 verbinding maken met andere PostgreSQL-databases vanuit een database
dict_int 1.0 tekstzoekwoordenlijstsjabloon voor gehele getallen
earthdistance 1.1 grote cirkelafstanden op het oppervlak van de aarde berekenen
fuzzystrmatch 1.1 overeenkomsten en afstand tussen tekenreeksen bepalen
Hstore 1.4 gegevenstype voor het opslaan van sets (sleutel- en waardeparen)
hypopg 1.1.1 Hypothetische indexen voor PostgreSQL
intarray 1.2 functies, operators en indexondersteuning voor 1D-matrices van gehele getallen
Isn 1.1 gegevenstypen voor internationale productnummeringsstandaarden
ltree 1.1 gegevenstype voor hiërarchische structuurachtige structuren
Orafce 3.7 Functies en operators die een subset van functies en pakketten van commerciële RDBMS emuleren
pgaudit 1.1.2 biedt controlefunctionaliteit
pgcrypto 1.3 cryptografische functies
pgrouting 2.3.2 pgRouting-extensie
pgrowlocks 1.2 informatie over het vergrendelen op rijniveau weergeven
pgungsuple 1.4 statistieken op tupleniveau weergeven
pg_buffercache 1.2 de gedeelde buffercache onderzoeken
pg_partman 2.6.3 Extensie voor het beheren van gepartitioneerde tabellen op tijd of id
pg_prewarm 1.1 relationele gegevens voorafwarmen
pg_stat_statements 1.4 uitvoeringsstatistieken bijhouden van alle SQL-instructies die zijn uitgevoerd
pg_trgm 1.3 vergelijking van tekst en index zoeken op basis van trigrammen
plpgsql 1.0 PL/pgSQL procedurele taal
plv8 2.1.0 Vertrouwde proceduretaal PL/JavaScript (v8)
Postgis 2.3.2 PostGIS geometrie, geografie en raster ruimtelijke typen en functies
postgis_sfcgal 2.3.2 PostGIS SFCGAL-functies
postgis_tiger_geocoder 2.3.2 PostGIS tiger geocoder en reverse geocoder
postgis_topology 2.3.2 Ruimtelijke typen en functies van PostGIS-topologie
postgres_fdw 1.0 foreign-data wrapper voor externe PostgreSQL-servers
tablefunc 1.0 functies waarmee hele tabellen worden bewerkt, inclusief kruistabel
timescaledb 1.7.4 Maakt schaalbare invoegingen en complexe query's mogelijk voor tijdreeksgegevens
Unaccent 1.1 woordenlijst voor zoeken in tekst waarmee accenten worden verwijderd
uuid-ossp 1.1 universally unique identifiers (UUID's) genereren

Postgres 9.5-extensies

Notitie

PostgreSQL versie 9.5 is buiten gebruik gesteld.

De volgende extensies zijn beschikbaar in Azure Database for PostgreSQL-servers met Postgres versie 9.5.

Extensie Extensieversie Beschrijving
address_standardizer 2.3.0 Wordt gebruikt om een adres te parseren in samenstellende elementen.
address_standardizer_data_us 2.3.0 Voorbeeld van Een Standardizer US-gegevensset
btree_gin 1.0 ondersteuning voor het indexeren van algemene gegevenstypen in GIN
btree_gist 1.1 ondersteuning voor het indexeren van algemene gegevenstypen in GiST
chkpass 1.0 gegevenstype voor automatisch versleutelde wachtwoorden
citext 1.1 gegevenstype voor niet-hoofdlettergevoelige tekenreeksen
Kubus 1.0 gegevenstype voor multidimensionale kubussen
dblink 1.1 verbinding maken met andere PostgreSQL-databases vanuit een database
dict_int 1.0 tekstzoekwoordenlijstsjabloon voor gehele getallen
earthdistance 1.0 grote cirkelafstanden op het oppervlak van de aarde berekenen
fuzzystrmatch 1.0 overeenkomsten en afstand tussen tekenreeksen bepalen
Hstore 1.3 gegevenstype voor het opslaan van sets (sleutel- en waardeparen)
hypopg 1.1.1 Hypothetische indexen voor PostgreSQL
intarray 1.0 functies, operators en indexondersteuning voor 1D-matrices van gehele getallen
Isn 1.0 gegevenstypen voor internationale productnummeringsstandaarden
ltree 1.0 gegevenstype voor hiërarchische structuurachtige structuren
Orafce 3.7 Functies en operators die een subset van functies en pakketten van commerciële RDBMS emuleren
pgaudit 1.0.7 biedt controlefunctionaliteit
pgcrypto 1.2 cryptografische functies
pgrouting 2.3.0 pgRouting-extensie
pgrowlocks 1.1 informatie over het vergrendelen op rijniveau weergeven
pgungsuple 1.3 statistieken op tupleniveau weergeven
pg_buffercache 1.1 de gedeelde buffercache onderzoeken
pg_partman 2.6.3 Extensie voor het beheren van gepartitioneerde tabellen op tijd of id
pg_prewarm 1.0 relationele gegevens voorafwarmen
pg_stat_statements 1.3 uitvoeringsstatistieken bijhouden van alle SQL-instructies die zijn uitgevoerd
pg_trgm 1.1 vergelijking van tekst en index zoeken op basis van trigrammen
plpgsql 1.0 PL/pgSQL procedurele taal
Postgis 2.3.0 PostGIS geometrie, geografie en raster ruimtelijke typen en functies
postgis_sfcgal 2.3.0 PostGIS SFCGAL-functies
postgis_tiger_geocoder 2.3.0 PostGIS tiger geocoder en reverse geocoder
postgis_topology 2.3.0 Ruimtelijke typen en functies van PostGIS-topologie
postgres_fdw 1.0 foreign-data wrapper voor externe PostgreSQL-servers
tablefunc 1.0 functies waarmee hele tabellen worden bewerkt, inclusief kruistabel
Unaccent 1.0 woordenlijst voor zoeken in tekst waarmee accenten worden verwijderd
uuid-ossp 1.0 universally unique identifiers (UUID's) genereren

pg_stat_statements

De pg_stat_statements-extensie wordt vooraf geladen op elke Azure Database for PostgreSQL-server om u een middel te bieden voor het bijhouden van uitvoeringsstatistieken van SQL-instructies. De instelling pg_stat_statements.track, waarmee wordt bepaald welke instructies worden geteld door de extensie, standaard topingesteld op , wat betekent dat alle instructies die rechtstreeks door clients worden uitgegeven, worden bijgehouden. De twee andere traceringsniveaus zijn none en all. Deze instelling kan worden geconfigureerd als een serverparameter via Azure Portal of de Azure CLI.

Er bestaat een verband tussen de informatie over query-uitvoering die pg_stat_statements biedt en de impact op de serverprestaties wanneer elke SQL-instructie wordt vastgelegd. Als u de pg_stat_statements-extensie niet actief gebruikt, raden we u aan deze optie in te nonestellenpg_stat_statements.track. Houd er rekening mee dat sommige bewakingsservices van derden afhankelijk kunnen zijn van pg_stat_statements om inzicht te geven in queryprestaties. Controleer daarom of dit het geval is voor u of niet.

met dblink en postgres_fdw kunt u verbinding maken tussen de ene PostgreSQL-server en een andere database op dezelfde server. De ontvangende server moet verbindingen van de verzendende server via de firewall toestaan. Wanneer u deze extensies gebruikt om verbinding te maken tussen Azure Database for PostgreSQL-servers, kunt u dit doen door 'Toegang tot Azure-services toestaan' in te stellen op AAN. Dit is ook nodig als u de extensies wilt gebruiken om terug te keren naar dezelfde server. De instelling Toegang tot Azure-services toestaan vindt u op de azure-portalpagina voor de Postgres-server onder Verbinding maken ion Security. Als u 'Toegang tot Azure-services toestaan' inschakelt, worden alle Azure-IP-adressen in de acceptatielijst geplaatst.

Notitie

Op dit moment worden uitgaande verbindingen van Azure Database for PostgreSQL via externe extensies voor gegevenswikkeling, zoals postgres_fdw, niet ondersteund, met uitzondering van verbindingen met andere Azure Database for PostgreSQL-servers in dezelfde Azure-regio.

uuid

Als u van plan bent om te gebruiken uuid_generate_v4() vanuit de uuid-ossp-extensie, kunt u overwegen om te vergelijken met gen_random_uuid() de pgcrypto-extensie voor prestatievoordelen.

pgAudit

De pgAudit-extensie biedt logboekregistratie voor sessie- en objectcontrole. Als u wilt weten hoe u deze extensie gebruikt in Azure Database for PostgreSQL, gaat u naar het artikel over controleconcepten.

pg_prewarm

De pg_prewarm-extensie laadt relationele gegevens in de cache. Het voorafwarmen van uw caches betekent dat uw query's betere reactietijden hebben bij hun eerste uitvoering na een herstart. In Postgres 10 en lager wordt het voorafwarmen handmatig uitgevoerd met behulp van de functie prewarm.

In Postgres 11 en hoger kunt u voorafwarmen zo configureren dat deze automatisch wordt uitgevoerd. U moet pg_prewarm opnemen in shared_preload_libraries de lijst met parameters en de server opnieuw starten om de wijziging toe te passen. Parameters kunnen worden ingesteld vanuit de Azure-portal, CLI, REST API of ARM-sjabloon.

TimescaleDB

TimescaleDB is een tijdreeksdatabase die is verpakt als een extensie voor PostgreSQL. TimescaleDB biedt tijdgeoriënteerde analytische functies, optimalisaties en schaalt Postgres voor tijdreeksworkloads.

Meer informatie over TimescaleDB, een gedeponeerd handelsmerk van Timescale, Inc.. Azure Database for PostgreSQL biedt de TimescaleDB Apache-2-editie.

TimescaleDB installeren

Als u TimescaleDB wilt installeren, moet u deze opnemen in de gedeelde preloadbibliotheken van de server. Voor een wijziging van de parameter van shared_preload_libraries Postgres moet de server opnieuw worden opgestart . U kunt parameters wijzigen met behulp van Azure Portal of de Azure CLI.

Azure Portal gebruiken:

  1. Selecteer uw Azure Database for PostgreSQL-server.

  2. Selecteer Serverparameters op de zijbalk.

  3. Zoek de shared_preload_libraries parameter.

  4. Selecteer TimescaleDB.

  5. Selecteer Opslaan om uw wijzigingen te behouden. U ontvangt een melding zodra de wijziging is opgeslagen.

  6. Start na de melding de server opnieuw op om deze wijzigingen toe te passen. Zie Een Azure Database for PostgreSQL-server opnieuw opstarten voor meer informatie over het opnieuw opstarten van een server.

U kunt Nu TimescaleDB inschakelen in uw Postgres-database. Verbinding maken aan de database en voer de volgende opdracht uit:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Tip

Als er een fout optreedt, controleert u of u de server opnieuw hebt opgestart nadat u shared_preload_libraries hebt opgeslagen.

U kunt nu een volledig nieuwe TimescaleDB-hypertabel maken of bestaande tijdreeksgegevens migreren in PostgreSQL.

Een tijdschaaldatabase herstellen met behulp van pg_dump en pg_restore

Als u een Timescale-database wilt herstellen met behulp van pg_dump en pg_restore, moet u twee helperprocedures uitvoeren in de doeldatabase: timescaledb_pre_restore() en timescaledb_post restore().

Bereid eerst de doeldatabase voor:

--create the new database where you'll perform the restore
CREATE DATABASE tutorial;
\c tutorial --connect to the database 
CREATE EXTENSION timescaledb;

SELECT timescaledb_pre_restore();

U kunt nu pg_dump uitvoeren op de oorspronkelijke database en vervolgens pg_restore uitvoeren. Voer na het herstellen de volgende opdracht uit in de herstelde database:

SELECT timescaledb_post_restore();

Zie de documentatie over tijdschaal voor tijdschaal voor meer informatie over de herstelmethode met timescale

Een Timescale-database herstellen met behulp van timescaledb-backup

Tijdens het uitvoeren SELECT timescaledb_post_restore() van de bovenstaande procedure kunnen machtigingen worden geweigerd bij het bijwerken van de vlag timescaledb.restore. Dit komt door beperkte ALTER DATABASE-machtigingen in Cloud PaaS-databaseservices. In dit geval kunt u een alternatieve methode uitvoeren met behulp van het timescaledb-backup hulpprogramma voor het maken van back-ups en het herstellen van tijdschaaldatabases. Timescaledb-backup is een programma voor het dumpen en herstellen van een TimescaleDB-database eenvoudiger, minder foutgevoelig en beter presterend. Hiervoor moet u het volgende doen

  1. Hulpprogramma's installeren zoals hier wordt beschreven
  2. Doelserver en -database voor Azure Database for PostgreSQL maken
  3. Timescale-extensie inschakelen zoals hierboven wordt weergegeven
  4. Verken azure_pg_admin rol aan de gebruiker die wordt gebruikt door ts-restore
  5. TS-herstel uitvoeren om de database te herstellen

Meer informatie over deze hulpprogramma's vindt u hier.

Notitie

Wanneer u timescale-backup hulpprogramma's gebruikt om naar Azure te herstellen, is dat omdat databasegebruikersnamen voor niet-flexibele Azure Database for PostgresQL de <user@db-name> indeling moeten gebruiken, moet u vervangen door @%40 tekencodering.

Volgende stappen

Als u geen extensie ziet die u wilt gebruiken, laat het ons dan weten. Stem op bestaande aanvragen of maak nieuwe feedbackaanvragen in ons feedbackforum.