Kodulehed
[369] - Andmebaasid II (IDU0230, ITI0207) (sügis 2018)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Avaleht
Nagu Moodles

Valik materjalidest
   Nädala materjalid
   Minu lemmikud

Vastuste vaatamine
Hinneteleht
Seisuga: 22.12.2018 12:46
Üldist
Materjalid
LisainfoMaterjalide kataloogid.
Värvilised mummud tähistavad hinnangulist kataloogide lugemise vajadust. Roheline - suurim, kollane - keskmine, punane või mummuta - väikseim
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / PostgreSQL

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Anonüümne:
PostgreSQL andmebaasi varukoopia tegemisel pgAdmini programmiga läbi koduarvuti esines mul viga:
pg_dump: server version: 11.0; pg_dump version: 10.5
pg_dump: aborting because of server version mismatch

Kuidas seda lahendada? Ma juba reinstallisin endale viimase pgAdmini versiooni, kuid see ei lahendanud probleemi.

Vastus: See viga võib esineda ka tulevastes versioonides ning üldine põhjus on selles, et uus pgAdmin versioon ei ole uuele PostgreSQL versioonile järgi jõudnud. Kindlasti saab see viga järgmistes versioonides parandatud.

Kuid senikaua saate ikkagi varukoopiaid teha - käivitades pg_dump programmi shelli promptist.

Loogilise varukoopia tegemine

  1. Logige PuTTY või mõne muu sarnase programmiga apex.ttu.ee serverisse.
  2. Käivitage shelli promptist käsk, mille üldkuju on:
    pg_dump -C -f varukoopia_faili_nimi.sql andmebaasi_nimi_millest_tahan_varukoopiat

    Näiteks varukoopia andmebaasist scott: pg_dump -C -f scott_2018_11_07.sql scott
    • C tähendab, et varukoopia failis on CREATE DATABASE lause. See tähendab, et varukoopiast andmebaasi taastamiseks ei tohi serveris sellise nimega andmebaasi olla - see luuakse taastamise alguses automaatselt.
    • Soovitan kasutada varukoopia faili nimes kuupäeva, et oleks selge, mis aja seisuga on varukoopia loodud ning et uus varukoopia vana üle ei kirjutaks.
    • Fail sisaldab andmebaasi scott põhjal genereeritud SQL lauseid. Failis sisalduvad SQL laused andmebaasiobjektide loomiseks, õiguste jagamiseks ja andmete laadimiseks andmebaasi.
    • See käsk tuleb käivitada shelli promptis (satute sinna kohe peale sisselogimist; see sama koht kus käivitate psql programmi), mitte psqlis. pg_dump nagu ka psql on PostgreSQLiga kaasa tulevad (abi)programmid.
  3. Logige WinSCP või muu sarnase failide haldamiseks mõeldud programmiga apex.ttu.ee serverisse. Kasutajanimi ja parool on sama, mis PuTTY abil sisselogimisel.
  4. Sisselogimise järel satute oma kodukataloogi: /home/minu_kasutajanimi Loodud varukoopia fail on selles kataloogis.
  5. Tõmmake see fail enda arvutisse, sest kui näiteks serverarvutis ketas rikneb, siis ei ole riknenud kettale jäänud ja kättesaamatuks muutunud failidest hiljem taastamise juures abi.
  6. Tehke varukoopiate hoidmiseks enda arvutis eraldi kataloog.
  7. Varukoopia failis on andmete tabelisse lisamiseks vaikimisi COPY laused. See on andmete taastamiseks kõige kiirem lahendus. Kui soovite (näiteks dokumendi jaoks) saada andmete tabelisse lisamiseks INSERT lauseid, siis tuleb varukoopia tegemise käsku täiendada. Järgnev on konkreetse andmebaasi (scott) varundamise käsu näide:
    pg_dump -C --column-inserts -f scott_2018_11_07.sql scott

Andmebaasi taastamine loogilisest varukoopiast

  1. Eeldused:
    • Serveris pole sellise nimega andmebaasi, mille CREATE DATABASE lause on varukoopia faili alguses.
    • Loogilise varukoopia fail on serverarvutis Teie kodukataloogis: /home/minu_kasutajanimi
  2. Logige PuTTY või mõne muu sarnase programmiga apex.ttu.ee serverisse.
  3. Käivitage shelli promptist käsk, mille üldkuju on:
    psql -U minu_kasutajanimi -f varukoopia_faili_nimi.sql template1

    Näiteks kasutaja erki taastab andmebaasi scott käsuga: psql -U erki -f scott_2018_11_07.sql template1

Alternatiivselt saab loogilise varukoopia teha phpPgAdmin kaudu valides andmebaasi ja klõpsates menüüs Export. Kui valida andmete esituse formaadiks "SQL", siis on tulemuseks INSERT laused. Paraku on need halvasti kirjutatud selles mõttes, et INSERT klauslis ei ole veergude nimesid. Teiste sõnadega sellised laused on tundlikud veergude järjekorra muutmise suhtes. Selliseid lauseid tuleks käsitsi täiendada.

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!