A PostgreSQL architektúrája
A PostgreSQL egy ügyfél-/kiszolgálói relációsadatbázis-kezelő rendszer (RDMS). A PostgreSQL számos bővítményt támogat, például a Citus bővítményt az Azure Cosmos DB for PostgreSQL-ben. Miután betöltött egy bővítményt az adatbázisba, úgy működik, mint bármely beépített funkció.
A PostgreSQL saját, pgsql nevű lekérdezési nyelvvel is rendelkezik. Emellett a PostgreSQL támogatja az olyan eljárási nyelveket, mint a Ruby on Rails.
Ügyfél-/kiszolgálóarchitektúra
A PostgreSQL egy ügyfél-/kiszolgálóarchitektúrán alapul. A kiszolgáló tárolja, kezeli és visszaadja az adatokat az ügyfélprogramoknak. Az ügyfélprogramok pgSQL-vel vagy a PostgreSQL által támogatott eljárásnyelvek egyikével kérnek adatokat, például PL/pgSQL-t.
A PostgreSQL-munkamenetek három részből állnak:
- A(z) postamester
- Az ügyfélalkalmazás
- A szerver
Postamester
A Postmaster a PostgreSQL-kiszolgálót kezelő felügyeleti démonfolyamat. A postmaster démon kezeli a különböző kiszolgálói folyamatok közötti kommunikációt, beleértve a kiszolgáló inicializálását, a kiszolgáló leállítását, a kapcsolatkérések kezelését és egyéb háttérfolyamatok végrehajtását. Az Azure Database for PostgreSQL-ben nincs hozzáférése a fájlrendszerhez vagy a Postmaster-folyamathoz.
Ügyfélalkalmazások
Az ügyfelek lekérdezéseket futtatnak, és egy Azure Database for PostgreSQL-kiszolgálón használják az adatbázisokat. A lekérdezések futtatásához olyan ügyféleszközre van szüksége, mint az Azure Data Studio, a DBeaver, a pgAdmin vagy a psql. A következő modulban megismerheti az ügyféleszközöket.
Kiszolgálói folyamatok
Fürt – egyetlen PostgreSQL-kiszolgáló több felhasználói adatbázist is üzemeltethet. A PostgreSQL az adatbázisok gyűjteményére hivatkozik fürtként. Minden adatbázis külön van egymástól, és a felhasználók és az alkalmazások egyetlen adatbázissal működnek együtt. A felhasználók a fürt vagy a kiszolgáló szintjén jönnek létre.
Ezeknek az adatbázisoknak az adatait a fürt PGDATA nevű adatkönyvtárában tárolja a rendszer. A PGDATA adatkönyvtár tartalmaz egy fájlt, amely a futtatott PostgreSQL verzióját tartalmazza, pg_tblspc amely táblaterekre mutató hivatkozásokat tartalmaz, és pg_xlog , amelyek az előre írt naplófájlokat tartalmazzák.
Feljegyzés
Az Azure Databases for PostgreSQL egy olyan szolgáltatás, amely a tárolást és a mögöttes fájlrendszert kezeli. A kiszolgáló felhasználójaként nincs közvetlen hozzáférése a PGDATA könyvtárhoz vagy annak alkönyvtáraihoz.
A létrehozott adatbázisokon kívül három rendszeradatbázis is létezik:
- postgres – az alapértelmezett adatbázis. A kiszolgáló létrehozása után csatlakozol a PostgreSQL adatbázishoz.
- azure_maintenance – a szolgáltatásfolyamatokat kezelő adatbázis. Nincs közvetlen hozzáférése ehhez az adatbázishoz.
- azure_sys – a Lekérdezéstár adatbázis. Nem módosíthatja a azure_sys adatbázist vagy sémáit. A azure_sys bármi módosítása megakadályozza a Lekérdezéstár és más teljesítményfunkciók megfelelő működését.
Sémák – A séma az adatbázis-objektumok nevesített csoportosítása. A sok objektumot tartalmazó nagyméretű adatbázisoknak előnyös, ha sémákba rendezik az objektumokat. Például az értékesítéshez kapcsolódó objektumok sémájának és az ügyfélhez kapcsolódó objektumok sémájának létrehozása megkönnyíti a megfelelő objektum megtalálását.
Kiszolgálóparaméterek – A PostgreSQL számos konfigurációs fájllal rendelkezik, amelyek meghatározzák az adatbázismotor működését. A fő PostgreSQL-konfigurációs fájl neve postgresql.conf.
Az Azure Database for PostgreSQL ezeket a konfigurációs fájlokat kiszolgálóparaméterekre cserélte, amelyek az Azure Portalon vagy az Azure CLI használatával érhetők el.
Kiszolgálóparaméterek megtekintése vagy módosítása az Azure Portalon:
- Navigáljon az Azure Database for PostgreSQL szerveréhez.
- A bal oldali menü Beállítások területén válassza a Kiszolgálóparaméterek lehetőséget.
- A keresősáv használatával szűrheti a paraméterek listáját, vagy kiválaszthatja a kívánt oldalszámot.
Tárolás – Az Azure Database for PostgreSQL kezeli az Ön számára az adattárolást, és kiszolgálószinten van kiépítve. Akár a Burstable, az Általános célú vagy a Memóriaoptimalizált számítási szintet választja, akár 32 TB tárterületet is használhat. A tároló kiépítéséhez keresse meg az Azure Database for PostgreSQL-kiszolgálót, és az Áttekintés szakaszban válassza ki a konfigurációt. Megjelenik a Compute + Storage szakasz. A Tárterület és a Tárterület méret (GB-ban) területen a csúszkával válassza ki a kiépíteni kívánt tárterület mennyiségét.
A kiosztott tárterület határozza meg az Azure Database for PostgreSQL-kiszolgáló számára elérhető I/O-kapacitást. Az I/O-használatot az Azure Portalon vagy az Azure CLI-parancsokkal figyelheti. A figyelendő metrikák a tárterületkorlát, a tárolási százalék, a felhasznált tárterület és az I/O százalék.
Feljegyzés
Az Azure Database for PostgreSQL-kiszolgáló létrehozása után növelheti a tárterület mennyiségét, de nem csökkentheti a tárterület mennyiségét.
Tablespaces – A PostgreSQL helyszíni implementációjával olyan táblatereket hozhat létre, amelyek a PGDATA nevű fő tárterülethez kapcsolódnak a pg_tblspc alkönyvtár használatával. Az Azure Database for PostgreSQL nem támogatja a táblatereket: minden tábla a fő tárolóterületen jön létre.
Rendszerkatalógusok – A PostgreSQL számos olyan rendszertáblát és nézetet tartalmaz, amelyek adatbázis-objektumok adatait tárolják. Például pg_database egy kiszolgálón lévő összes adatbázist visszaadja, és pg_class táblákra vonatkozó statisztikákat tárol.
Feljegyzés
Az Azure Database for PostgreSQL néhány, de nem minden rendszerkatalógus elérését teszi lehetővé.
Bővítmények – A PostgreSQL számos bővítményt támogat, amelyek kibővítik az adatbázismotor alapvető funkcióit. Ezek a bővítmények a PostgreSQL Extensions Network (PGXN) nevű adattárban érhetők el.
PostgreSQL-bővítmény használatához telepíteni kell az adatbázisba. Bővítmény telepítéséhez futtassa a CREATE EXTENSION parancsot a psql-eszközről a bővítmény adatbázisba való betöltéséhez. Példa:
SELECT create_extension('postgis');
Ha meg szeretné tudni, hogy mely bővítmények támogatják az Azure Database for PostgreSQL-t, futtassa a következő lekérdezést:
SELECT * FROM pg_available_extensions;
Minden Azure Database for PostgreSQL-kiszolgáló tartalmazza a pg_stat_statements bővítményt. Ez a bővítmény már telepítve van az SQL-utasítások végrehajtási statisztikáinak nyomon követéséhez. A pg_stat_statements.track kiszolgálóparaméter határozza meg, hogy a bővítmény milyen utasításokat számol. A következő lehetőségek közül választhat:
- Top – az ügyfelek által közvetlenül kiadott összes utasítást nyomon követi (alapértelmezett).
- Nem követünk nyomon nyilatkozatokat.
- Mind – nyomon követi az összes utasítást, beleértve a beágyazott utasításokat és a függvények által meghívott utasításokat.
Feljegyzés
A kiszolgálón teljesítménybeli többletterhelés van az egyes SQL-utasítások naplózásához. Ha nem használja aktívan a pg_stat_statements-t, állítsa ezt a paramétert nincs-re. Azt is vegye figyelembe, hogy egyes külső figyelési szolgáltatások pg_stat_statements támaszkodhatnak.
Lekérdezésoptimalizáló – A PostgreSQL költségalapú lekérdezésoptimalizálási módszert használ. Az elemző ellenőrzi a lekérdezés szintaxisát, és elkülöníti a lekérdezést különböző részekre. Az elemző létrehoz egy elemzési fát, és átadja a lekérdezést az újraírónak, amely szabályokat alkalmaz a lekérdezésre. A tervező kitalálja a lekérdezés végrehajtásának legjobb módját a lekérdezés végrehajtása előtt.
Háttérfolyamatok – PostgreSQL-folyamat-tranzakció-alapú modell. Amikor egy új felhasználó csatlakozik, a PostgreSQL hitelesíti a felhasználót, és létrehoz egy háttérkiszolgálói folyamatot a kapcsolat kezeléséhez. Az ügyfél csak a lekérdezések elküldésekor és a lekérdezések eredményének fogadásakor kezeli a kiszolgálói folyamatot.