pgs_restore

This is an old revision of the document!


PG Restore

Ovaj alat sadrži brojne opcije prilikom vraćanja baze podataka, i predstavlja prirodnog parnjaka pg_dump funkcije. Opcija ima jako mnogo, evo nekoliko osnovnih.

Pri prenosu celih baza podataka, veoma je važno da izlazni fajl bude kompresovan jer se može desiti da zbog veličine bude nepodesan za prenos/manipulaciju. Kompresijom upravlja pg_dump, a niže je primer prenosa baze pod nazivom b1, sa extenzijama, šemama i svim ostalim Pg objektima. Operaciju izvodim pod sistemskim postgres nalogom, iako to može biti bilo koji drugi korisnik sa odgovarajućim pravima :

pg_dump -U postgres -Fc -d b1 -f b1.backup

Objašnjenje parametara:

-U postgres znači da operaciju izvodim pod korisničkim nalogom postgres.
-Fc znači da koristim custom format fajla, koji dozvoljava najviše opcija pri raspakivanju (pg_restore) baze. Istovremeno, ovaj format automatski podrazumeva kompresovanje podataka.
-d b1 je ime baze podataka koju prenosim/bekapujem/čuvam
-f b1.backup je ime fajla u koji se podaci pohranjuju.

Ovako kompresovana baza može se vratiti na drugi server sledećom komandom:

pg_restore -U balans_admin -C -d postgres b1.backup

Objašnjenje parametara:

-U balans_admin znači da operaciju izvodim, na novom serveru, pod korisničkim nalogom balans_admin. Dobro je znati da novi server ne mora imati iste korisničke naloge.
-C znači da se na će se pri raspakivanju napraviti nova baza podataka, sa istim imenom kao što ga je imala izvorna.
-d postgres je parametar koji pravi najviše zabune, jer izgleda kao da dajemo instrukciju da se baza raspakuje u bazu sa imenom postgres. Ustvari, parametar -C sprečava da se ovo desi, pa je ime postgres iskorišćeno samo zato što takvo sigurno postoji na novom serveru. Moglo je poslužiti i bilo koje drugo, za koje znamo da postoji. Kako smo zadali parametar -C, pg_restore će automatski napraviti bazu pod imenom b1, kako je u izvornom b1.backup fajlu i navedeno.
b1.backup je ime fajla u kom se nalazi spakovana i kompresovana baza koju raspakujemo.

Za restore PostgreSQL baze podataka najsvrsishodnije je koristiti postojeci uz mogućnost izmene izvornog fajla koristi se psql.exe koji je lociran u folderu kome je instaliran Postgres, bin poddirektorijumu. Ovaj način prenosa podataka pravi velike fajlove, i nije pogodan za prenos celih baza, ali pošto se baza izvozi kao veliki SQL skript, lako ga je modifikovati (promena nazvia šeme, itd.).

  1. Pokretanje command prompta (cmd.exe) u administratorskom rezimu
  2. Navigacija u folder gde se nalazi psql.exe npr: cd Program Files\PostgreSQL\9.6\bin
  3. Pokretanje komande za restore sa opcijama restore-a:
    1. psql -U <postgres> -d <PA4> -o <outputPA.txt> -f <mydbPA.sql>
    2. znacenje opcija: -U <user>, -d <ime baze>, -o <ime log fajla za upis rezultata restore-a> -f <format i ime fajla za uvoz>

Sa psql alatom se može odraditi i skript za pravljenje nulte baze npr. psql -f “k:\Data 20\0\9934\b0.9934.10520.20010.sql” -o createb0.log -U postgres postgres

“Switch” parametre treba navesti pre parametara baze i korisničkog imena.

Psql alatu se može zadati i server, port, baza, korisničko ime i lozinka u ovom formatu, (ispred reči dbname treba da budu 2 crtice, ali ih docuwiki spaja u jednu) npr:
psql.exe –dbname=postgresql:korisnik:lozinka@:pgserver:5432/b4 ostale_opcije_i_parametri

  • pgs_restore.1519295395.txt.gz
  • Last modified: 2018/02/22 10:29
  • by milano