PostgreSQL-arkkitehtuurin ymmärtäminen

Valmis

PostgreSQL on asiakas-/palvelin-relaatiotietokannan hallintajärjestelmä (RDMS). PostgreSQL tukee myös monia erilaisia laajennuksia, kuten Citus-laajennusta Azure Cosmos DB for PostgreSQL -versiossa. Kun laajennus on ladattu tietokantaan, se toimii kuin mikä tahansa sisäinen ominaisuus.

PostgreSQL:ssä on myös oma kyselykieli nimeltä pgsql. Lisäksi PostgreSQL tukee menettelykieliä, kuten Ruby on Rails.

Näyttökuva, joka näyttää PostgreSQL-laajennukset ja -kielet.

Asiakas-/palvelinarkkitehtuuri

PostgreSQL perustuu asiakas-/palvelinarkkitehtuuriin. Palvelin tallentaa, hallitsee ja palauttaa tietoja asiakasohjelmiin. Asiakasohjelmat pyytävät tietoja pgSQL:n avulla tai jonkin PostgreSQL:n tukeman menettelykielen, kuten PL/pgSQL:n, avulla.

PostgreSQL-istunto koostuu kolmesta osasta:

  • Postimestari
  • Asiakassovellus
  • Palvelin

Postinhoitaja

Postmaster on PostgreSQL-palvelimen valvontajärjestelmänvalvojan daemon-prosessi. Postmaster daemon hallitsee viestintää eri palvelinprosesseissa, mukaan lukien palvelimen alustaminen, palvelimen sulkeminen, yhteyspyyntöjen käsittely ja muiden taustaprosessien suorittaminen. PostgreSQL:n Azure-tietokannassa sinulla ei ole käyttöoikeutta tiedostojärjestelmään tai Postmaster-prosessiin.

Asiakassovellukset

Asiakkaat suorittavat kyselyitä ja käsittelevät tietokantoja Azure Database for PostgreSQL -palvelimessa. Kyselyjen suorittamiseen tarvitset asiakastyökalun, kuten Azure Data Studion, DBeaverin, pgAdminin tai psql:n. Tutustut asiakastyökaluihin seuraavassa moduulissa.

Palvelinprosessit

Cluster – yksittäinen PostgreSQL-palvelin voi isännöidä useita käyttäjätietokantoja. PostgreSQL viittaa tähän tietokantakokoelmaan klusterina,. Kumpikin tietokanta on erillinen tietokannasta, ja käyttäjät ja sovellukset ovat vuorovaikutuksessa yksittäisen tietokannan kanssa. Käyttäjät luodaan klusteri- tai palvelintasolla.

Näiden tietokantojen tiedot tallennetaan klusterin tietohakemistoon nimeltä PGDATA. PGDATA -tietohakemisto sisältää tiedoston, joka sisältää suoritettavan PostgreSQL-version, pg_tblspc joka sisältää linkkejä taulukkoihin ja pg_xlog jotka sisältävät edessä olevan lokitiedoston.

Muistiinpano

PostgreSQL:n Azure-tietokannat on palvelu, joka hallitsee tallennustilaa ja pohjana olevaa tiedostojärjestelmää. Tämän palvelimen käyttäjänä sinulla ei ole suoraa pääsyä PGDATA-hakemistoon tai sen alihakemistoihin.

Luomiesi tietokantojen lisäksi järjestelmätietokantoja on kolme:

  • jälkivihreät – oletustietokanta. Kun palvelin on luonut sen, muodosta yhteys postgres-tietokantaan.
  • azure_maintenance – tietokanta, joka hallitsee palveluprosesseja. Sinulla ei ole suoraa pääsyä tähän tietokantaan.
  • azure_sys – Kyselysäilö-tietokanta. Et saa muokata azure_sys tietokantaa tai sen rakenteet. Jos muutat mitään azure_sys estää kyselysäilön ja muiden suorituskykyominaisuuksien toiminnan oikein.

Rakenne – Rakenne on tietokantaobjektien nimetty ryhmittely. Suuret tietokannat, joissa on useita objekteja, hyötyvät objektien järjestämisestä rakenteet. Esimerkiksi luomalla rakenteen myyntiin liittyville objekteille ja rakenteen asiakassietäville objekteille, on helpompi löytää oikea objekti.

Server -parametrien – PostgreSQL:ssä on useita määritystiedostoja, jotka määrittävät, miten tietokantamoduulin tulee toimia. PostgreSQL:n päämääritystiedostoa kutsutaan nimellä postgresql.conf.

PostgreSQL:n Azure-tietokanta korvasi nämä määritystiedostot Server -parametreilla, joita voidaan käyttää Azure-portaalin kautta tai Azure-komentorivikäyttöliittymän avulla.

Palvelinparametrien tarkasteleminen tai muuttaminen Azure-portaalissa:

  1. Siirry PostgreSQL-palvelimen Azure-tietokantaan.
  2. Valitse vasemmasta valikosta asetukset kohdasta Palvelinparametrit .
  3. Voit suodattaa parametriluettelon hakupalkin avulla tai valita tarvitsemasi sivunumeron.

-tallennustilan – Azure Database for PostgreSQL hallitsee tallennustilaa puolestasi, ja se valmistellaan palvelintasolla. Voit käyttää enintään 32 Tt tallennustilaa riippumatta siitä, valitsetko Purskettava-, Yleinen tarkoitus- tai Muistioptimoidun käsittelytason. Valmistelutallennustilaa varten siirry Azure Database for PostgreSQL -palvelimeen ja valitse Overview -osiosta Configuration -. Esiin tulee Compute + Storage -osa. Valitse Tallennustilan ja Tallennustilan koko (Gigatavuina) -liukusäätimellä sen tallennustilan määrä, jonka haluat valmistella.

Valmistelemiesi tallennustilan määrä määrittää I/O-kapasiteetin, joka on käytettävissä Azure-tietokannassa PostgreSQL-palvelimelle. Voit valvoa I/O-kulutustasi Azure-portaalissa tai AzureN komentorivikäyttöliittymän komentojen avulla. Valvottavat arvot ovat tallennustilan raja, tallennusprosentti, käytetty tallennustila ja IO-prosentti.

Muistiinpano

Voit lisätä tallennustilan määrää sen jälkeen, kun olet luonut Azure-tietokannan PostgreSQL-palvelimelle, mutta et voi pienentää tallennustilan määrää.

Tablespaces: PostgreSQL:n paikallisen toteutuksen avulla voit luoda taulukkotiloja, jotka on linkitetty PGDATA-pääsäilöön pg_tblspc-alihakemistoa käyttämällä. PostgreSQL:n Azure-tietokanta ei tue taulukkotiloja: kaikki taulukot luodaan pääsäilöalueella.

Järjestelmäluettelot – PostgreSQL sisältää useita järjestelmätaulukoita ja näkymiä, jotka tallentavat tietoja tietokantaobjekteista. esimerkiksi pg_database palauttaa palvelimen kaikki tietokannat ja pg_class tallentaa taulukoita koskevat tilastotiedot.

Muistiinpano

PostgreSQL:n Azure-tietokanta mahdollistaa joidenkin, mutta ei kaikkien järjestelmäluetteloiden käytön.

Extensions – PostgreSQL tukee useita laajennuksia, jotka laajentavat tietokantamoduulin ydintoimintoja. Nämä laajennukset tarjotaan PostgreSQL-laajennusverkko (PGXN) -nimisessä säilössä.

PostgreSQL-laajennuksen käyttäminen edellyttää, että se on asennettu tietokantaan. Jos haluat asentaa laajennuksen, lataa laajennus tietokantaan suorittamalla CREATE EXTENSION -komento psql-työkalusta. Esimerkiksi:

SELECT create_extension('postgis');

Saat selville, mitkä laajennukset tukevat Azure Database for PostgreSQL:ää, suorittamalla seuraavan kyselyn:

SELECT * FROM pg_available_extensions;

Kaikki PostgreSQL-palvelimien Azure-tietokanta sisältävät pg_stat_statements laajennuksen. Tämä laajennus on jo asennettu tarjoamaan toimintoja SQL-lausekkeiden suoritustilastojen seurantaa varten. Palvelimen parametri pg_stat_statements.track määrittää, mitkä lausekkeet laajennus laskee. Vaihtoehdot ovat:

  • Top – seuraa kaikkia asiakkaiden suoraan antamia tiliotteita (oletus).
  • Ei mitään – lausekkeita ei seurata.
  • All – seuraa kaikkia lausekkeita, mukaan lukien sisäkkäisiä lausekkeita ja funktioiden käynnistettyjä lausekkeita.

Muistiinpano

Palvelimella on suorituskykykuormitin kunkin SQL-lausekkeen kirjaamiseksi. Jos käytät pg_stat_statementsaktiivisesti, määritä tämän parametrin arvoksi Ei mitään. Huomaa myös, että jotkin kolmannen osapuolen valvontapalvelut saattavat luottaa pg_stat_statements.

Kyselyoptimointi- – PostgreSQL käyttää kustannuspohjaista kyselyn optimointimenetelmää. Jäsennys tarkistaa kyselyn syntaksin ja jakaa kyselyn eri osiin. Jäsennin luo jäsennyspuun ja välittää kyselyn uudelleenkirjoittajille, joka soveltaa kyselyyn sääntöjä. Suunnittelija päättelee parhaan tavan suorittaa kysely ennen kyselyn suoritusta.

taustaprosesseja – PostgreSQL-prosessi – tapahtumakohtainen malli. Kun uusi käyttäjä muodostaa yhteyden, PostgreSQL todentaa käyttäjän ja luo taustapalvelinprosessin yhteyden käsittelyä varten. Asiakas on vuorovaikutuksessa palvelinprosessin kanssa vain, kun se lähettää kyselyjä ja vastaanottaa kyselytuloksia.