Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk néhány speciális szempontot ismertet, amelyekkel tisztában kell lennie, amikor bizonyos bővítményeket vagy modulokat használ egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban.
Általános szempontok bővítményekkel
Ha rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban szeretne bővítményt használni, a következőt kell használnia:
-
Bővítmény engedélyezése. Ha a bővítmény nem engedélyezett, a végrehajtásra
CREATE EXTENSIONALTER EXTENSIONtett kísérletek , vagyDROP EXTENSIONCOMMENT ON EXTENSIONmeghiúsulnak egy olyan hibával, amely azt jelzi, hogy a hivatkozott bővítmény nem engedélyezett. - Ha a bővítmény olyan megosztott bináris kódtárat helyez üzembe, amely a megosztott memória kiosztását és elérését igényli, és a kiszolgáló indításakor be kell tölteni, akkor a betöltési kódtárakban megadott utasításokat is követnie kell.
- Hozzon létre bővítményt azokban az adatbázisokban, amelyekben a bővítmény üzembe szeretné helyezni az ezzel a kiterjesztéssel elosztott SQL-objektumokat.
- A bővítmény elvetése. Ha el szeretne távolítani abból az adatbázisból, amelyben végrehajtja a parancsot, az adott bővítmény által elosztott összes SQL-objektumot.
- Frissítse a bővítményeket, hogy a legújabb verzióra frissítse mindazokat az SQL-összetevőket, amelyeket egy már telepített bővítmény helyezett üzembe.
- A telepített bővítmények és azok megfelelő verzióinak megtekintése.
Ha hibaüzenetet kap a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányon a CREATE EXTENSIONparancsok ALTER EXTENSIONDROP EXTENSION végrehajtása COMMENT ON EXTENSION közben, tekintse meg a lehetséges hibák listáját, és hogy mi okozhatja ezeket a hibákat.
Általános szempontok modulokkal
Ha rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban szeretne modult használni, csak a shared_preload_libraries leírtak szerint kell hozzáadnia azt a kiszolgálóparaméterhez.
A modulokat nem kell engedélyezni. Ez a bővítmények kizárólagos követelménye.
Speciális szempontokat tartalmazó bővítmények
Az alábbi lista felsorolja azokat a támogatott bővítményeket, amelyek speciális szempontokat igényelnek, amikor rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban használják:
AGEdblinkpg_buffercachepg_cronpg_hint_planpg_prewarmpg_repackpg_stat_statementspostgres_fdwpgstattuple
AGE
Az Apache AGE-bővítmény az Azure Database for PostgreSQL által támogatott PostgreSQL gráfbővítménye. Lehetővé teszi a gráfadatbázis funkcióit, a nyílt cipher lekérdezések támogatását, valamint a PostgreSQL-ben tárolt gráfadatokon végzett összetett lekérdezések végrehajtását. Az "Apache AGE" egy nyílt forráskódú projekt, amely az Apache License 2.0 keretében jelent meg.
Az AGE telepítése
Az AGE használatához győződjön meg arról, hogy "engedélyezi" a bővítményt, betölti a kódtárat, és "telepíti a bővítményt" abban az adatbázisban, amelyen használni szeretné a funkcióját.
dblink
A dblink bővítmény lehetővé teszi, hogy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányból csatlakozzon egy másik, ugyanazon kiszolgálóhoz tartozó adatbázishoz. Az Azure Database for PostgreSQL támogatja a bejövő és 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. A virtuális hálózat integrációja alapértelmezés szerint 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
A pg_buffercache bővítmény a 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 (a következőbenshared_buffers). Ez a bővítmény segíthet a teljesítményproblémák (gyorsítótárazással kapcsolatos teljesítményproblémák) 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
A pg_cron bővítmény egy egyszerű, cronalapú feladatütemező a PostgreSQL-hez, amely bővítményként fut az adatbázisban. A pg_cron bővítmény ütemezett karbantartási feladatokat futtathat egy PostgreSQL-adatbázisban. Futtathat például egy tábla rendszeres vákuumát, vagy eltávolíthatja a régi adatfeladatokat.
A pg_cron bővítmény 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. Ily módon biztosítja, hogy a feladatok pontosan annyiszor fussanak, amennyit ütemezettek, és ne futjanak párhuzamosan magukkal.
Győződjön meg arról, hogy a beállított érték shared_preload_libraries tartalmazza a következőt pg_cron: . Ez a bővítmény nem támogatja a könyvtár betöltését a CREATE EXTENSION végrehajtásának hatásaként. Ha a bővítményt nem adták hozzá a bővítményhez shared_preload_libraries, vagy ha a kiszolgáló nem lett újraindulva a hozzáadás után, hibaüzenet jelenik meg, amelynek a szövege azt mondja pg_cron can only be loaded via shared_preload_libraries, és akinek a tippje van Add pg_cron to the shared_preload_libraries configuration variable in postgresql.conf.
A használathoz pg_crongyőződjön meg arról, hogy a megosztott tárat a kiszolgáló indításakor betölti, engedélyezve van, és minden olyan adatbázisban telepítve van, amelyből használni szeretné a funkcióját az általa létrehozott SQL-összetevők használatával.
Examples
A régi adatok törlése szombaton 3:30-kor (GMT).
SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);A vákuum minden nap 10:00-kor (GMT) való futtatásához 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;A vákuum futtatása minden nap 10:00-kor (GMT) a szerepkörfiók alatti
test cronadatbázisbanazure_pg_admin.SELECT cron.schedule_in_database('VACUUM',' 0 10 * * * ', 'VACUUM', 'testcron',null,TRUE);
További példák
Az 1.4-es verziótól pg_cron kezdve a cron.schedule_in_databasecron.alter_job függvényekkel ütemezheti a feladatot egy adott adatbázisban, és frissítheti a meglévő ütemezést.
A cron_schedule_in_database függvény opcionális paraméterként engedélyezi a felhasználónevet. A felhasználónév nem null értékűre állítása PostgreSQL-felügyelői jogosultságot igényel, és a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányok esetében nem támogatott. Az előző példák azt mutatják, hogy a függvényt egy kihagyott vagy null értékre állított opcionális felhasználónév-paraméterrel futtatja, amely a feladatot a feladatot ütemező felhasználó kontextusában futtatja, amelynek szerepköri jogosultságokkal kell rendelkeznie azure_pg_admin .
A régi adatok törlése szombaton 3: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');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_hint_plan
A pg_hint_plan bővítmény 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) */
A pg_hint_plan bővítmény a cél SQL-utasítással megadott speciális űrlap megjegyzésében felolvassa a hivatkozási kifejezéseket. Az adott űrlap a "/*+" karaktersorozattal kezdődik, és a következővel végződik: "*/". A tippkifejezések a zárójelek által körülhatárolt és szóközökkel tagolt tippneveket és a következő paramétereket tartalmazzák. Az olvashatóság új sorai elhatárolják az egyes utaló kifejezéseket.
Example:
/*+
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 arra készteti a tervezőt, hogy a táblában lévő eredmények seqscan alapján kombinálja a táblát a táblázatkéntb.hashjoin
A pg_hint_plan bővítmény használatához győződjön meg arról, hogy a bővítményt engedélyezési listára helyezi, betölti annak kódtárát, és telepíti a bővítményt abban az adatbázisban, amelyen használni szeretné a funkcióját.
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. A PostgreSQL automatikus frissítési funkciója jelenleg nem érhető el az Azure Database-ben.
pg_repack
A bővítmény első felhasználói pg_repack általában a következő kérdést tehetik fel: A pg_repack bővítmény vagy az ügyféloldali végrehajthatóság hasonló psql vagy pg_dump?
pg_repack 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 rendelkezik az ügyfélalkalmazás kódjával, amely tudja, hogyan használhatja a bővítményben implementált programozhatósági elemeket. 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ületek közötti interakció összetettségét. A felhasználó számára könnyebb áttekinthető parancssori lehetőségeket kínál. Az ügyfélalkalmazás haszontalan anélkül, hogy a bővítmény létrejön az adatbázison, amelyre mutat. A kiszolgálóoldali bővítmény önmagában teljesen működőképes lenne, de a felhasználónak meg kellene ismernie egy bonyolult interakciós mintát. Ez a minta a lekérdezések végrehajtásából áll, amelyek lekérik a bővítmény által implementált függvények bemeneteként használt adatokat stb.
A séma újracsomagolásához megtagadott engedély
Jelenleg, mivel engedélyeket adunk a bővítmény által létrehozott újracsomagolt sémához, csak a futó pg_repack funkciókat támogatjuk a bővítmény környezetéből azure_pg_admin.
Észreveheti, hogy ha egy tábla tulajdonosa, aki nem azure_pg_admin, megpróbál futni pg_repack, a következő 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 futtassa a pg_repack a következő környezetből 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 az információ hasznos a lekérdezési számítási feladatok éles rendszeren végzett teljesítményének megértéséhez.
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 engedélyeznie kell a pg_stat_statements bővítményt , és telepítenie kell a CREATE EXTENSION paranccsal.
A beállítás pg_stat_statements.track, amely azt szabályozza, hogy a bővítmény milyen utasításokat követ, alapértelmezés szerint topaz ügyfél á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ó.
Az egyes SQL-utasítások naplózása során a bővítmény által pg_stat_statements a kiszolgáló teljesítményére vonatkozó lekérdezés-végrehajtási információk között kompromisszum áll fenn. Ha nem használja aktívan a bővítményt, javasoljuk, hogy állítsa be a pg_stat_statements következőtpg_stat_statements.tracknone: . Előfordulhat, hogy egyes külső figyelési szolgáltatások a lekérdezési teljesítmény elemzésére támaszkodnak pg_stat_statements , ezért ellenőrizze, hogy ez a helyzet-e Önnél.
postgres_fdw
A postgres_fdw bővítmény lehetővé teszi, hogy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányból csatlakozzon egy másik, ugyanazon kiszolgálóhoz tartozó adatbázishoz. Az Azure Database for PostgreSQL támogatja a bejövő és 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. A virtuális hálózat integrációja alapértelmezés szerint 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.
pgstattuple
Amikor a pgstattuple bővítmény használatával megpróbál lekérte a sémában pg_toast tárolt objektumok rekordstatisztikáit a Postgres 11–13-ban, "a séma pg_toast engedély megtagadva" hibaüzenet jelenik meg.
Séma pg_toast engedély megtagadva
Az Azure Database for PostgreSQL rugalmas kiszolgálópéldányán a 11–13. verziójú PostgreSQL-t használó ügyfelek nem használhatják a bővítményt a pgstattuplepg_toast sémán belüli objektumokon.
A PostgreSQL 16-ban és 17-ben a pg_read_all_data szerepkör automatikusan meg lesz adva azure_pg_admin, lehetővé téve pgstattuple a helyes működést. A PostgreSQL 14-ben és 15-ben az ügyfelek manuálisan adhatják meg a pg_read_all_data szerepkört, hogy azure_pg_admin ugyanazt az eredményt elérjék. A PostgreSQL 11–13-ban pg_read_all_data azonban a szerepkör nem létezik.
Az ügyfelek nem adhatják meg közvetlenül a szükséges engedélyeket. Ha futtatnia pgstattuple kell a séma objektumainak pg_toast eléréséhez, hozzon létre egy Azure-támogatás kérést.
timescaleDB
A timescaleDB bővítmény egy idősoros adatbázis, amely a PostgreSQL bővítményeként van csomagolva. Időorientált elemzési függvényeket, optimalizálást és skálázást biztosít a Postgreshez idősorozatos számítási feladatokhoz.
További információ a TimescaleDB-ről, amely az Időskálázás, Inc. bejegyzett védjegye. Az Azure Database for PostgreSQL biztosítja a TimescaleDB Apache-2 kiadást.
TimescaleDB telepítése
A használathoz timescaleDBgyőződjön meg arról, hogy engedélyezi a bővítmény használatát , betölti annak kódtárát, és telepíti a bővítményt abban az adatbázisban, amelyen használni szeretné a funkcióját.
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.
Az időskálázási adatbázisok pg_dumppg_restorehasználatával történő visszaállításáró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
Az eljárás futtatása során előfordulhat, hogy a SELECT timescaledb_post_restore() timescaledb.restoring jelölő frissítésekor az engedélyek megtagadva lesznek. A hiba oka a Cloud PaaS adatbázis-szolgáltatások korlátozott ALTER DATABASE-engedélye. Ebben az esetben egy másik módszert is végrehajthat az eszközzel az timescaledb-backup időskálázási adatbázis biztonsági mentéséhez és visszaállításához. Az időskálázhatób-biztonsági mentés egy olyan program, amely egyszerűbbé, kevésbé hibalehetőségűvé és teljesíthetőbbé teszi az időskálázottDB-adatbázisok memóriaképét és visszaállítását.
Ehhez kövesse az alábbi lépéseket:
Telepítse az eszközöket az itt leírtak szerint.
Hozzon létre egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt és -adatbázist.
Időskálázási bővítmény engedélyezése.
Adja meg a
azure_pg_adminszerepkört a ts-restore által használt felhasználónak.Futtassa a ts-restore parancsot 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
Az Azure Database for PostgreSQL egy helyszíni főverzió-frissítési funkciót kínál, amely végrehajtja a rugalmas Azure Database for PostgreSQL-kiszolgálópéldány helyben történő frissítését, mindössze egy egyszerű felhasználói beavatkozással. A helyi főverzió-frissítés leegyszerűsíti az Azure Database for PostgreSQL frissítési folyamatát, minimalizálva a kiszolgálóhoz hozzáférő felhasználók és alkalmazások zavarát. A helyszíni főverzió-frissítések nem támogatják az adott bővítményeket, és bizonyos bővítmények frissítésére bizonyos korlátozások vonatkoznak.
A bővítmények anon, Apache AGE, dblink, orafce, postgres_fdwés timescaledb nem támogatottak minden rugalmas Azure Database for PostgreSQL-kiszolgálópéldány-verzióhoz a helyszíni főverziófrissítési funkció használatakor.
Speciális szempontokat tartalmazó modulok
Az alábbi lista felsorolja azokat a támogatott modulokat, amelyek konkrét szempontokat igényelnek, amikor rugalmas Azure Database for PostgreSQL-kiszolgálópéldányban használják:
pg_failover_slots
pg_failover_slots
A pg_failover_slots modul továbbfejleszti az Azure Database for PostgreSQL-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 modul pg_failover_slots további információt és útmutatást talál a modul használatáról.
A modul használatához győződjön meg arról, hogy a pg_failover_slots kiszolgáló indításakor a kódtár be lett töltve .