This is an old revision of the document!
PG Dump
pg_dump
Za kopiranje PostgreSQL baze podataka najsvrsishodnije je koristiti postojeci pg_dump koji je lociran u folderu kome je instaliran Postgres, i to u folderu Bin.
Primer lokacije na Windows platformi
c:\Program Files\PostgreSQL\9.6\bin\pg_dump.exe
Izvoz u kompresovanu datoteku
Preporučeni način izvoza baze podataka sa najviše opcija pri uvozu na drugi server jeste upotreba custom formata zapisa (-Fc).
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.
Izvoz u tekstualnu datoteku (plain text)
Ovaj format omogućava proizvoljne aktivnosti na prilagođavanju fajla za naknadni uvoz u običnom uređivaču teksta jer se baza izvozi kao SQL skript. Kako se pri zameni delova teksta izbegla mogućnost oštećenja podataka, toplo se preporučuje odvojiti definicije od podataka u dva zasebna fajla.
Procedura za dampovanje je:
- pokretanje command prompta (cmd.exe) u administratorskom rezimu
- navigacija u folder gde se nalazi pg_dump.exe npr: cd Program Files\PostgreSQL\9.6\bin
- pokretanje komande za dump sa opcijama dupm-a:
- pg_dump -U <postgres> -d <b1> -n <public> -f <mydbPA.sql>
- znacenje opcija: -U <user>, -d <ime baze>, -n <ime scheme> -f <format i ime fajla za izvoz>
* ime baze se može navesti i kao <postgresql:nessa:deus@MOC:5432/b100>, sto je posebno značajno kada se radi sa mašine koja nije PG server.
Samo struktura baze se može izvesti komandom -s (–schema-only) npr. pg_dump -U postgres -s -d b1 -f b1_SCHEMA.sql
Samo podaci baze se mogu izvesti komandom -a (–data-only) npr. pg_dump -S postgres -a –disable-triggers -d b1 -f b1_DATA.sql (opcija –disable-triggers zahteva da se prosledi superuser ime, u ovom slučaju je to postgres)