A PostgreSQL architektúrája

Befejezett

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.

Képernyőkép a PostgreSQL-bővítményekről és -nyelvekről.

Ü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:

  1. Navigáljon az Azure Database for PostgreSQL szerveréhez.
  2. A bal oldali menü Beállítások területén válassza a Kiszolgálóparaméterek lehetőséget.
  3. 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.