Johdatus Azure-tietokantaan PostgreSQL:lle

Valmis

PostgreSQL:n Azure-tietokanta on saatavilla monipalvelinversioissa.

Tietokantakehittäjänä, jolla on monen vuoden kokemus paikallisten PostgreSQL-asennusten suorittamisesta ja hallinnasta, haluat tutkia, miten Azure Database for PostgreSQL tukee ja skaalaa sen ominaisuuksia.

Tässä osiossa tutustut Azure Database for PostgreSQL:n hinnoitteluun, versiotukeen, replikointiin ja skaalaukseen.

PostgreSQL:n Azure-tietokanta

PostgreSQL:n Azure-tietokanta on PostgreSQL-yhteisöversion toteutus. Palvelu tarjoaa tyypillisten PostgreSQL-järjestelmien käyttämiä yleisiä ominaisuuksia, kuten maantieteellisen sijainnin tuen ja täystekstihaun.

Microsoft on mukauttanut PostgreSQL:n Azure-ympäristöä varten, ja se on integroitu tiiviisti moniin Azure-palveluihin. PostgreSQL-palvelun Azure-tietokanta on täysin Microsoftin hallitsema. Microsoft käsittelee ohjelmiston päivityksiä ja korjaustiedostoja ja tarjoaa palvelutasosopimuksen 99,99% käytettävyyden. Tämä tarkoittaa sitä, että voit keskittyä vain käynnissäviin tietokantoihin ja sovelluksiin palvelun avulla.

Voit ottaa käyttöön useita tietokantoja kussakin tämän palvelun esiintymässä.

Hinnoittelutasot

Kun luot Azure-tietokannan esiintymän PostgreSQL-palvelulle, määrität käsittely- ja tallennusresurssit, jotka haluat varata, valitsemalla hinnoittelutason. Hinnoittelutaso yhdistää virtuaalisten suoritinytimien määrän, käytettävissä olevan tallennustilan määrän ja erilaiset varmuuskopiointivaihtoehdot. Mitä enemmän resursseja varaat, sitä suuremmat kustannukset.

PostgreSQL-palvelun Azure-tietokanta käyttää tallennustilaa tietokantatiedostojen, tilapäisten tiedostojen, tapahtumalokien ja palvelinlokien tallentamiseen. Voit halutessasi lisätä käytettävissä olevaa tallennustilaa, kun siirryt lähelle nykyistä kapasiteettia. Jos et valitse tätä vaihtoehtoa, tallennustila loppuu palvelimet toimivat edelleen, mutta ne toimivat vain luku -tilassa.

Azure-portaali ryhmittelee hinnoittelutasot kolmeen laajaan valikoimaan:

  • Basic, joka sopii pienille järjestelmille ja kehitysympäristöille, mutta jonka suorituskyky vaihtelee I/O:n mukaan.
  • General Purpose, joka tarjoaa ennustettavan suorituskyvyn jopa 6 000 IOPS:iin, riippuen suoritinytimien määrästä ja käytettävissä olevasta tallennustilasta.
  • muistin optimoidusta, joka käyttää jopa 32 muistioptimoitua näennäissuorittimen ydintä ja tarjoaa myös jopa 6 000 IOPS:n ennustettavan suorituskyvyn.

Microsoftilla on esikatselussa myös Large Storage -asetus, joka voi valmistella jopa 16 Tt tallennustilaa ja tukea jopa 20 000 IOPS-salausta.

Voit hienosäätää tarvitsemasi suoritinytimien ja tallennustilan määrää. Voit skaalata käsittelyresursseja ylös ja alas – et voi skaalata tallennustilaa vain ylöspäin – ja vaihtaa yleisen tarkoituksen ja muistin optimoitujen hinnoittelutasojen välillä tarpeen mukaan tietokantojen luomisen jälkeen. Maksat vain siitä, mitä tarvitset.

Kuva, jossa näkyvät hinnoittelutasot Azure-portaalin

Huomautus

Jos muutat suoritinytimien määrää, Azure luo uuden palvelimen, jossa on tämä käsittelyvaraus. Kun palvelin on käynnissä, asiakasyhteydet vaihdetaan uuteen palvelimeen. Tämä kytkin voi kestää jopa minuutin. Tämän välin aikana ei voi tehdä uusia yhteyksiä ja kaikki lennonsisäiset tapahtumat peruutetaan.

Jos muutat vain varmuuskopiointiasetusten tallennuskokoa, palvelussa ei ole keskeytystä.

Hinnoittelutaso ja siihen varatut käsittelyresurssit määrittävät palvelun tukemien samanaikaisten yhteyksien enimmäismäärän. Jos valitset esimerkiksi Yleiskäyttö-hinnoittelutason ja varaat 64 virtuaaliydintä, palvelu tukee 1900 samanaikaista yhteyttä. Perustaso, jossa on kaksi virtuaaliydintä, käsittelee jopa 100 samanaikaista yhteyttä. Azure itse vaatii viisi näistä yhteyksistä palvelimen valvontaan. Jos ylität käytettävissä olevien yhteyksien määrän, asiakkaat saavat virheen FATAL: anteeksi, liian moni asiakasjo .

Hinnat voivat muuttua. Saat uusimmat tiedot Azure Database for PostgreSQL -hinnoittelusivulta.

Palvelinparametrit

PostgreSQL:n paikallisessa asennuksessa määrität palvelimen määritysparametrit postgresql.conf--tiedostoon. Azure Database for PostgreSQL:n avulla voit muokata määritysparametreja Server -parametrien sivulla. Kaikki PostgreSQL-asennuksen paikallisen asennuksen parametrit eivät ole olennaisia Azure Database for PostgreSQL:n kanssa, joten Palvelinparametrit-sivulla luetellaan vain ne parametrit, jotka soveltuvat Azurelle.

kuva, jossa palvelimen parametrisivu näkyy Azure-portaalin

Dynaamiset merkityt parametrien muutokset tulevat voimaan heti. Staattiset parametrit edellyttävät, että palvelin käynnistetään uudelleen. Käynnistä palvelin uudelleen portaalin Yleiskatsaus- sivun Restart -painikkeella:

kuva, jossa näkyy Azure-portaalin Yleiskatsaus-sivu ja Käynnistä uudelleen -painike korostettuna

Suuri käytettävyys

PostgreSQL:n Azure-tietokanta on suuren käytettävyyden palvelu. Se sisältää sisäänrakennettujen virheiden tunnistuksen ja vikasietoisuuden mekanismit. Jos käsittelysolmu pysähtyy laitteisto- tai ohjelmisto-ongelman vuoksi, uusi solmu vaihdetaan sen tilalle. Kaikki tällä hetkellä tätä solmua käyttävät yhteydet pudotetaan, mutta ne avataan automaattisesti uudelle solmulle. Epäonnistuneen solmun suorittamat tapahtumat peruutetaan. Tästä syystä sinun on aina varmistettava, että asiakkaat on määritetty havaitsemaan epäonnistuneet toiminnot ja yritä niitä uudelleen.

Tuetut PostgreSQL-versiot

PostgreSQL-palvelun Azure-tietokanta tukee tällä hetkellä PostgreSQL-versiota 11, takaisin versioon 9.5. Voit määrittää, mitä PostgreSQL-versiota käytetään, kun luot palvelun esiintymän. Microsoft pyrkii päivittämään palvelua, kun PostgreSQL:n uusia versioita tulee saataville, ja se säilyttää yhteensopivuuden kahden edellisen merkittävän version kanssa.

Azure hallitsee automaattisesti tietokantojen päivityksiä postgreSQL:n pienten versioiden välillä, mutta ei merkittävien versioiden välillä. Jos sinulla on esimerkiksi tietokanta, joka käyttää PostgreSQL-versiota 10, Azure voi päivittää tietokannan automaattisesti versioon 10.1. Jos haluat vaihtaa versioon 11, sinun on vietävä tiedot nykyisen palveluesiintymän tietokannoista, luotava uusi Esiintymä Azure-tietokannasta PostgreSQL-palvelulle ja tuotava tietosi tähän uuteen esiintymään.

Koordinaattori ja työntekijäsolmut

Tiedot sirpaleistetaan ja jaetaan työntekijäsolmujen välillä. Koordinaattorin kyselymoduuli voi rinnakkaistaa monimutkaiset kyselyt ja ohjata käsittelyn kohti asianmukaisia työntekijäsolmuja. Työntekijäsolmut valitaan sen mukaan, minkä mukaan sirpaleet pitävät käsiteltävänä olevia tietoja. Tämän jälkeen koordinaattori kerää tulokset työntekijän solmuista ennen niiden lähettämistä takaisin asiakkaalle. Suoraviivaisempia kyselyitä voidaan tehdä käyttämällä vain yhtä työntekijäsolmua. Asiakkaat ovat myös yhteydessä koordinaattoriin, eivätkä he koskaan ole suoraan yhteydessä työntekijäsolmuon.

Voit tarvittaessa skaalata työntekijöiden solmujen määrää ylös ja alas palvelussasi.

Tietojen jakelu

Voit jakaa tietoja kaikissa työntekijäsolmuissa luomalla hajautettuja taulukoita. Jaettu taulukko jaetaan sirpaleisiin, ja jokainen sirpale varataan työntekijäsolmulle tallennukseen. Voit määrittää, miten tiedot jaetaan osiin määrittämällä sarake jakauman . Tiedot sirpaleina tämän sarakkeen tietojen arvojen perusteella. Kun suunnittelet hajautetun taulukon, on tärkeää valita jakelusarake huolellisesti. Käytä saraketta, jossa on suuri määrä erillisiä arvoja ja jota käytetään yleensä liittyvien rivien ryhmittelyyn. Esimerkiksi verkkokauppajärjestelmän taulukossa, joka tallentaa tietoja asiakkaiden tilauksista, asiakastunnus voi olla kohtuullinen jakelusarake. Kaikki tietyn asiakkaan tilaukset pidetään samassa sirpaleessa, mutta kaikkien asiakkaiden tilaukset jaetaan sirpaleille.

Voit myös luoda viitetietoja taulukoista. Nämä taulukot sisältävät hakutietoja, kuten kaupunkien nimiä tai tilakoodeja. Viitetaulukko replikoidaan kokonaisuudessaan kaikille työntekijäsolmuille. Viitetaulukon tietojen on oltava suhteellisen staattisia. Jokainen muutos edellyttää taulukon jokaisen kopion päivittämistä.

Voit myös luoda paikallisia taulukoita. Paikallista taulukkoa ei ole sirpaleina, mutta se on tallennettu koordinaattorisolmuun. Käytä paikallisia taulukoita sellaisten pienten taulukoiden pitämiseen, joiden liitokset eivät todennäköisesti edellytä tietoja. Esimerkkejä ovat käyttäjien nimet ja heidän kirjautumistietonsa.

Replikoi tiedot Azure-tietokannassa PostgreSQL:ää varten

Vain luku -replikot ovat hyödyllisiä luku-intensiivisten kuormitusten käsittelyssä. Asiakasyhteydet voidaan jakaa replikoiden kesken, mikä helpottaa yksittäisen palvelun esiintymän taakkaa. Jos asiakkaasi sijaitsevat eri alueilla maailmassa, käytät alueiden välistä replikointia tietojen sijoittamiseen lähelle kutakin asiakasjoukkoa ja lyhentämään viivettä.

Voit myös käyttää replikoita osana varautumissuunnitelmaa järjestelmäpalautukseen. Jos pääpalvelin ei enää toimi, saatat silti pystyä yhdistämään replikaan.

Huomautus

Jos ensisijainen katoaa tai poistetaan, kaikki vain luku -kopiot muuttuvat luku- ja kirjoituspalvelimiksi. Nämä palvelimet ovat kuitenkin toisistaan riippumattomia, joten yhden palvelimen tietoihin tehtyjä muutoksia ei kopioida jäljellä olevissa palvelimiin.

Replikan muodostaminen

Vain luku -replika sisältää kopion alkuperäisellä palvelimella olevista tietokannoista – jota kutsutaan ensisijaiseksi. Käytät Azure-portaalia tai CLI:tä luodaksesi alkuperäisestä kopion.

kuva, jossa näkyy PostgreSQL-palvelun Azure-tietokannan replikointisivu

Kun luot vain luku -replikan, Azure luo uuden Azure Database for PostgreSQL -palvelun instanssin ja kopioi tietokannat ensisijaiselta palvelimelta uudelle palvelimelle. Replika suoritetaan vain luku -tilassa. Kaikki yritykset muokata tietoja epäonnistuvat.

Replikoinnin viive

Replikaatio ei ole synkronista, ja kaikki muutokset, jotka tehdään pääpalvelimen dataan, voivat kestää jonkin aikaa ennen kuin ne näkyvät replikoissa. Asiakassovellusten, jotka muodostavat yhteyden replikoihin, on pystyttävä selviytymään tästä mahdollisesta yhtenäisyyden tasosta. Azure Monitorin avulla voit seurata aikaviivettä replikoinnissa käyttämällä enimmäisviivettä replikoinnissa ja Replica Lag -mittareissa.

Hallinta ja seuranta

Voit käyttää tuttuja työkaluja, kuten pgAdmin- yhteyden muodostamiseen Azure-tietokantaan PostgreSQL:lle tietokantojen hallintaa ja valvontaa varten. Jotkin palvelimeen keskittyvät toiminnot, kuten palvelimen varmuuskopiointi ja palauttaminen, eivät kuitenkaan ole käytettävissä, koska Microsoft hallitsee ja ylläpitää palvelinta.

kuva, jossa näkyy Azure Database for PostgreSQL - yhdistetty pgAdmin-työkalu

Azure-työkalut Azure-tietokannan seurantaan PostgreSQL:ää varten

Azure tarjoaa laajan valikoiman palveluja, joita käytät palvelimen ja tietokannan suorituskyvyn valvontaan ja ongelmien vianmääritykseen. Näiden palveluiden avulla voit tarkastella, miten PostgreSQL käyttää varaamiasi Azure-resursseja. Näiden tietojen avulla voit arvioida, onko sinun skaalattava järjestelmääsi, muokattava tietokantojen taulukoiden ja indeksien rakennetta ja visualisoitava suorituksenaikaisia tilastoja ja muita tapahtumia. Saatavilla olevat palvelut ovat seuraavat:

  • Azure Monitorin . PostgreSQL:n Azure-tietokanta tarjoaa mittareita, joiden avulla voit seurata sellaisia kohteita kuin suoritin ja tallennustilan käyttöaste, I/O-hinnat, muistin käyttöaste, aktiivisten yhteyksien määrä ja replikoinnin viive:

    kuva, jossa näkyy Azure Monitor ja Azure Database for PostgreSQL -

  • Palvelimen lokit. Azure tuo lokit käytettäväksi kullekin PostgreSQL-palvelimelle. Voit ladata ne Azure-portaalista:

    kuva, jossa näkyvät Azure-tietokannan esiintymän palvelinlokit PostgreSQL-palvelua varten

  • Kyselysäilön ja Kyselyn suorituskyvyn merkitykselliset tiedot. PostgreSQL:n Azure-tietokanta tallentaa palvelimen tietokantoja vasten suoritettavien kyselyiden tiedot ja tallentaa ne rakenteen query_store tietokantaan nimeltä azure_sys. Kyselyt query_store.qs_view- näkymässä, jotta näet nämä tiedot. Oletusarvoisesti PostgreSQL:n Azure-tietokanta ei sieppaa mitään kyselytietoja, koska se aiheuttaa pienen kuormituksen, mutta voit ottaa seurannan käyttöön määrittämällä pg_qs.query_capture_mode server-ominaisuuden arvoksi ALL tai TOP.

    kuva, jossa näkyy Azure Database for PostgreSQL -tietokannan palvelinpalvelimen parametrisivu

    Voit myös määrittää kyselysäilön tallentamaan tietoja kyselyistä, jotka kuluttavat aikaa odottaen. Kyselyn on ehkä odotettava, kun toinen kysely julkaisee lukituksen taulukkoon, tai koska kysely suorittaa paljon I/O-muistia tai koska muisti on loppumassa. Näet nämä tiedot query_store.runtime_stats_view--näkymässä.

    Jos haluat visualisoida nämä tilastotiedot SQL-lausekkeiden käyttämisen sijaan, käytä Query Performance Insightia Azure-portaalissa:

    kuva, jossa näkyy Kyselyn suorituskyvyn merkitykselliset tiedot

  • Suorituskykyä koskevat suositukset. Myös Azure-portaalissa käytettävissä oleva Performance Recommendations -apuohjelma tutkii kyselyjä, joita sovelluksesi käyttävät. Se tarkastelee myös tietokannan rakenteita ja suosittelee tietojen järjestämistä ja sitä, kannattaako sinun harkita indeksien lisäämistä tai poistamista.

Asiakasyhteydet

PostgreSQL:n Azure-tietokanta toimii palomuurin takana. Jotta voit käyttää palveluasi ja tietokantaasi, sinun on lisättävä palomuurisääntö IP-osoitealueille, joista asiakkaasi muodostavat yhteyden. Jos haluat käyttää palvelua Azuresta, kuten Azure-sovelluspalveluita käyttävää sovellusta, sinun on otettava käyttöön myös Azure-palvelut.

Palomuurin määrittäminen

Yksinkertaisin tapa määrittää palomuuri on käyttää palvelusi yhteyden suojauksen asetuksia Azure-portaalissa. Lisää sääntö kullekin asiakkaan IP-osoitealueelle. Tämän sivun avulla voit myös pakottaa palvelusi SSL-yhteydet.

kuva, jossa näkyy PostgreSQL- :n Azure-tietokannan palomuurimääritys

Lisää pöytätietokoneen IP-osoite napsauttamalla työkalurivin kohtaa Lisää asiakkaan IP-.

Jos olet määrittänyt vain luku -replikot, sinun on lisättävä palomuurisääntö kuhunkin, jotta ne ovat asiakkaiden käytettävissä.

Asiakasyhteyskirjastot

Jos kirjoitat omia asiakassovelluksia, sinun on käytettävä soveltuvaa tietokantaohjaimta Yhteyden muodostamiseksi PostgreSQL-tietokantaan. Monet näistä kirjastoista ovat ohjelmointikielestä riippuvaisia. Niitä ylläpitävät riippumattomat kolmannet osapuolet. PostgreSQL:n Azure-tietokanta tukee asiakaskirjastoja Pythonille, PHP:lle, Node.js, Javalle, Rubyille, Golle, C#:lle (.NET), ODBC:lle, C:lle ja C++:lle.

Asiakkaan uudelleenyritysten logiikka

Kuten aiemmin mainittiin, jotkin tapahtumat– esimerkiksi vikasietoisuus suuren käytettävyyden elpymisen aikana ja suoritinresurssien skaalaaminen – voivat aiheuttaa lyhyen menetykset yhdistettävyydessä. Meneillään olevat tapahtumat peruutetaan. PostgreSQL:n Azure-tietokanta ohjaa yhdistetyn asiakkaan automaattisesti toimivaan solmuun, mutta asiakkaan tuolloin suorittamat toiminnot palauttavat virheen. Tätä esiintymää tulee käsitellä tilapäisenä poikkeuksena. Sovelluskoodisi tulee olla valmis havaitsemaan nämä poikkeukset ja yrittää niitä uudelleen.

PostgreSQL:n ominaisuuksia tuetaan PostgreSQL:n Azure-tietokannassa

PostgreSQL:n Azure-tietokanta tukee useimpia ominaisuuksia, joita PostgreSQL-tietokannat käyttävät yleisesti, mutta tähän liittyy joitakin poikkeuksia. Jos tarvitset ei-tuetun ominaisuuden, sinun on joko muokattava tietokantaa ja sovelluskoodia uudelleen tämän riippuvuuden poistamiseksi tai harkittava PostgreSQL:n suorittamista näennäiskoneessa. Jälkimmäisessä tapauksessa sinun on otettava vastuu palvelimen hallinnasta ja ylläpidosta.

PostgreSQL:n Azure-tietokannan tuetut laajennukset

Suuri osa PostgreSQL-toiminnoista koostuu laajennuksista. Laajennukset ovat palvelimeen tallennettuja SQL-objektien ja koodin paketteja – ne voidaan ladata tietokantaan CREATE EXTENSION -komennolla. PostgreSQL:n Azure-tietokanta sisältää tällä hetkellä monia yleisesti käytettyjä laajennuksia seuraaviin:

  • Tietotyypit
  • Funktiot
  • Tekstihaku
  • Indeksit (kukinta, btree_gist ja btree_gin)
  • plpgsql-kieli
  • PostGIS
  • Useita hallintafunktioita

Voit yhdistää yhden PostgreSQL-palvelimen toiseen dblink-- ja postgres_fdw-paketeilla. Näin yhden palvelimen koodi voi käyttää toisessa palvelimessa olevia tietoja. PostgreSQL:n Azure-tietokannassa voit muodostaa yhteyden vain Azure Database for PostgreSQL:n avulla luotujen palvelimien välillä. Et voi luoda lähteviä yhteyksiä muualla, kuten paikallisesti tai näennäiskoneessa isännöityihin PostgreSQL-palvelimiin.

Huomautus

Tuettujen laajennusten luetteloa tarkastellaan jatkuvasti, ja sitä voidaan muuttaa. Luot luettelon laajennuksista, joita seuraava kysely tukee. Huomaa, että et voi luoda omia mukautettuja laajennuksia ja ladata niitä Azure-tietokantaan PostgreSQL:ää varten:

SELECT * FROM pg_available_extensions;

PostgreSQL:n Azure-tietokanta sisältää valinnaisena laajennuksena TimescaleDB -tietokannan. Tämä tietokanta sisältää aikakeskeisiä analyysifunktioita ja muita ominaisuuksia, jotka tukevat aikasarjakuormituksia. Jos haluat käyttää tätä tietokantaa, valitse TIMESCALEDB -vaihtoehto shared_preload_libraries-palvelinparametrissa ja käynnistä sitten palvelin uudelleen.

Tallennettujen toimintosarjojen ja käynnistimien kielituki

Muiden kielten tuki kuin plpgsql edellyttää yleensä, että käännät tallennetun toimintosarjan tai käynnistät koodin erikseen ja lataat käännetyn kirjaston palvelimeen. Pääasiassa tietoturvasyistä et voi tehdä tätä Azure Database for PostgreSQL:lle. Jos koodi on kirjoitettu muilla kielillä, sinun täytyy siirtää se plpgsql-tiedostoon.