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:
- Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
- Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
- Keresse meg a paramétert
azure.extensions
. - Válassza ki az engedélyezni kívánt bővítményeket.
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_xsyn
egy olyan kiszolgálón, pg_buffercache
amelynek a postgres-test-server
neve:
{
"$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:
- Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
- Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
- Keresse meg a paramétert
shared_preload_libraries
. - Jelölje ki a hozzáadni kívánt kódtárakat.
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 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 |
azure_ai | Azure AI- és ML-szolgáltatások integrációja a PostgreSQL-hez | 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 | 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.4 ✔️ | 1.4 ✔️ | 1.4 ✔️ | 1.4 ✔️ | 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 |
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 |
íme | 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 | 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 ✔️ |
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 | 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 |
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.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_ai
kö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.
dblink
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_buffercache
shared_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 (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ő:
- Adja hozzá
pg_failover_slots
a kiszolgáló megosztott előtöltési kódtáraihoz ashared_preload_libraries
paraméter frissítésével. - Módosítsa a kiszolgálóparamétert
hot_standby_feedback
a következőreon
: .
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:
- Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
- Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
- Keresse meg a paramétert
shared_preload_libraries
, és szerkessze annak értékét a belefoglaláshozpg_failover_slots
. - Keresse meg a paramétert
hot_standby_feedback
, és állítsa az értékét a következőreon
: . - 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 join
tá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:
- Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
- Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
- Keresse meg a paramétert
shared_preload_libraries
, és szerkessze annak értékét a belefoglaláshozpg_hint_plan
. - 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.track
alapértelmezés szerint a következőre top
van á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őtnone
pg_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:
- Válassza ki rugalmas Azure Database for PostgreSQL-kiszolgálópéldányát.
- Az erőforrás menüjében, a Beállítások szakaszban válassza a Kiszolgálóparaméterek lehetőséget.
- Keresse meg a paramétert
shared_preload_libraries
, és szerkessze annak értékét a belefoglaláshozTimescaleDB
. - 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:
- Eszközök telepítése az itt részletezett módon
- Rugalmas Azure Database for PostgreSQL-kiszolgálópéldány és -adatbázis létrehozása
- Időskálázási bővítmény engedélyezése a fent látható módon
- Szerepkör megadása
azure_pg_admin
a ts-restore által használt felhasználónak - 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.