PostgreSQL

Last modified by Vesa Jolkkonen on 2025/04/07 11:31

Tietotekniikkakeskuksella on yhteiskäyttöinen PostgreSQL-klusteri sekä testikantoja varten yhden jäsenen testipalvelin.

Tietokannan versio

Tällä hetkellä käytössä PostgreSQL versio 14 . Huomaa, että esimerkiksi java-connectorin pitää olla tarpeeksi tuoretta versiota, että yhteys onnistuu. Palvelu vaatii asiakasohjelmistolta scram-sha-256 -tuen.

Uuden tietokannan tilaus

Voit tilata tietokannan yhteiskäyttöiseen PostgreSQL:n osoitteesta: atk-tietokannat@helsinki.fi . Ilmoita tilauksessa ainakin seuraavat asiat:

  1. Kannan/kantatunnuksen nimi (esimerkiksi:  sovellusx ) sekä halutaanko se tuotantoklusteriin vai testipalvelimeen
  2. ip-osoite / ip-osoiteavaruus, josta kantaa halutaan lähestyä. Tunnettuja avaruuksia on tällä hetkellä: VDI ja OpenShift, jonka voi tässä mainita
  3. Kannan ylläpitäjä (nimi ja sähköpostiosoite)

Tietokantaan yhdistäminen

Yhdistämisen rajoitukset

Voit yhdistää tietokantaan vain siitä ip-osoitteesta tai ip-osoiteavaruudesta, jonka olet maininnut tietokannan tilauksen yhteydessä. Jos olet pyytänyt ip-avaruudeksi esimerkiksi Openshiftin, voit yhdistää tietokantaan ainoastaan Openshiftissä toimivien sovellusten kautta.

Yhteysosoitteen muoto

Tietokannan yhteysosoite on muotoa:

postgres://<user>:<password>@<db-host>:5432/<database-name>?ssl=true

Yhteysosoitteen määrittämisessä tulee huomioida seuraavat asiat:

  • <user> on usein sama arvo kuin <database-name>. Oikea arvo on yleensä mainittu vahvistussähköpostissa, jonka saat tilatessasi tietokannan
  • <database-name> on se nimi, jonka olet pyytänyt tietokannallesi tilauksen yhteydessä
  • <db-host> on tuotannossa possu.it.helsinki.fi ja testipuolella possu-test.it.helsinki.fi
  • tietokanta kuuntelee porttia 5432
  • Tietokantayhteys vaatii ssl-yhteyden, eli yhteysosoitteessa tulee olla mukana parametri ssl=true

Node.js-esimerkkejä yhteysosoitteista

Hyvä ohje postgres-tietokannan käyttämiseen node-sovelluksessa löytyy node-postgres-ohjeesta: https://node-postgres.com/features/connecting  Helpoin tapa yhdistää tietokantaan on käyttää yhdistämiseen Connection URIa, joka määrittelee koko yhteysosoitteen.

Esimerkki tuotantopuolen yhteysosoitteesta:

postgres://exampleapp:examplepassword1234@possu.it.helsinki.fi:5432/exampleapp?ssl=true

Esimerkki testipuolen yhteysosoitteesta:

postgres://exampleapp:examplepassword1234@possu-test.it.helsinki.fi:5432/exampleapp?ssl=true

Java-esimerkkejä yhteysosoitteista

Jos sovelluksesi käyttää Java Database Connectivity -rajapintaa tietokantayhteyden hallintaan, tulee yhteysosoitteen alussa olla määre jdbc. Yhteysosoitteet ovat muuten samanmuotoisia kuin Node.js-esimerkeissä, mutta yhteysosoitteen alku on muotoa:

jdbc:postgresql://...

Noodien määrittäminen yhteysosoitteessa

Yhteiskäyttöinen tietokanta toimii useammalla noodilla. Jos jostain syystä haluat määritellä käytettävät noodit yhteysosoitteessa, se onnistuu seuraavasti:

jdbc:postgresql://possu-1-21.it.helsinki.fi:5432,possu-2-21.it.helsinki.fi:5432/KANTA?ssl=true&targetServerType=primary

Huomaa, että parametri targetServerType=primary huolehtii siitä, että yhteys muodostetaan kirjoitusoperaatiot sallivaan noodiin. Ilman tätä parametria yhteys saattaa joskus muodostua noodiin, joka sallii vain lukuoperaatiot. Tämä tulee huomioida vain tapauksessa, jossa sallitut noodit on määritelty tämän esimerkin osoittamalla tavalla.

Kuukausittaiset huoltokatkot sekä vaikutus yhteyksiin

Tuotantoklusterissa on huoltokatko joka kuukauden 2. keskiviikko. Katkon aikana on mahdollista, että jokin yhteys ei onnistu erittäin pieneen hetkeen.

Testipalvelimessa on huoltokatko joka kuukauden 2. tiistai 10:00 - 12:00 . Testipalvelimeen tulleet yhteydet katkeavat enintään viideksi minuutiksi palvelimen uudelleenkäynnistymisen aikana.

Varmuuskopiointi

Tietokannoista otetaan päivittäin varmuuskopioinnit nauhalle. Palvelimellla varmuuskopioita säilytetään 7 päivää (nopea palautus tarvittaessa), nauhoilla yksi kuukausi.

Kun tarvitset palautusta tiettyyn päivään, ota yhteyttä atk-tietokannat@helsinki.fi palveluosoitteeseen.