Share via


PostgreSQL-extensies in Azure Database for PostgreSQL - Flexibele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Flexibele Azure Database for PostgreSQL-server biedt de mogelijkheid om de functionaliteit van uw database uit te breiden met behulp van extensies. Extensies bundelen meerdere gerelateerde SQL-objecten in één pakket dat kan worden geladen of verwijderd uit uw database met een opdracht. Nadat de extensie in de database is geladen, werken extensies zoals ingebouwde functies.

PostgreSQL-extensies gebruiken

Voordat u extensies installeert in een flexibele Azure Database for PostgreSQL-server, moet u deze extensies toestaan voor gebruik.

Azure Portal gebruiken:

  1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
  2. Selecteer Serverparameters op de zijbalk.
  3. Zoek de azure.extensions parameter.
  4. Selecteer extensies die u wilt toestaan. Schermopname van flexibele Azure Database for PostgreSQL-server- uitbreidingen voor installatie.

Azure CLI gebruiken:

U kunt extensies in de lijst toestaan via de opdracht CLI-parameterset.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value <extension name>,<extension name>

Arm-sjabloon gebruiken: voorbeeld hieronder weergegeven dblink-extensies dblink, dict_xsyn, pg_buffercache op de server mypostgreserver

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "flexibleServers_name": {
            "defaultValue": "mypostgreserver",
            "type": "String"
        },
        "azure_extensions_set_value": {
            "defaultValue": " dblink,dict_xsyn,pg_buffercache",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations",
            "apiVersion": "2021-06-01",
            "name": "[concat(parameters('flexibleServers_name'), '/azure.extensions')]",
            "properties": {
                "value": "[parameters('azure_extensions_set_value')]",
                "source": "user-override"
            }
        }
    ]
}

shared_preload_libraries is een serverconfiguratieparameter die bepaalt welke bibliotheken moeten worden geladen wanneer de flexibele Server van Azure Database for PostgreSQL wordt gestart. Bibliotheken die gebruikmaken van gedeeld geheugen, moeten worden geladen via deze parameter. Als uw extensie moet worden toegevoegd aan gedeelde preloadbibliotheken, kunt u deze actie uitvoeren:

Azure Portal gebruiken:

  1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
  2. Selecteer Serverparameters op de zijbalk.
  3. Zoek de shared_preload_libraries parameter.
  4. Selecteer extensies die u wilt toevoegen. Schermopname van de parameterinstelling gedeelde preloadbibliotheken in Azure Database for PostgreSQL voor de installatie van extensies.

Azure CLI gebruiken:

U kunt instellen shared_preload_libraries via de opdracht cli-parameterset.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name shared_preload_libraries --value <extension name>,<extension name>

Nadat extensies zijn toegestaan en geladen, moeten deze worden geïnstalleerd in uw database voordat u ze kunt gebruiken. Als u een bepaalde extensie wilt installeren, moet u de opdracht CREATE EXTENSION uitvoeren. Met deze opdracht worden de verpakte objecten in uw database geladen.

Notitie

Extensies van derden die worden aangeboden in flexibele Azure Database for PostgreSQL-server, zijn open source gelicentieerde code. Op dit moment bieden we geen extensies of uitbreidingsversies van derden aan met premium- of eigen licentiemodellen.

Het flexibele serverexemplaren van Azure Database for PostgreSQL ondersteunt een subset van belangrijke PostgreSQL-extensies, zoals hieronder wordt vermeld. Deze informatie is ook beschikbaar door uit te voeren SHOW azure.extensions;. Extensies die niet in dit document worden vermeld, worden niet ondersteund op flexibele Azure Database for PostgreSQL-server. U kunt uw eigen extensie niet maken of laden in azure Database for PostgreSQL flexibele server.

Extensieversies

De volgende extensies zijn beschikbaar in azure Database for PostgreSQL flexibele server:

Notitie

Voor extensies in de volgende tabel met de ✔️ markering moeten de bijbehorende bibliotheken zijn ingeschakeld in de shared_preload_libraries serverparameter.

Extensienaam Beschrijving PostgreSQL 16 PostgreSQL 15 PostgreSQL 14 PostgreSQL 13 PostgreSQL 12 PostgreSQL 11
address_standardizer Wordt gebruikt om een adres te parseren in samenstellende elementen. Over het algemeen gebruikt ter ondersteuning van geocoderingsadresnormalisatiestap. 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
address_standardizer_data_us Voorbeeld van Een Standardizer US-gegevensset 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
amcheck Functies voor het verifiëren van relationele integriteit 1.3 1.3 1.3 1.2 1.2 1.1
azure_ai Integratie van Azure AI en ML Services voor PostgreSQL 1.0.0 1.1.0 1.0.0 1.0.0 1.0.0 N.v.t.
azure_storage Azure-integratie voor PostgreSQL 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ N.v.t.
Bloom Bloom-toegangsmethode - index op basis van handtekeningbestand 1.0 1.0 1.0 1.0 1.0 1.0
btree_gin Ondersteuning voor het indexeren van algemene gegevenstypen in GIN 1.3 1.3 1.3 1.3 1.3 1.3
btree_gist Ondersteuning voor het indexeren van algemene gegevenstypen in GiST 1,7 1,7 1.6 1.5 1.5 1.5
citext Gegevenstype voor hoofdlettergevoelige tekenreeksen 1.6 1.6 1.6 1.6 1.6 1.5
Kubus Gegevenstype voor multidimensionale kubussen 1.5 1.5 1.5 1.4 1.4 1.4
dblink Verbinding maken naar andere PostgreSQL-databases vanuit een database 1.2 1.2 1.2 1.2 1.2 1.2
dict_int Tekstzoekwoordenlijstsjabloon voor gehele getallen 1.0 1.0 1.0 1.0 1.0 1.0
dict_xsyn Tekstzoekwoordenlijstsjabloon voor uitgebreide synoniemenverwerking 1.0 1.0 1.0 1.0 1.0 1.0
earthdistance Grote cirkelafstanden op het oppervlak van de aarde berekenen 1.1 1.1 1.1 1.1 1.1 1.1
fuzzystrmatch Overeenkomsten en afstand tussen tekenreeksen bepalen 1.2 1.1 1.1 1.1 1.1 1.1
Hstore Gegevenstype voor het opslaan van sets (sleutel- en waardeparen) 1.8 1.8 1.8 1,7 1.6 1.5
hypopg Hypothetische indexen voor PostgreSQL 1.4.0 1.4.0 1.4.0 1.4.0 1.4.0 1.4.0
intagg Integeraggregator en enumerator (verouderd) 1.1 1.1 1.1 1.1 1.1 1.1
intarray Functies, operators en indexondersteuning voor 1D-matrices met gehele getallen 1.5 1.5 1.5 1.3 1.2 1.2
Isn Gegevenstypen voor internationale productnummeringsstandaarden 1.2 1.2 1.2 1.2 1.2 1.2
Lo Onderhoud van groot object 1.1 1.1 1.1 1.1 1.1 1.1
login_hook Login_hook - hook to execute login_hook.login() at login time 1.5 1.4 1.4 1.4 1.4 1.4
ltree Gegevenstype voor hiërarchische structuurachtige structuren 1.2 1.2 1.2 1.2 1.1 1.1
Orafce Functies en operators die een subset van functies en pakketten uit oracle RDBMS emuleren 4.4 3.24 3,18 3,18 3,18 3.7
pageinspect De inhoud van databasepagina's op laag niveau controleren 1.12 1.11 1,9 1.8 1,7 1,7
pgaudit Biedt controlefunctionaliteit 16.0 ✔️ 1,7 ✔️ 1.6.2 ✔️ 1,5 ✔️ 1.4 ✔️ 1.3.2 ✔️
pg_buffercache De gedeelde buffercache onderzoeken 1.4 1.3 1.3 1.3 1.3 1.3
pg_cron Job scheduler voor PostgreSQL 1,5 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️
pgcrypto Cryptografische functies 1.3 1.3 1.3 1.3 1.3 1.3
pg_failover_slots (preview) Beheer van logische replicatiesite voor failoverdoeleinden 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️
pg_freespacemap Bekijk de vrije ruimtekaart (FSM) 1.2 1.2 1.2 1.2 1.2 1.2
pg_hint_plan Hiermee kunt u PostgreSQL-uitvoeringsplannen aanpassen met behulp van zogenaamde hints in SQL-opmerkingen. 1.6.0 ✔️ 1,5 ✔️ 1.4 ✔️ 1.3.7 ✔️ 1.3.7 ✔️ 1.3.7 ✔️
pglogical Logische replicatie van PostgreSQL 2.4.4 ✔️ 2.4.2 ✔️ 2.4.1 ✔️ 2.4.1 ✔️ 2.4.1 ✔️ 2.4.1 ✔️
pg_partman Extensie voor het beheren van gepartitioneerde tabellen op tijd of id 4.7.1 ✔️ 4.7.1 ✔️ 4.6.1 ✔️ 4.5.0 ✔️ 4.5.0 ✔️ 4.5.0 ✔️
pg_prewarm Relationele gegevens voorafwarmen 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️
pg_repack Tabellen in PostgreSQL-databases opnieuw ordenen met minimale vergrendelingen 1.4.7 1.4.7 1.4.7 1.4.7 1.4.7 1.4.7
pgrouting PgRouting-extensie N.v.t. 3.5.0 3.3.0 3.3.0 3.3.0 3.3.0
pgrowlocks Informatie over het vergrendelen op rijniveau weergeven 1.2 1.2 1.2 1.2 1.2 1.2
pg_squeeze Een hulpprogramma voor het verwijderen van ongebruikte ruimte uit een relatie. 1.6 ✔️ 1.6 ✔️ 1,5 ✔️ 1,5 ✔️ 1,5 ✔️ 1,5 ✔️
pg_stat_statements Plannings- en uitvoeringsstatistieken bijhouden van alle SQL-instructies die zijn uitgevoerd 1.10 ✔️ 1.10 ✔️ 1,9 ✔️ 1.8 ✔️ 1,7 ✔️ 1.6 ✔️
pgungsuple Statistieken op tupleniveau weergeven 1.5 1.5 1.5 1.5 1.5 1.5
pg_trgm Vergelijking van tekst en index zoeken op basis van trigrammen 1.6 1.6 1.6 1.5 1.4 1.4
pg_visibility De zichtbaarheidskaart (VM) en zichtbaarheidsgegevens op paginaniveau bekijken 1.2 1.2 1.2 1.2 1.2 1.2
plpgsql PL/pgSQL procedurele taal 1.0 1.0 1.0 1.0 1.0 1.0
plv8 Vertrouwde proceduretaal PL/JavaScript (v8) 3.1.7 3.1.7 3.0.0 3.0.0 3.0.0 3.0.0
Postgis PostGIS geometrie en geografie ruimtelijke typen en functies 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_raster PostGIS-rastertypen en -functies 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_sfcgal PostGIS SFCGAL-functies 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_tiger_geocoder PostGIS tiger geocoder en reverse geocoder 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_topology Ruimtelijke typen en functies van PostGIS-topologie 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgres_fdw Wrapper voor externe PostgreSQL-servers 1.1 1.1 1.1 1.0 1.0 1.0
semver Gegevenstype Semantische versie 0.32.1 0.32.0 0.32.0 0.32.0 0.32.0 0.32.0
session_variable Session_variable - registratie en manipulatie van sessievariabelen en constanten 3.3 3.3 3.3 3.3 3.3 3.3
sslinfo Informatie over SSL-certificaten 1.2 1.2 1.2 1.2 1.2 1.2
tablefunc Functies waarmee hele tabellen worden bewerkt, inclusief kruistabel 1.0 1.0 1.0 1.0 1.0 1.0
tds_fdw Externe gegevenswikkelaar voor het uitvoeren van query's op een TDS-database (Sybase of Microsoft SQL Server) 2.0.3 2.0.3 2.0.3 2.0.3 2.0.3 2.0.3
timescaledb Maakt schaalbare invoegingen en complexe query's mogelijk voor tijdreeksgegevens 2.13.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 1.7.4 ✔️
tsm_system_rows DE METHODE TABLESAMPLE die het aantal rijen als limiet accepteert 1.0 1.0 1.0 1.0 1.0 1.0
tsm_system_time DE METHODE TABLESAMPLE die tijd in milliseconden accepteert als een limiet 1.0 1.0 1.0 1.0 1.0 1.0
Unaccent Woordenlijst voor zoeken in tekst waarmee accenten worden verwijderd 1.1 1.1 1.1 1.1 1.1 1.1
uuid-ossp Universally Unique Identifiers (UUID's) genereren 1.1 1.1 1.1 1.1 1.1 1.1
Vector Vectorgegevenstype en ivfflat- en hnsw-toegangsmethoden 0.6.1 0.6.1 0.6.1 0.6.1 0.6.1 0.5.1

PostgreSQL-extensies upgraden

In-place upgrades van database-extensies zijn toegestaan via een eenvoudige opdracht. Met deze functie kunnen klanten hun extensies van derden automatisch bijwerken naar de nieuwste versies, waardoor de huidige en veilige systemen zonder handmatige inspanningen worden onderhouden.

Extensies bijwerken

Als u een geïnstalleerde extensie wilt bijwerken naar de nieuwste beschikbare versie die wordt ondersteund door Azure, gebruikt u de volgende SQL-opdracht:

ALTER EXTENSION <extension-name> UPDATE;

Deze opdracht vereenvoudigt het beheer van database-extensies doordat gebruikers handmatig kunnen upgraden naar de nieuwste versie die door Azure is goedgekeurd, waardoor compatibiliteit en beveiliging worden verbeterd.

Beperkingen

Hoewel het bijwerken van extensies eenvoudig is, zijn er bepaalde beperkingen:

  • Specifieke versieselectie: de opdracht biedt geen ondersteuning voor het bijwerken naar tussenliggende versies van een extensie. Deze wordt altijd bijgewerkt naar de nieuwste beschikbare versie.
  • Downgraden: biedt geen ondersteuning voor het downgraden van een extensie naar een eerdere versie. Als een downgrade nodig is, is er mogelijk ondersteuning nodig en is dit afhankelijk van de beschikbaarheid van de vorige versie.

Geïnstalleerde extensies weergeven

Gebruik de volgende SQL-opdracht om de extensies weer te geven die momenteel in uw database zijn geïnstalleerd:

SELECT * FROM pg_extension;

Beschikbare uitbreidingsversies

Als u wilt controleren welke versies van een extensie beschikbaar zijn voor de huidige database-installatie, voert u het volgende uit:

SELECT * FROM pg_available_extensions WHERE name = 'azure_ai';

Deze opdrachten bieden noodzakelijke inzichten in de extensieconfiguraties van uw database, waardoor uw systemen efficiënt en veilig kunnen worden onderhouden. Door eenvoudige updates naar de nieuwste extensieversies mogelijk te maken, blijft Azure Database for PostgreSQL ondersteuning bieden voor het robuuste, veilige en efficiënte beheer van uw databasetoepassingen.

met dblink en postgres_fdw kunt u verbinding maken tussen de ene flexibele serverinstantie van Azure Database for PostgreSQL en een andere database op dezelfde server. Flexibele Azure Database for PostgreSQL-server ondersteunt zowel binnenkomende als uitgaande verbindingen met elke PostgreSQL-server. De verzendende server moet uitgaande verbindingen met de ontvangende server toestaan. Op dezelfde manier moet de ontvangende server verbindingen van de verzendende server toestaan.

U wordt aangeraden uw servers te implementeren met integratie van virtuele netwerken als u van plan bent deze twee extensies te gebruiken. Integratie van virtuele netwerken staat standaard verbindingen toe tussen servers in het virtuele netwerk. U kunt er ook voor kiezen om netwerkbeveiligingsgroepen voor virtuele netwerken te gebruiken om de toegang aan te passen.

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. De functionaliteit voor automatisch voorafwarmen is momenteel niet beschikbaar in de flexibele server van Azure Database for PostgreSQL.

pg_cron

pg_cron is een eenvoudige op cron gebaseerde taakplanner voor PostgreSQL die als extensie in de database wordt uitgevoerd. De pg_cron extensie kan worden gebruikt voor het uitvoeren van geplande onderhoudstaken in een PostgreSQL-database. U kunt bijvoorbeeld periodiek vacuüm van een tabel uitvoeren of oude gegevenstaken verwijderen.

pg_cron kan meerdere taken parallel uitvoeren, maar het wordt maximaal één exemplaar van een taak tegelijk uitgevoerd. Als een tweede uitvoering moet beginnen voordat de eerste is voltooid, wordt de tweede uitvoering in de wachtrij geplaatst en gestart zodra de eerste uitvoering is voltooid. Dit zorgt ervoor dat taken precies zo vaak worden uitgevoerd als gepland en niet gelijktijdig met zichzelf worden uitgevoerd.

Een aantal voorbeelden:

Oude gegevens op zaterdag om 3:30 uur (GMT) verwijderen.

SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);

Om elke dag om 10:00 uur (GMT) vacuüm uit te voeren in de standaarddatabase postgres.

SELECT cron.schedule('0 10 * * *', 'VACUUM');

Als u alle taken van pg_cron.

SELECT cron.unschedule(jobid) FROM cron.job;

Als u alle taken wilt zien die momenteel zijn gepland met pg_cron.

SELECT * FROM cron.job;

Om elke dag om 10:00 uur (GMT) vacuüm uit te voeren in database 'testcron' onder azure_pg_admin rolaccount.

SELECT cron.schedule_in_database('VACUUM','0 10 * * * ','VACUUM','testcron',null,TRUE);

Notitie

pg_cron extensie wordt vooraf geladen shared_preload_libraries voor elk exemplaar van een flexibele Azure Database for PostgreSQL-server in postgres-database, zodat u taken kunt plannen die moeten worden uitgevoerd in andere databases in uw flexibele Azure Database for PostgreSQL-serverdatabaseexemplaren zonder dat dit de beveiliging in gevaar heeft. Om veiligheidsredenen moet u echter nog steeds de lijstextensiepg_cron toestaan en installeren met de opdracht CREATE EXTENSION .

pg_cron Vanaf versie 1.4 kunt u de cron.schedule_in_database en cron.alter_job functies gebruiken om uw taak in een specifieke database te plannen en een bestaande planning bij te werken.

Een aantal voorbeelden:

Oude gegevens verwijderen op zaterdag om 3:30 uur (GMT) op database DBName.

SELECT cron.schedule_in_database('JobName', '30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$,'DBName');

Notitie

cron_schedule_in_database met de functie kan de gebruikersnaam als optionele parameter worden gebruikt. Voor het instellen van de gebruikersnaam op een niet-null-waarde zijn postgreSQL-superuserbevoegdheden vereist en wordt deze niet ondersteund in de flexibele Server van Azure Database for PostgreSQL. In voorgaande voorbeelden ziet u hoe u deze functie uitvoert met een optionele parameter voor de gebruikersnaam die wordt weggelaten of ingesteld op null, waarmee de taak wordt uitgevoerd in de context van het plannen van de taak. Deze moet azure_pg_admin rolbevoegdheden hebben.

De databasenaam voor bestaande schema bijwerken of wijzigen

SELECT cron.alter_job(job_id:=MyJobID,database:='NewDBName');

pg_failover_slots (preview)

De extensie PG-failoversites verbetert de flexibele Server van Azure Database for PostgreSQL wanneer deze werkt met zowel logische replicatie als servers met hoge beschikbaarheid. Het lost effectief de uitdaging op binnen de standaard PostgreSQL-engine die na een failover geen logische replicatiesites behoudt. Het onderhouden van deze sites is essentieel om te voorkomen dat replicatie wordt onderbroken of gegevens niet overeenkomen tijdens wijzigingen in de primaire serverfunctie, waardoor operationele continuïteit en gegevensintegriteit worden gewaarborgd.

De extensie stroomlijnt het failoverproces door de benodigde overdracht, opschoning en synchronisatie van replicatiesites te beheren, waardoor een naadloze overgang wordt geboden tijdens wijzigingen in de serverfunctie. De extensie wordt ondersteund voor PostgreSQL-versies 11 tot en met 16.

U vindt meer informatie en hoe u de extensie PG-failoversites kunt gebruiken op de GitHub-pagina.

Pg_failover_slots inschakelen

Als u de extensie PG-failoversites wilt inschakelen voor uw flexibele Azure Database for PostgreSQL-serverexemplaren, moet u de configuratie van de server wijzigen door de extensie op te slaan in de gedeelde bibliotheken voor vooraf laden van de server en een specifieke serverparameter aan te passen. Dit is het proces:

  1. Voeg deze pg_failover_slots toe aan de gedeelde bibliotheken voor vooraf laden van de server door de shared_preload_libraries parameter bij te werken.
  2. Wijzig de serverparameter hot_standby_feedback in on.

Voor wijzigingen in de shared_preload_libraries parameter moet de server opnieuw worden opgestart.

Volg deze stappen in Azure Portal:

  1. Meld u aan bij Azure Portal en ga naar de pagina van uw azure Database for PostgreSQL Flexibele serverexemplaren.
  2. Selecteer serverparameters in het menu aan de linkerkant.
  3. Zoek de parameter in de lijst en bewerk de shared_preload_libraries bijbehorende waarde om op te nemen pg_failover_slots.
  4. Zoek de parameter en stel de hot_standby_feedback waarde in op on.
  5. Selecteer Opslaan om uw wijzigingen te behouden. Nu hebt u de mogelijkheid om opslaan en opnieuw op te starten. Kies deze optie om ervoor te zorgen dat de wijzigingen van kracht worden sinds het wijzigen shared_preload_libraries een server opnieuw moet worden opgestart.

Als u Opslaan en opnieuw opstarten selecteert , wordt uw server automatisch opnieuw opgestart, waarbij de wijzigingen worden toegepast die u hebt aangebracht. Zodra de server weer online is, is de extensie PG-failoversites ingeschakeld en operationeel op uw primaire exemplaar van de flexibele Azure Database for PostgreSQL-server, klaar voor het afhandelen van logische replicatiesites tijdens failovers.

pg_stat_statements

De pg_stat_statements-extensie geeft u een overzicht van alle query's die in uw database zijn uitgevoerd. Dit is handig om inzicht te krijgen in de prestaties van uw queryworkloads in een productiesysteem.

De pg_stat_statements-extensie wordt vooraf geladen op shared_preload_libraries elk flexibele Azure Database for PostgreSQL-serverexemplaren om u een middel te bieden voor het bijhouden van uitvoeringsstatistieken van SQL-instructies. Om veiligheidsredenen moet u de extensie echter nog steeds toestaanpg_stat_statements extensie en installeren met de opdracht CREATE EXTENSION . 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.

Er bestaat een verband tussen de informatie over de 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. Sommige bewakingsservices van derden kunnen afhankelijk zijn van pg_stat_statements het leveren van inzichten in queryprestaties, dus controleer of dit het geval is voor u of niet.

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 geregistreerd handelsmerk van Timescale, Inc. Azure Database for PostgreSQL flexibele server biedt de TimescaleDB Apache-2-editie.

TimescaleDB installeren

Als u TimescaleDB wilt installeren, moet u deze ook opnemen in de gedeelde preloadbibliotheken van de server om deze toe te staan, zoals hierboven wordt weergegeven. 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 flexibele Azure Database for PostgreSQL-serverexemplaren.

  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.

U kunt nu TimescaleDB inschakelen in uw flexibele Azure Database for PostgreSQL-serverdatabase. 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 Timescale-database 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 Timescale voor meer informatie over de herstelmethode met de database met Timescale.

Een Timescale-database herstellen met timescaledb-backup

Tijdens het uitvoeren SELECT timescaledb_post_restore() van de bovenstaande procedure krijgt u mogelijk geweigerde machtigingen 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 om een back-up te maken van de timescale-database en deze te herstellen. 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. Een doelexemplaren en -database van Azure Database for PostgreSQL flexibele server maken
  3. Timescale-extensie inschakelen zoals hierboven wordt weergegeven
  4. Rol azure_pg_admin verlenen aan 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 te herstellen naar Azure, omdat databasegebruikersnamen voor Azure Database for PostgreSQL enkele server de <user@db-name> indeling moeten gebruiken, moet u vervangen door @%40 tekencodering.

pg_hint_plan

pg_hint_plan maakt het mogelijk postgreSQL-uitvoeringsplannen aan te passen met behulp van zogenaamde 'hints' in SQL-opmerkingen, zoals:

/*+ SeqScan(a) */

pg_hint_plan leest hints in een opmerking van speciale vorm die wordt gegeven met de SQL-doelinstructie. Het speciale formulier begint met de tekenreeks "/*+" en eindigt op "*/". Hintzinnen bestaan uit hintnaam en de volgende parameters tussen haakjes en gescheiden door spaties. Nieuwe regels voor leesbaarheid kunnen elke hintterm scheiden.

Voorbeeld:

  /*+
      HashJoin(a b)
      SeqScan(a)
    */
    SELECT *
      FROM pgbench_branches b
      JOIN pgbench_accounts an ON b.bid = a.bid
     ORDER BY a.aid;

Het bovenstaande voorbeeld zorgt ervoor dat de planner de resultaten van een seq scan tabel a gebruikt om als een hash jointabel b te combineren.

Als u pg_hint_plan wilt installeren, moet u deze bovendien opnemen in de gedeelde preloadbibliotheken van de server, zoals hierboven wordt weergegeven. 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 flexibele Azure Database for PostgreSQL-serverexemplaren.

  2. Selecteer Serverparameters op de zijbalk.

  3. Zoek de shared_preload_libraries parameter.

  4. Selecteer pg_hint_plan.

  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.

U kunt nu pg_hint_plan uw flexibele Azure Database for PostgreSQL-serverdatabase inschakelen. Verbinding maken aan de database en voer de volgende opdracht uit:

CREATE EXTENSION pg_hint_plan;

pg_buffercache

Pg_buffercache kan worden gebruikt om de inhoud van shared_buffers te bestuderen. Met deze extensie kunt u zien of een bepaalde relatie in de cache is opgeslagen of niet (in shared_buffers). Deze extensie kan u helpen bij het oplossen van prestatieproblemen (prestatieproblemen in de cache).

Dit maakt deel uit van contrib en het is eenvoudig om deze extensie te installeren.

CREATE EXTENSION pg_buffercache;

Extensies en upgrade van primaire versie

Azure Database for PostgreSQL Flexibele server heeft met slechts één klik een in-place functie voor het upgraden van primaire versies geïntroduceerd die een in-place upgrade uitvoert van het flexibele azure Database for PostgreSQL-serverexemplaren. In-place primaire versie-upgrade vereenvoudigt het upgradeproces voor flexibele Azure Database for PostgreSQL-servers, waardoor de onderbreking voor gebruikers en toepassingen die toegang hebben tot de server, wordt geminimaliseerd. In-place primaire versie-upgrade biedt geen ondersteuning voor specifieke extensies en er zijn enkele beperkingen voor het upgraden van bepaalde extensies. De extensies Timescaledb, pgaudit, dblink, orafce en postgres_fdw worden niet ondersteund voor alle flexibele serverversies van Azure Database for PostgreSQL bij gebruik van de in-place functie voor het bijwerken van primaire versies.