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 oldalsávon 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 <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value <extension name>,<extension name>

ARM-sablon használata: Az alább látható példa allowlists extensions dblink, dict_xsyn, pg_buffercache a kiszolgáló mypostgreserver-en

{

    "$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 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 fel kell venni a megosztott előtöltési kódtárakba, a művelet elvégezhető:

Az Azure Portal használata:

  1. Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
  2. Az oldalsávon válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries .
  4. Válassza ki a hozzáadni kívánt bővítményeket. 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 <your resource group>  --server-name <your server name> --subscription <your subscription id> --name shared_preload_libraries --value <extension name>,<extension name>

A bővítmények engedélyezési listázása és betöltése után ezeket telepíteni kell az adatbázisba, mielőtt használhatja ő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 támogatja a fontos PostgreSQL-bővítmények egy részét az alábbiak 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 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.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.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.3 1.3 1.3 1,2 1,2 1,1
anon (előzetes verzió) Adat anonimizálási eszközök 1.2.0 ✔️ 1.2.0 ✔️ 1.2.0 ✔️ 1.2.0 ✔️ 1.2.0 ✔️ 1.2.0 ✔️
azure_ai Azure AI- és ML-szolgáltatások integrációja a PostgreSQL-hez 1.0.0 1.0.0 1.0.0 1.0.0 N.A. N.A.
azure_storage Azure-integráció a PostgreSQL-hez 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ 1.4 ✔️ n/a
Virágzás 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
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
btree_gist Gyakori adattípusok indexelésének támogatása a GiST-ben 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,5
Kocka Adattípus többdimenziós kockákhoz 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
dict_int Szövegkeresési szótársablon egész számokhoz 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
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
fuzzystrmatch A sztringek közötti hasonlóságok és távolság meghatározása 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,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
intagg Egész számok összesítője és enumerátora (elavult) 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.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
Lo Nagy méretű objektumok karbantartása 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.4 1.4 1.4 1.4 1.4
ltree Hierarchikus faszerű struktúrák adattípusa 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.4 3.24 3,18 3,18 3,18 3.7
pageinspect Az adatbázisoldalak tartalmának vizsgálata alacsony szinten 1.12 1.11 1,9 1.8 1,7 1,7
pgaudit Naplózási funkciót biztosít 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.4 1.3 1.3 1.3 1.3 1.3
pg_cron Feladatütemező a PostgreSQL-hez 1.5 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️ 1.4-1 ✔️
pgcrypto Titkosítási függvények 1.3 1.3 1.3 1.3 1.3 1.3
pg_failover_slots (előzetes verzió) Logikai replikációs pontkezelő feladatátvételi célokra 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
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.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.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 4.7.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 ✔️
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
pgrouting PgRouting-bővítmény 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
pg_squeeze Egy eszköz, amely eltávolítja a nem használt területet egy relációból. 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.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
pg_trgm Szöveg-hasonlóság mérése és indexkeresés trigramok alapján 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
plpgsql PL/pgSQL eljárási nyelv 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.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.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.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.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.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.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,0 1,0 1,0
szemver Szemantikai verzió adattípusa 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
sslinfo Információ az SSL-tanúsítványokról 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
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
timescaledb Méretezhető beszúrások és összetett lekérdezések engedélyezése idősoros adatokhoz n/a 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
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
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
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
Vektor Vektoros adattípus és ivfflat és hnsw hozzáférési módszerek 0.6.1 0.6.1 0.6.1 0.6.1 0.6.1 0.5.1

A dblink és a postgres_fdw lehetővé teszik, 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 két 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_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_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. Ez biztosítja, hogy a feladatok pontosan annyiszor fussanak, amennyit ütemezettek, és ne futjanak 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 (előzetes verzió)

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.

Hajtsa végre a következő lépéseket az Azure Portalon:

  1. Jelentkezzen be az Azure Portalra , és lépjen a rugalmas Azure Database for PostgreSQL-kiszolgálópéldány lapjára.
  2. A bal oldali menüben válassza a Kiszolgálóparaméterek lehetőséget.
  3. Keresse meg a paramétert shared_preload_libraries a listában, é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 lesz 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 a kiszolgáló újraindítása szükséges.

A Mentés és újraindítás lehetőség kiválasztásával a kiszolgáló automatikusan újraindul, és alkalmazza az elvégzett 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_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 noneall. 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.

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 oldalsávon válassza a Kiszolgálóparaméterek lehetőséget.

  3. Keresse meg a paramétert shared_preload_libraries .

  4. Válassza az TimescaleDB lehetőséget.

  5. A módosítások megőrzéséhez válassza a Mentés lehetőséget. A módosítás mentése után értesítést kap.

  6. Az értesítés után indítsa újra a kiszolgálót a módosítások alkalmazásához.

Mostantól engedélyezheti az TimescaleDB-t a rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázisban. Csatlakozás 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'll 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 korlátozott ALTER DATABA Standard kiadás engedély a Cloud PaaS adatbázis-szolgáltatásokban. 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. Adjon azure_pg_admin szerepkört 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.

Feljegyzés

Ha segédprogramokat használ timescale-backup az Azure-ba való visszaállításhoz, mivel az önálló Azure Database for PostgreSQL-kiszolgáló adatbázis-felhasználóneveinek a <user@db-name> formátumot kell használniuk, karakterkódolásra %40 kell cserélni@.

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;

A fenti 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 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 oldalsávon válassza a Kiszolgálóparaméterek lehetőséget.

  3. Keresse meg a paramétert shared_preload_libraries .

  4. Válassza a pg_hint_plan.

  5. A módosítások megőrzéséhez válassza a Mentés lehetőséget. A módosítás mentése után értesítést kap.

  6. Az értesítés után indítsa újra a kiszolgálót a módosítások alkalmazásához.

Mostantól engedélyezheti pg_hint_plan rugalmas Azure Database for PostgreSQL-kiszolgálóadatbázisát. Csatlakozás az adatbázishoz, és adja ki a következő parancsot:

CREATE EXTENSION pg_hint_plan ;

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 contrib része, és könnyű telepíteni ezt a bővítményt.

CREATE EXTENSION pg_buffercache;

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.