Megosztás a következőn keresztül:


PostgreSQL-bővítmények a rugalmas Azure Database for PostgreSQL-kiszolgálón

A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló

A rugalmas Azure Database for PostgreSQL-kiszolgáló lehetővé teszi az adatbázis funkcióinak kiterjesztését bővítmények használatával. A bővítmények több kapcsolódó SQL-objektumot kötenek össze egyetlen csomagban, amelyek egy paranccsal tölthetők be vagy távolíthatók el az adatbázisból. Miután betöltötte az adatbázist, a bővítmények a beépített funkciókhoz hasonlóan működnek.

PostgreSQL-bővítmények használata

A bővítmények rugalmas Azure Database for PostgreSQL-kiszolgálón való telepítése előtt engedélyeznie kell a bővítmények használatát.

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert azure.extensions .
  4. Válassza ki az engedélyezni kívánt bővítményeket. Képernyőkép a rugalmas Azure Database for PostgreSQL-kiszolgálóról – a telepítés engedélyezésére szolgáló bővítményekről.

Az Azure CLI használata:

A bővítmények engedélyezéséhez parancssori felületi paraméterkészlet-parancsot kell megadni.

az postgres flexible-server parameter set --resource-group <resource_group>  --server-name <server> --subscription <subscription_id> --name azure.extensions --value <extension_name>,<extension_name>

ARM-sablon használata: Az alábbi példa engedélyezési listák bővítményeidblink, dict_xsynegy olyan kiszolgálón, pg_buffercache amelynek a postgres-test-serverneve:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "flexibleServers_name": {
            "defaultValue": "postgres-test-server",
            "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 egy kiszolgálókonfigurációs paraméter, amely meghatározza, hogy mely kódtárakat kell betölteni a rugalmas Azure Database for PostgreSQL-kiszolgáló indításakor. A megosztott memóriát használó kódtárakat ezen a paraméteren keresztül kell betölteni. Ha a bővítményt hozzá kell adni a megosztott előtöltési kódtárakhoz, kövesse az alábbi lépéseket:

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries .
  4. Jelölje ki a hozzáadni kívánt kódtárakat. Képernyőkép az Azure Database for PostgreSQL-ről – megosztott előtöltési kódtárak paraméterbeállításának beállítása bővítmények telepítéséhez.

Az Azure CLI használata:

A parancssori felület paraméterkészletének parancsa segítségével állítható be.shared_preload_libraries

az postgres flexible-server parameter set --resource-group <resource_group>  --server-name <server> --subscription <subscription_id> --name shared_preload_libraries --value <extension_name>,<extension_name>

A bővítmények engedélyezését és betöltését követően telepíteni kell őket minden olyan adatbázisba, amelyen használni szeretné őket. Egy adott bővítmény telepítéséhez futtassa a CREATE EXTENSION parancsot. Ez a parancs betölti a csomagolt objektumokat az adatbázisba.

Feljegyzés

A rugalmas Azure Database for PostgreSQL-kiszolgálón kínált külső bővítmények licencelt kód nyílt forráskód. Jelenleg nem kínálunk harmadik féltől származó bővítményeket vagy bővítményverziókat prémium vagy védett licencelési modellekkel.

A rugalmas Azure Database for PostgreSQL-kiszolgálópéldány a legfontosabb PostgreSQL-bővítmények egy részét támogatja az alábbi táblázatban felsoroltak szerint. Ez az információ a futtatással SHOW azure.extensions;is elérhető. A dokumentumban nem szereplő bővítmények nem támogatottak a rugalmas Azure Database for PostgreSQL-kiszolgálón. Nem hozhat létre és nem tölthet be saját bővítményt a rugalmas Azure Database for PostgreSQL-kiszolgálón.

Bővítményverziók

A rugalmas Azure Database for PostgreSQL-kiszolgálón a következő bővítmények érhetők el:

Feljegyzés

A következő táblázatban a jellel ellátott ✔️ bővítmények megkövetelik, hogy a megfelelő kódtárak engedélyezve legyenek a shared_preload_libraries kiszolgálóparaméterben.

Bővítmény neve Leírás PostgreSQL 17 PostgreSQL 16 PostgreSQL 15 PostgreSQL 14 PostgreSQL 13 PostgreSQL 12 PostgreSQL 11
address_standardizer Egy cím rendszerösszetevőkbe való elemzésére szolgál. A geokódolási cím normalizálási lépésének támogatásához általában használatos. 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
address_standardizer_data_us Address Standardizer US dataset example 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
amcheck A relációs integritás ellenőrzésére szolgáló függvények 1.4 1.3 1.3 1.3 1,2 1,2 1,1
anon (előzetes verzió) Adat anonimizálási eszközök 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2 1.3.2
azure_ai Azure AI- és ML-szolgáltatások integrációja a PostgreSQL-hez n/a 1.1.0 1.1.0 1.1.0 1.1.0 1.1.0 n/a
azure_local_ai (előzetes verzió) Helyi AI-képességek a PostgreSQL-hez n/a 0.1.0 0.1.0 0.1.0 0.1.0 N.A. N.A.
azure_storage Azure-integráció a PostgreSQL-hez 1.4 ✔️ 1.5 ✔️ 1.5 ✔️ 1.5 ✔️ 1.5 ✔️ 1.5 ✔️ n/a
virágzik Bloom hozzáférési módszer – aláírásfájl-alapú index 1.0 1.0 1.0 1.0 1.0 1.0 1.0
btree_gin Gyakori adattípusok indexelésének támogatása a GIN-ben 1.3 1.3 1.3 1.3 1.3 1.3 1.3
btree_gist Gyakori adattípusok indexelésének támogatása a GiST-ben 1,7 1,7 1,7 1.6 1,5 1,5 1,5
citext Kis- és nagybetűket nem megkülönböztető karaktersztringek adattípusa 1.6 1.6 1.6 1.6 1.6 1.6 1,5
kocka Adattípus többdimenziós kockákhoz 1,5 1,5 1,5 1,5 1.4 1.4 1.4
dblink Csatlakozás más PostgreSQL-adatbázisokhoz egy adatbázison belülről 1,2 1,2 1,2 1,2 1,2 1,2 1,2
dict_int Szövegkeresési szótársablon egész számokhoz 1.0 1.0 1.0 1.0 1.0 1.0 1.0
dict_xsyn Szövegkeresési szótársablon kiterjesztett szinonimák feldolgozásához 1.0 1.0 1.0 1.0 1.0 1.0 1.0
földesi lét Nagy kör távolságok kiszámítása a Föld felszínén 1,1 1,1 1,1 1,1 1,1 1,1 1,1
fuzzystrmatch A sztringek közötti hasonlóságok és távolság meghatározása 1,2 1,2 1,1 1,1 1,1 1,1 1,1
hstore Adattípus (kulcs, érték) párok készleteinek tárolásához 1.8 1.8 1.8 1.8 1,7 1.6 1,5
hypopg Hipotetikus indexek a PostgreSQL-hez 1.4.0 1.4.0 1.4.0 1.4.0 1.4.0 1.4.0 1.4.0
intagg Egész számok összesítője és enumerátora (elavult) 1,1 1,1 1,1 1,1 1,1 1,1 1,1
intarray Függvények, operátorok és indextámogatás egész számok egydimenziós tömbjeihez 1,5 1,5 1,5 1,5 1.3 1,2 1,2
Isn Adattípusok nemzetközi termékszámozási szabványokhoz 1,2 1,2 1,2 1,2 1,2 1,2 1,2
íme Nagy méretű objektumok karbantartása 1,1 1,1 1,1 1,1 1,1 1,1 1,1
login_hook Login_hook – horog a login_hook.login() bejelentkezéskor történő végrehajtásához 1,5 1,5 1.4 1.4 1.4 1.4 1.4
ltree Hierarchikus faszerű struktúrák adattípusa 1.3 1,2 1,2 1,2 1,2 1,1 1,1
orafce Az Oracle RDBMS függvényeinek és csomagjainak egy részét emuláló függvények és operátorok 4.9 4.4 3.24 3,18 3,18 3,18 3.7
pageinspect Az adatbázisoldalak tartalmának vizsgálata alacsony szinten 1.12 1.12 1.11 1,9 1.8 1,7 1,7
pgaudit Naplózási funkciót biztosít 16.0 ✔️ 16.0 ✔️ 1.7 ✔️ 1.6.2 ✔️ 1.5 ✔️ 1.4 ✔️ 1.3.2 ✔️
pg_buffercache A megosztott puffergyorsítótár vizsgálata 1,5 1.4 1.3 1.3 1.3 1.3 1.3
pg_cron Feladatütemező a PostgreSQL-hez 1.6 ✔️ 1.6 ✔️ 1.6 ✔️ 1.6 ✔️ 1.6 ✔️ 1.6 ✔️ 1.4-1 ✔️
pgcrypto Titkosítási függvények n/a 1.3 1.3 1.3 1.3 1.3 1.3
pg_failover_slots Logikai replikációs pontkezelő feladatátvételi célokra n/a 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️ 1.0.1 ✔️
pg_freespacemap A szabad terület térképének (FSM) vizsgálata 1,2 1,2 1,2 1,2 1,2 1,2 1,2
pg_hint_plan Lehetővé teszi a PostgreSQL végrehajtási terveinek finomhangolását az SQL-megjegyzésekben található úgynevezett tippek használatával. 1.7.0 ✔️ 1.6.0 ✔️ 1.5 ✔️ 1.4 ✔️ 1.3.7 ✔️ 1.3.7 ✔️ 1.3.7 ✔️
pglogical PostgreSQL logikai replikáció 2.4.4 ✔️ 2.4.4 ✔️ 2.4.2 ✔️ 2.4.1 ✔️ 2.4.1 ✔️ 2.4.1 ✔️ 2.4.1 ✔️
pg_partman A particionált táblák idő vagy azonosító szerinti kezeléséhez szolgáló bővítmény 5.0.1 ✔️ 5.0.1 ✔️ 4.7.1 ✔️ 4.6.1 ✔️ 4.5.0 ✔️ 4.5.0 ✔️ 4.5.0 ✔️
pg_prewarm Előzetes relációs adatok 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️ 1.2 ✔️
pg_repack Táblák átrendezése a PostgreSQL-adatbázisokban minimális zárolásokkal 1.4.7 1.4.7 1.4.7 1.4.7 1.4.7 1.4.7 1.4.7
pgrouting PgRouting-bővítmény N.A. N.A. 3.5.0 3.3.0 3.3.0 3.3.0 3.3.0
pgrowlocks Sorszintű zárolási információk megjelenítése 1,2 1,2 1,2 1,2 1,2 1,2 1,2
pg_squeeze Egy eszköz, amely eltávolítja a nem használt területet egy relációból. 1.7 ✔️ 1.6 ✔️ 1.6 ✔️ 1.5 ✔️ 1.5 ✔️ 1.5 ✔️ 1.5 ✔️
pg_stat_statements Az összes végrehajtott SQL-utasítás tervezési és végrehajtási statisztikáinak nyomon követése 1.11 ✔️ 1.10 ✔️ 1.10 ✔️ 1.9 ✔️ 1.8 ✔️ 1.7 ✔️ 1.6 ✔️
pgstattuple Rekordszintű statisztikák megjelenítése 1,5 1,5 1,5 1,5 1,5 1,5 1,5
pg_trgm Szöveg-hasonlóság mérése és indexkeresés trigramok alapján 1.6 1.6 1.6 1.6 1,5 1.4 1.4
pg_visibility A láthatósági térkép (virtuális gép) és az oldalszintű láthatósági adatok vizsgálata 1,2 1,2 1,2 1,2 1,2 1,2 1,2
plpgsql PL/pgSQL eljárási nyelv 1.0 1.0 1.0 1.0 1.0 1.0 1.0
plv8 PL/JavaScript (v8) megbízható eljárásnyelv 3.1.7 3.1.7 3.1.7 3.0.0 3.0.0 3.0.0 3.0.0
postgis PostGIS geometria és földrajzi térbeli típusok és függvények 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_raster PostGIS rasztertípusok és függvények 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_sfcgal PostGIS SFCGAL függvények 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_tiger_geocoder PostGIS tigris geokódoló és fordított geokódoló 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgis_topology PostGIS-topológia térbeli típusai és függvényei 3.5.0alpha2 3.3.3 3.3.1 3.2.3 3.2.3 3.2.3 3.2.3
postgres_fdw Külső adatburkoló távoli PostgreSQL-kiszolgálókhoz 1,1 1,1 1,1 1,1 1.0 1.0 1.0
postgres_protobuf Protokollpufferek a PostgreSQL-hez 0,2 0,2 0,2 0,2 0,2 0,2 n/a
szemver Szemantikai verzió adattípusa 0.32.1 0.32.1 0.32.0 0.32.0 0.32.0 0.32.0 0.32.0
session_variable Session_variable – munkamenet-változók és állandók regisztrálása és kezelése 3.3 3.3 3.3 3.3 3.3 3.3 3.3
sslinfo Információ az SSL-tanúsítványokról 1,2 1,2 1,2 1,2 1,2 1,2 1,2
tablefunc Egész táblákat kezelő függvények, beleértve a kereszttáblát is 1.0 1.0 1.0 1.0 1.0 1.0 1.0
tds_fdw TDS-adatbázis (Sybase vagy Microsoft SQL Server) lekérdezéséhez szükséges idegen adatburkoló 2.0.3 2.0.3 2.0.3 2.0.3 2.0.3 2.0.3 2.0.3
timescaledb Méretezhető beszúrások és összetett lekérdezések engedélyezése idősoros adatokhoz 2.13.0 ✔️ 2.13.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 2.10.0 ✔️ 1.7.4 ✔️
tsm_system_rows TABLESAMPLE metódus, amely korlátként fogadja el a sorok számát 1.0 1.0 1.0 1.0 1.0 1.0 1.0
tsm_system_time TABLESAMPLE metódus, amely korlátként fogadja el az időt ezredmásodpercben 1.0 1.0 1.0 1.0 1.0 1.0 1.0
unaccent Jelölőszíneket eltávolító szövegkeresési szótár 1,1 1,1 1,1 1,1 1,1 1,1 1,1
uuid-ossp Univerzálisan egyedi azonosítók (UUID-k) létrehozása 1,1 1,1 1,1 1,1 1,1 1,1 1,1
vektor Vektoros adattípus és ivfflat és hnsw hozzáférési módszerek 0.7.0 0.7.0 0.7.0 0.7.0 0.7.0 0.7.0 0.5.1

PostgreSQL-bővítmények frissítése

Az adatbázisbővítmények helyben történő frissítése egy egyszerű paranccsal engedélyezett. Ez a funkció lehetővé teszi az ügyfelek számára, hogy automatikusan frissítsék a külső bővítményeiket a legújabb verziókra, és manuális erőfeszítés nélkül fenntartsák a jelenlegi és biztonságos rendszereket.

Bővítmények frissítése

Ha egy telepített bővítményt az Azure által támogatott legújabb elérhető verzióra szeretne frissíteni, használja a következő SQL-parancsot:

ALTER EXTENSION <extension_name> UPDATE;

Ez a parancs leegyszerűsíti az adatbázisbővítmények kezelését azáltal, hogy lehetővé teszi a felhasználóknak, hogy manuálisan frissítsenek az Azure által jóváhagyott legújabb verzióra, ami növeli a kompatibilitást és a biztonságot is.

Korlátozások

Bár a bővítmények frissítése egyszerű, bizonyos korlátozások vannak érvényben:

  • Adott verzió kiválasztása: A parancs nem támogatja a bővítmények köztes verzióira való frissítést. Mindig a legújabb elérhető verzióra frissül.
  • Visszaminősítés: Nem támogatja a bővítmények korábbi verzióra való visszaminősítését. Ha leminősítésre van szükség, támogatási segítségre lehet szükség, és az előző verzió elérhetőségétől függ.

Telepített bővítmények

Az adatbázisra jelenleg telepített bővítmények listázásához használja a következő SQL-parancsot:

SELECT * FROM pg_extension;

Elérhető bővítmények és azok verziói

Ha ellenőrizni szeretné, hogy egy bővítmény mely verziói érhetők el az aktuális adatbázis-telepítéshez, kérdezze le a pg_available_extensions rendszerkatalógus nézetét. Például a bővítményhez elérhető verzió meghatározásához hajtsa végre a azure_aikövetkezőt:

SELECT * FROM pg_available_extensions WHERE name = 'azure_ai';

Ezek a parancsok az adatbázis bővítménykonfigurációinak szükséges elemzéseit biztosítják, így hatékonyan és biztonságosan tarthatja karban a rendszereket. A legújabb bővítményverziók egyszerű frissítéseinek lehetővé tételével az Azure Database for PostgreSQL továbbra is támogatja az adatbázis-alkalmazások robusztus, biztonságos és hatékony kezelését.

A rugalmas Azure Database for PostgreSQL-kiszolgálóra vonatkozó szempontok

Az alábbiakban felsoroljuk azokat a támogatott bővítményeket, amelyek bizonyos szempontokat igényelnek a rugalmas Azure Database for PostgreSQL-kiszolgálószolgáltatásban való használat során. A lista betűrendbe van rendezve.

A dblink lehetővé teszi, hogy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányból egy másikhoz vagy ugyanazon kiszolgáló egy másik adatbázisához csatlakozzon. A rugalmas Azure Database for PostgreSQL-kiszolgáló támogatja a bejövő és a kimenő kapcsolatokat bármely PostgreSQL-kiszolgálóhoz. A küldő kiszolgálónak engedélyeznie kell a kimenő kapcsolatokat a fogadó kiszolgálóval. Hasonlóképpen, a fogadó kiszolgálónak engedélyeznie kell a küldő kiszolgálóról érkező kapcsolatokat.

Ha ezt a bővítményt szeretné használni, javasoljuk, hogy telepítse a kiszolgálókat virtuális hálózati integrációval. Alapértelmezés szerint a virtuális hálózat integrációja lehetővé teszi a virtuális hálózat kiszolgálói közötti kapcsolatokat. A hozzáférés testreszabásához virtuális hálózati biztonsági csoportokat is használhat.

pg_buffercache

pg_buffercacheshared_buffers tartalmának tanulmányozására használható. Ezzel a bővítménysel megállapíthatja, hogy egy adott kapcsolat gyorsítótárazva van-e vagy sem (a következőben shared_buffers). Ez a bővítmény segíthet a teljesítményproblémák (a kapcsolódó teljesítményproblémák gyorsítótárazása) elhárításában.

Ez a bővítmény integrálva van a PostgreSQL alapvető telepítésével, és könnyen telepíthető.

CREATE EXTENSION pg_buffercache;

pg_cron

pg_cron egy egyszerű, cron-alapú feladatütemező a PostgreSQL-hez, amely bővítményként fut az adatbázisban. A pg_cron bővítmény használható ütemezett karbantartási feladatok postgreSQL-adatbázisokon belüli futtatására. Futtathat például rendszeres vákuumot egy táblázatból, vagy eltávolíthatja a régi adatfeladatokat.

pg_cron egyszerre több feladatot is futtathat, de egyszerre legfeljebb egy feladatpéldányon fut. Ha egy második futtatásnak az első előtt kell kezdődnie, akkor a második futtatás várólistára kerül, és az első futtatás befejeződése után azonnal elindul. Így biztosítható, hogy a feladatok pontosan annyiszor fussanak, mint az ütemezettek, és ne fussanak párhuzamosan magukkal.

Néhány példa:

A régi adatok törlése szombaton 15:30-kor (GMT).

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

Vákuum futtatása minden nap 10:00-kor (GMT) az alapértelmezett adatbázisban postgres.

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

Az összes tevékenység ütemezésének megszüntetése a következőből pg_cron: .

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

Az összes jelenleg ütemezett feladat megtekintése a következővel pg_cron: .

SELECT * FROM cron.job;

Vákuum futtatása minden nap 10:00-kor (GMT) a "testcron" adatbázisban azure_pg_admin szerepkör-fiók alatt.

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

Feljegyzés

pg_cron bővítmény előre be van töltve shared_preload_libraries minden rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz a Postgres-adatbázisban, hogy a feladatok más adatbázisokban való futtatását ütemezhesse az Azure Database for PostgreSQL rugalmas kiszolgálóadatbázis-példányán a biztonság veszélyeztetése nélkül. Biztonsági okokból azonban továbbra is engedélyeznie kell a listabővítménytpg_cron, és telepítenie kell a CREATE EXTENSION paranccsal.

Az 1.4-es verziótól pg_cron kezdve az és cron.alter_job a cron.schedule_in_database függvényekkel ütemezheti a feladatot egy adott adatbázisban, és frissítheti a meglévő ütemezést.

Néhány példa:

Régi adatok törlése szombaton 15:30-kor (GMT) a DBName adatbázisból.

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

Feljegyzés

cron_schedule_in_database függvény lehetővé teszi a felhasználónév opcionális paraméterként való beállítását. A felhasználónév nem null értékűre állítása PostgreSQL-felügyelői jogosultságot igényel, és nem támogatott a rugalmas Azure Database for PostgreSQL-kiszolgálón. Az előző példák azt mutatják, hogy a függvényt nem kötelezően megadott vagy null értékre állított felhasználónévparaméterrel futtatja, amely a feladatot a feladat felhasználóütemezésével összefüggésben futtatja, amelynek azure_pg_admin szerepköri jogosultságokkal kell rendelkeznie.

A meglévő ütemezés adatbázisnevének frissítése vagy módosítása

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

pg_failover_slots

A PG Feladatátvevő pontok bővítmény növeli a rugalmas Azure Database for PostgreSQL-kiszolgálót, ha logikai replikációval és magas rendelkezésre állású kiszolgálókkal is működik. Hatékonyan kezeli a standard PostgreSQL-motor azon kihívását, amely feladatátvétel után nem őrzi meg a logikai replikációs helyeket. Ezeknek a tárolóhelyeknek a fenntartása kritikus fontosságú ahhoz, hogy megakadályozza a replikációs szüneteket vagy az adateltéréseket az elsődleges kiszolgáló szerepkörének módosításakor, biztosítva a működés folytonosságát és az adatok integritását.

A bővítmény leegyszerűsíti a feladatátvételi folyamatot a replikációs pontok szükséges átvitelének, törlésének és szinkronizálásának kezelésével, így zökkenőmentes átmenetet biztosít a kiszolgálói szerepkörök módosítása során. A bővítmény a PostgreSQL 11–16-os verzióiban támogatott.

További információt és a PG feladatátvételi pontok bővítményének használatát a GitHub oldalán talál.

Pg_failover_slots engedélyezése

A rugalmas Azure Database for PostgreSQL-kiszolgálópéldány PG Feladatátvevő pontok bővítményének engedélyezéséhez módosítania kell a kiszolgáló konfigurációját úgy, hogy a bővítményt belefoglalja a kiszolgáló megosztott előtöltési kódtáraiba, és módosít egy adott kiszolgálóparamétert. Ennek folyamata a következő:

  1. Adja hozzá pg_failover_slots a kiszolgáló megosztott előtöltési kódtáraihoz a shared_preload_libraries paraméter frissítésével.
  2. Módosítsa a kiszolgálóparamétert hot_standby_feedback a következőre on: .

A paraméter módosításainak shared_preload_libraries érvénybe lépéséhez a kiszolgáló újraindítása szükséges.

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries , és szerkessze annak értékét a belefoglaláshoz pg_failover_slots.
  4. Keresse meg a paramétert hot_standby_feedback , és állítsa az értékét a következőre on: .
  5. A módosítások megőrzéséhez válassza a Mentés lehetőséget. Most lehetősége van a mentésre és az újraindításra. Ezt választva győződjön meg arról, hogy a módosítások érvénybe lépnek, mivel a shared_preload_libraries módosításhoz újra kell indítani a kiszolgálót.

A Mentés és újraindítás lehetőség kiválasztásával a kiszolgáló automatikusan újraindul, és alkalmazza az imént végrehajtott módosításokat. Miután a kiszolgáló újra online állapotba kerül, a PG feladatátvevő pontok bővítménye engedélyezve van és működőképes az elsődleges Rugalmas Azure Database for PostgreSQL-kiszolgálópéldányon, készen áll a logikai replikációs pontok feladatátvétel során történő kezelésére.

pg_hint_plan

pg_hint_plan Lehetővé teszi a PostgreSQL végrehajtási terveinek finomhangolását úgynevezett "tippek" használatával az SQL-megjegyzésekben, például:

/*+ SeqScan(a) */

pg_hint_plan a cél SQL-utasítással megadott speciális formátumú megjegyzésben lévő hivatkozási kifejezéseket olvassa. A speciális űrlap a "/*+" karaktersorozattal kezdődik, és a "*/" karaktersorozattal végződik. A tippkifejezések a zárójelek által körülhatárolt és szóközökkel tagolt tippnevekből és a következő paraméterekből állnak. Az olvashatóság új sorai elhatárolják az egyes utaló kifejezéseket.

Példa:

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

Az előző példa azt eredményezi, hogy a tervező az a táblában lévő egy seq scan adott tábla eredményeit a b hash jointáblával kombinálja.

A pg_hint_plan telepítéséhez emellett engedélyeznie kell a listázást, ahogyan az a PostgreSQL-bővítmények használatában is látható, a kiszolgáló megosztott előtöltési kódtáraiban is szerepelnie kell. A Postgres paraméterének shared_preload_libraries módosításához a kiszolgáló újraindítása szükséges. A paramétereket az Azure Portalon vagy az Azure CLI-vel módosíthatja.

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries , és szerkessze annak értékét a belefoglaláshoz pg_hint_plan.
  4. A módosítások megőrzéséhez válassza a Mentés lehetőséget. Most lehetősége van a mentésre és az újraindításra. Ezt választva győződjön meg arról, hogy a módosítások érvénybe lépnek, mivel a shared_preload_libraries módosításhoz újra kell indítani a kiszolgálót. Mostantól engedélyezheti pg_hint_plan rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázisát. Csatlakozzon az adatbázishoz, és adja ki a következő parancsot:
CREATE EXTENSION pg_hint_plan;

pg_prewarm

A pg_prewarm bővítmény betölti a relációs adatokat a gyorsítótárba. A gyorsítótárak előzetes létrehozása azt jelenti, hogy a lekérdezések jobb válaszidővel rendelkeznek az újraindítás utáni első futtatáskor. Az automatikus előtelepítési funkció jelenleg nem érhető el a rugalmas Azure Database for PostgreSQL-kiszolgálón.

pg_repack

Egy tipikus kérdés, amelyet a felhasználók feltesznek, amikor először próbálják meg használni ezt a bővítményt: Pg_repack egy bővítmény vagy egy ügyféloldali végrehajtható fájl, például psql vagy pg_dump?

A válasz erre az, hogy valójában mindkettő. pg_repack/lib tartalmazza a bővítmény kódját, beleértve az általa létrehozott sémát és SQL-összetevőket, valamint a C kódtárat, amely több ilyen függvény kódját implementálja. Másrészt a pg_repack/bin megőrzi az ügyfélalkalmazás kódját, amely tudja, hogyan használhatja a bővítmény által létrehozott programozhatósági összetevőket. Az ügyfélalkalmazás célja, hogy megkönnyítse a kiszolgálóoldali bővítmény által felszínre hozott különböző felületekkel való interakció összetettségét azáltal, hogy a felhasználó számára könnyebben érthető parancssori lehetőségeket kínál. A hivatkozott adatbázison létrehozott bővítmény nélküli ügyfélalkalmazás haszontalan. A kiszolgálóoldali bővítmény önmagában teljesen működőképes lenne, de a felhasználónak meg kell értenie egy bonyolult interakciós mintát, amely a lekérdezések végrehajtásából áll, hogy lekérje a bővítmény által implementált függvények bemeneteként használt adatokat.

A séma újracsomagolásához megtagadott engedély

A bővítmény által létrehozott újracsomagolt sémához való engedélyek megadásának módja miatt jelenleg csak pg_repack funkciók futtatása támogatott a bővítmény környezetéből azure_pg_admin.

Megfigyelheti, hogy ha egy tábla tulajdonosa, aki nem azure_pg_admin, megpróbál pg_repack futtatni, a következőhöz hasonló hibaüzenet jelenik meg:

NOTICE: Setting up workers.conns
ERROR: pg_repack failed with error: ERROR:  permission denied for schema repack
LINE 1: select repack.version(), repack.version_sql()

A hiba elkerülése érdekében győződjön meg arról, hogy a pg_repack a környezetből futtatja azure_pg_admin.

pg_stat_statements

A pg_stat_statements bővítmény áttekintést nyújt az adatbázison futó összes lekérdezésről. Ez hasznos annak megértéséhez, hogy a lekérdezési számítási feladatok teljesítménye hogyan néz ki egy éles rendszerben.

A pg_stat_statements bővítmény előre be van töltve shared_preload_libraries minden rugalmas Azure Database for PostgreSQL-kiszolgálópéldányra, hogy nyomon követhesse az SQL-utasítások végrehajtási statisztikáit. Biztonsági okokból azonban továbbra is engedélyeznie kell pg_stat_statements bővítményt, és telepítenie kell a CREATE EXTENSION paranccsal. A bővítmény által megszámlált utasításokat meghatározó beállítás pg_stat_statements.trackalapértelmezés szerint a következőre topvan állítva, vagyis az ügyfelek által közvetlenül kiadott összes utasítás nyomon lesz követve. A két másik nyomkövetési szint és none all. Ez a beállítás kiszolgálóparaméterként konfigurálható.

A pg_stat_statements nyújtotta lekérdezés-végrehajtási információk használata a kiszolgáló teljesítményének romlását vonja magával, mivel minden egyes SQL-utasítást naplóz. Ha nem használja aktívan a bővítményt, javasoljuk, hogy állítsa be a pg_stat_statements következőtnonepg_stat_statements.track: . Egyes külső figyelési szolgáltatások támaszkodhatnak pg_stat_statements a lekérdezési teljesítmény elemzésére, ezért győződjön meg arról, hogy ez az Ön számára is így van- e.

postgres_fdw

postgres_fdw lehetővé teszi, hogy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányból egy másikhoz vagy ugyanazon kiszolgáló egy másik adatbázisához csatlakozzon. A rugalmas Azure Database for PostgreSQL-kiszolgáló támogatja a bejövő és a kimenő kapcsolatokat bármely PostgreSQL-kiszolgálóhoz. A küldő kiszolgálónak engedélyeznie kell a kimenő kapcsolatokat a fogadó kiszolgálóval. Hasonlóképpen, a fogadó kiszolgálónak engedélyeznie kell a küldő kiszolgálóról érkező kapcsolatokat.

Ha ezt a bővítményt szeretné használni, javasoljuk, hogy telepítse a kiszolgálókat virtuális hálózati integrációval. Alapértelmezés szerint a virtuális hálózat integrációja lehetővé teszi a virtuális hálózat kiszolgálói közötti kapcsolatokat. A hozzáférés testreszabásához virtuális hálózati biztonsági csoportokat is használhat.

TimescaleDB

Az TimescaleDB egy idősorozat-adatbázis, amely a PostgreSQL bővítményeként van csomagolva. Az timescaleDB időorientált elemzési függvényeket, optimalizálásokat és skálázási Postgres-eket biztosít az idősoros számítási feladatokhoz. További információ az IdőskálázásDB-ről, amely az Időskálázás, Inc. rugalmas Azure Database for PostgreSQL-kiszolgáló bejegyzett védjegye, a TimescaleDB Apache-2 kiadást biztosítja.

TimescaleDB telepítése

Az IdőskálázásDB telepítéséhez emellett a listázás engedélyezéséhez a fent látható módon fel kell vennie a kiszolgáló megosztott előtöltési kódtáraiba. A Postgres paraméterének shared_preload_libraries módosításához a kiszolgáló újraindítása szükséges. A paramétereket az Azure Portalon vagy az Azure CLI-vel módosíthatja.

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries , és szerkessze annak értékét a belefoglaláshoz TimescaleDB.
  4. A módosítások megőrzéséhez válassza a Mentés lehetőséget. Most lehetősége van a mentésre és az újraindításra. Ezt választva győződjön meg arról, hogy a módosítások érvénybe lépnek, mivel a shared_preload_libraries módosításhoz újra kell indítani a kiszolgálót. Mostantól engedélyezheti az TimescaleDB-t a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázisban. Csatlakozzon az adatbázishoz, és adja ki a következő parancsot:
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Tipp.

Ha hibaüzenet jelenik meg, ellenőrizze, hogy újraindította-e a kiszolgálót a shared_preload_libraries mentése után.

Mostantól létrehozhat egy időskálázásiDB-hipertáblát az alapoktól, vagy áttelepítheti a meglévő idősoros adatokat a PostgreSQL-ben.

Időskálázási adatbázis visszaállítása pg_dump és pg_restore használatával

Az időskálázási adatbázis pg_dump és pg_restore használatával történő visszaállításához két segéd eljárást kell futtatnia a céladatbázisban: timescaledb_pre_restore() és timescaledb_post restore().

Először készítse elő a céladatbázist:

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

SELECT timescaledb_pre_restore();

Most már futtathat pg_dump az eredeti adatbázisban, majd elvégezheti a pg_restore. A visszaállítás után mindenképpen futtassa a következő parancsot a visszaállított adatbázisban:

SELECT timescaledb_post_restore();

Az időskálázást engedélyező adatbázissal rendelkező visszaállítási módszerről további információt az időskálázási dokumentációban talál.

Időskálázási adatbázis visszaállítása időskálázási biztonsági mentéssel

A fent felsorolt eljárás futtatásakor SELECT timescaledb_post_restore() előfordulhat, hogy az engedélyek megtagadva lesznek az timescaledb.restoring jelölő frissítésével kapcsolatos hiba miatt. Ennek oka a Cloud PaaS adatbázis-szolgáltatások korlátozott ALTER DATABASE-engedélye. Ebben az esetben másik módszert is végrehajthat az időskálázási adatbázis biztonsági mentésére és visszaállítására szolgáló timescaledb-backup eszközzel. Az időskálázottb-biztonsági mentés egy olyan program, amely egyszerűbbé, kevésbé hibalehetőségűvé és teljesíthetőbbé teszi a memóriaképeket, és visszaállítja az időskálázottDB-adatbázisokat.
Ehhez kövesse az alábbi lépéseket:

  1. Eszközök telepítése az itt részletezett módon
  2. Rugalmas Azure Database for PostgreSQL-kiszolgálópéldány és -adatbázis létrehozása
  3. Időskálázási bővítmény engedélyezése a fent látható módon
  4. Szerepkör megadása azure_pg_admin a ts-restore által használt felhasználónak
  5. Ts-restore futtatása az adatbázis visszaállításához

Ezekről a segédprogramokról itt talál további részleteket.

Bővítmények és főverzió-frissítés

A rugalmas Azure Database for PostgreSQL-kiszolgáló bevezetett egy helyi főverzió-frissítési funkciót, amely egyetlen kattintással végrehajtja a rugalmas Azure Database for PostgreSQL-kiszolgálópéldány helyszíni frissítését. A helyi főverzió-frissítés leegyszerűsíti az Azure Database for PostgreSQL rugalmas kiszolgálófrissítési folyamatát, minimalizálva a kiszolgálóhoz hozzáférő felhasználók és alkalmazások fennakadásait. A helyszíni főverzió-frissítés nem támogatja az adott bővítményeket, és bizonyos bővítmények frissítésére van néhány korlátozás. A Timescaledb, a pgaudit, a dblink, az orafce és a postgres_fdw bővítmények nem támogatottak minden rugalmas Azure Database for PostgreSQL-kiszolgálói verzióhoz a helyszíni főverziófrissítési funkció használatakor.