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 top
ingesteld 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 none
stellenpg_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.
dblink en postgres_fdw
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 Verbindingsbeveiliging. 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.
Selecteer uw Azure Database for PostgreSQL-server.
Selecteer Serverparameters op de zijbalk.
Zoek de
shared_preload_libraries
parameter.Selecteer TimescaleDB.
Selecteer Opslaan om uw wijzigingen te behouden. U ontvangt een melding zodra de wijziging is opgeslagen.
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. Maak verbinding met 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
- Hulpprogramma's installeren zoals hier wordt beschreven
- Doelserver en -database voor Azure Database for PostgreSQL maken
- Timescale-extensie inschakelen zoals hierboven wordt weergegeven
- Verken azure_pg_admin rol aan de gebruiker die wordt gebruikt door ts-restore
- 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.