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.

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.

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 moze navesti i kao <postgresql:nessa:deus@MOC:5432/b100>, sto je posebno znacajno kada se radi sa masine 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.1508411905.txt.gz
  • Last modified: 2017/10/19 11:18
  • by nessa