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.
- Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
- Selecteer Serverparameters op de zijbalk.
- Zoek de
azure.extensions
parameter. - Selecteer extensies die u wilt toestaan.
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:
- Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
- Selecteer Serverparameters op de zijbalk.
- Zoek de
shared_preload_libraries
parameter. - Selecteer extensies die u wilt toevoegen.
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.
dblink en postgres_fdw
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:
- Voeg deze
pg_failover_slots
toe aan de gedeelde bibliotheken voor vooraf laden van de server door deshared_preload_libraries
parameter bij te werken. - Wijzig de serverparameter
hot_standby_feedback
inon
.
Voor wijzigingen in de shared_preload_libraries
parameter moet de server opnieuw worden opgestart.
Volg deze stappen in Azure Portal:
- Meld u aan bij Azure Portal en ga naar de pagina van uw azure Database for PostgreSQL Flexibele serverexemplaren.
- Selecteer serverparameters in het menu aan de linkerkant.
- Zoek de parameter in de lijst en bewerk de
shared_preload_libraries
bijbehorende waarde om op te nemenpg_failover_slots
. - Zoek de parameter en stel de
hot_standby_feedback
waarde in opon
. - 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 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.
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 none
stellenpg_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:
Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
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.
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
- Hulpprogramma's installeren zoals hier wordt beschreven
- Een doelexemplaren en -database van Azure Database for PostgreSQL flexibele server maken
- Timescale-extensie inschakelen zoals hierboven wordt weergegeven
- Rol
azure_pg_admin
verlenen aan 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 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 join
tabel 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:
Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
Selecteer Serverparameters op de zijbalk.
Zoek de
shared_preload_libraries
parameter.Selecteer pg_hint_plan.
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.
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.