1. lokacija baze
Ne postoji jedan fajl koji se samo kopira! Aleksandar ti je već napisao da ne treba da te interesuje gde se baza fizički nalazi i dao ti je putanju do direktorijuma gde se baze smeštaju po default-u (ako si radio Next-Next-Finish (NNF) instalaciju).
Gornje reči "ne treba da te interesuje" shvati sa stanovišta korisnika. Normalno je da treba da znaš gde ti se baza nalazi na disku, da bi obezbedio kvalitetan hardver, dovoljno prostora na particiji, zabranu neovlašćenog pristupa tom delu fajl sistema, ...
PostgreSQL server koristi jedan direktorijum koji se pomoću programa initdb.exe pretvara u database cluster. U njemu se onda smeštaju sve baze, podaci o korisnicima, pravima pristupa,... Ovaj initdb se odrađuje automatski pri NNF Win instalaciji u momentu kada te pita za account name, password, za encoding itd. Koji direktorijum koristi initdb pri NNFI? Po default-u "C:\Program Files\PostgreSQL\8.1\data\", ali se i to može promeniti u momentu instalacije na ekranu čiju sliku šaljem u prilogu (pošto ne znam da je ubacim u post, a mrzi me da tražim uputstvo :) Na tom ekranu se označi Data directory, klikne na Browse i odabere željeni folder za instalaciju database cluster-a.
2. automatski backup
Automatski backup je sigurnosna pretnja!
Backup se uvek radi pomoću programa pg_dump.exe. Čak i pgAdmin u pozadini poziva pg_dump.
Kako napraviti alat za automatski backup? Treba da radi sledeće:
- čuči u pozadini i proverava vreme (TTimer u Delphi-ju),
- u pravom trenutku pozove komandu pg_dump.exe sa ispravnim parametrima.
U kom obliku se poziva pg_dump tj. koji su joj parametri?
Do ispravnih parametara komande pg_dump se najlakše dolazi tako što se započne backup željene baze u pgAdmin-u. Prva linija poruka o toku backup-a je nešto poput:
C:\Program Files\PostgreSQL\8.1\bin\pg_dump.exe -i -h localhost -p 5432 -U
postgres -F c -b -v -f
"c:\probna.backup" "probna"
Legenda:
1. istaknuti parametar - korisničko ime
2. istaknuti parametar - ime bekap fajla s punom putanjom
3. istaknuti parametar - ime baze
Ostali parametri su manje bitni, pa ih neću spominjati ovom prilikom.
Jedan od parametara je korisnik. Zbog povećanja sigurnosti baze je najbolje da kreiraš posebnog korisnika baze za svrhu automatskog backup-ovanja. Recimo da se taj korisnik zove "_auto_backup" sa lozinkom "promeni_me". Tom korisniku se mora dodeliti SELECT pravo nad svim tabelama.
Code:
CREATE ROLE _auto_backup NOINHERIT LOGIN PASSWORD 'promeni_me';
GRANT SELECT ON tabela1 TO _auto_backup;
GRANT SELECT ON tabela2 TO _auto_backup;
...
GRANT SELECT ON tabelaN TO _auto_backup;
U WinXP-u postoji fajl u kojem se mogu postavis lozinke korisnika (
Ovde je SIGURNOSNA RUPA!). To je fajl: "C:\Documents and Settings\
winxp_korisnicki_nalog\Application Data\postgresql\pgpass.conf". Ovaj fajl izmeni tako da mu je sadržaj sledeći:
Code:
localhost:5432:probna:_auto_backup:promeni_me
Sada preostaje da alat za automatski backup pozove pg_dump sa odgovarajućim parametrima ili da pozove unapred pripremljen BAT fajl. (Ovakav BAT fajl može da pozove i WinXP-ov Scheduled Tasks što je i najlakše i najbrže rešenje)
Kako se poziva drugi program ili fajl iz Delphi-ja?
Nedavno je bila jedna tema na Delphi podforumu. (U svakom slučaju, tamo ima jakih likova koji će se već naći da odgovore)
Srđan
PS: U predhodnom postu sam napisao Task Manager, a trebalo je da piše Scheduled Tasks
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming." - Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo