pgs_dump

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revisionBoth sides next revision
pgs_dump [2019/11/15 14:39] – [Izvoz u tekstualnu datoteku (plain text)] nessapgs_dump [2021/01/22 20:48] milano
Line 1: Line 1:
-====== 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. Restauracija podataka na drugoj lokaciji vrši se programom [[:pgs_restore|pg_restore]]. 
- 
-Primer lokacije na Windows platformi 
- 
-<file> 
-c:\Program Files\PostgreSQL\9.6\bin\pg_dump.exe 
-</file> 
- 
- 
 ====== PG Dump ====== ====== PG Dump ======
  
Line 28: Line 15:
 Preporučeni način izvoza baze podataka sa najviše opcija pri uvozu na drugi server jeste upotreba //custom// formata zapisa (-Fc). 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 :+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 :
 <code> <code>
 pg_dump -U postgres -Fc -d b1 -f b1.backup pg_dump -U postgres -Fc -d b1 -f b1.backup
Line 66: Line 53:
 </code> </code>
  
 +===== Aktivna opcija "zaključavanja perioda" =====
 +
 +Kada je aktivirana opcija //Uključiti mogućnost apsolutnog zaključavanja poslovnog perioda// potrebno je preduzeti **dodatne korake** kako bi se bekapovana baza mogla otvoriti.
 +
 +Zaključavanje se izvodi dodavanjem ''CONSTRAINT'' na tabele ''racuni'',''otpremnice'',''ulaz'' i ''nalozi''. Ograničenje se oslanja na funkciju ''bpub.maxdatstocklock()'' koja se kreira dinamički prilikom aktiviranja opcije kroz parametre programa. 
 +
 +Funkcija se oslanja na tabelu ''firme'' (polje ''datStockLock''), koja se nalazi u tekućoj bazi i arhivama. Da bi zaključavanje tekućeg perioda i arhiva bilo razdvojeno u funkciji nije eksplicitno određena šema tabele ''firme'' već se koristi ''search_path'' za to.
 +
 +Pošto ''pg_restore'' resetuje ''search_path'' povrat podataka u ''CONSTRAINT-om'' zaštićene tabele neće biti moguć zbog greške ''relation 'firme' not found''.
 +Da bi se ovo prevazišlo potrebno je:
 +
 +  - Pre bekapovanja promeniti funkciju ''bpub.maxdatstocklock()'' tako da se doda eksplictno šema tabele - ''btek.firme''
 +  - U tabeli ''btek.firme'' postaviti vrednost polja ''datStockLock'' u ''NULL''
 +  - Nakon bekapovanja vratiti funkciju na staro kao i vrednost polja ''datStockLock''
 +  - Nakon ''pg_restore'' komande (otvaranja bekapa) opet korigovati funkciju (ukloniti ekslplicitno navedenu šemu).
  
 +Ukoliko se sve ovo ne uradi i dalje će biti moguća rekonstrukcija baze iz bekapa ali dodatnim koracima u **[[pgs_restore|pg_restore]]** procesu.
  • pgs_dump.txt
  • Last modified: 2022/08/31 15:57
  • by milano