Küsimus

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
- Logige PuTTY või mõne muu sarnase programmiga apex.ttu.ee serverisse.
- 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.
- Logige WinSCP või muu sarnase failide haldamiseks mõeldud programmiga apex.ttu.ee serverisse. Kasutajanimi ja parool on sama, mis PuTTY abil sisselogimisel.
- Sisselogimise järel satute oma kodukataloogi: /home/minu_kasutajanimi Loodud varukoopia fail on selles kataloogis.
- 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.
- Tehke varukoopiate hoidmiseks enda arvutis eraldi kataloog.
- 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
- Eeldused:
- Serveris pole sellise nimega andmebaasi, mille CREATE DATABASE lause on varukoopia faili alguses.
- Loogilise varukoopia fail on serverarvutis Teie kodukataloogis: /home/minu_kasutajanimi
- Logige PuTTY või mõne muu sarnase programmiga apex.ttu.ee serverisse.
- 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.