pgs_dump

This is an old revision of the document!


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. Restauracija podataka na drugoj lokaciji vrši se programom pg_restore.

Primer lokacije na Windows platformi

c:\Program Files\PostgreSQL\9.6\bin\pg_dump.exe

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

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.

Ako se dump pravi sa računara na kom nije PGS server sintaksa je sledeća (–verbose može da se izostavi kada nema potrebe da se ispisuje trenutna dump akcija u CMD prozoru):

pg_dump --dbname=postgresql://korisnik:lozinka@imePGServera:port/nekabaza --schema=nekaschema --verbose -Fc --file="Putanja_do_dump_fajla"

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:

  1. pokretanje command prompta (cmd.exe) u administratorskom rezimu
  2. navigacija u folder gde se nalazi pg_dump.exe npr: cd Program Files\PostgreSQL\9.6\bin
  3. pokretanje komande za dump sa opcijama dupm-a:
    1. pg_dump -U <postgres> -d <b1> -n <public> -f <mydbPA.sql>
    2. 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) //
  • pgs_dump.1573828742.txt.gz
  • Last modified: 2019/11/15 14:39
  • by nessa