Multiszolg Bt.

Programjaink működéséhez szükséges PostgreSQL szerver újrainstallálása

Linux platform alatt
Amennyiben linux szervert alkalmaz, úgy a szerver rendszergazdája végzi ezt a feladatot (függően az alkalmazott Linux csomagtól)
A telepítőkészlet innen tölthető le. Fontos, hogy linux alatt is célszerű a legfeljebb 9.0.6 verzió alkalmazása! Mivel a bytea mezők Escape/Hex kezelését a szerver másmódon végzi, így a már felépített adatbázis áttelepítése hibás lehet.

Windows platform alatt
– Fontos, hogy a szerverként alkalmazott Windows legalább XP Professional legyen (a Home verzióval a hálózati user-ek adminisztrálásnak nehézségei miatt gond lehet)
– A szerver gépnek az irodai hálózaton belül fix ipcímmel kell rendelkeznie, vagy a DHCP kiszolgálónak MAC Address alapján mindig ugyanazt az ip címet kell kiosztania erre a gépre.
– Amennyiben van a gépen PostgreSQL telepítve, azt célszerű uninstallálni a telepítés előtt. Továbbá az uninstallálás után hátramaradt fájlokat (adattáblák és egyéb konfigfájlok) is érdemes törölni.
– Windows alá legfeljebb a 9.0.6-os PostgreSQL verziót ajánljuk telepíteni, innen: http://letoltes.multiszolg.hu/_postgresql/

A telepítés folyamata során a telepítő készlet a Windows alá létrehoz egy postgres hálózati felhasználót.
Ha már ez létezik – lehet így hiszen újrainstallálunk – akkor két lehetőségünk van:
1.) ismerjük a jelszót (jellemzően: postgres01), akkor elegendő a telepítés során megadni.
2.) nem ismerjük a jelszót: akkor a telepítést megelőzően törölni kell a
postgres hálózati felhasználót. Ez windows XP alatt { hihetetlen módon 🙂 } a következő paranccsal is elérhető: net user postgres /delete

A telepítés végeztével a telepítő felajánlja a Stack Builder telepítését, ezt nem szükséges installálni.

Első használat előtti beállítások:
postgresql.conf fájlban a következő sor hatására mindenhonnan elérhető lesz a szerverünk: (ezt csak a 8.x verziók esetében kell elvégezni, újabbaknál már eleve így települ a szerver)
listen_addresses = ‘*’
ugyanitt a
bytea_output = ‘escape’ sor beállítása szükséges a 9.x.x verziók esetében.
pg_hba.conf fájban szabályozható a szerver beépített tűzfala:
1. beállítási mód, amikor mindenhonnan elérhető a szerverünk, ezt csak akkor érdemes alkalmazni, ha az internet felől tűzfal védi az irodai hálózatot:
host all all 0.0.0.0/0 md5
2. beállítási mód, csak a helyi hálózatról érhető el a szerver (a helyi hálózat ip címét értelemszerűen a helyi viszonyoknak megfelelően kell állítani)
host all all 192.168.1.0/24 md5
3. beállítási mód (minden más, pl. lehet a végrehajtó otthonába bekötött fix ipcímű internet elérésről engedélyezni a belépést)

A beállítások után a szervert újra kell indítani, erre a Programok / PostgreSQL x.x mappában van mód: Reload configuration, Stop service, Start service ikonok segítenek. Windows alatt esetleg a gép újraindítás segíthet, ha nincs más mód.

Adatbázis létrehozása
pgAdmin III segítségével kapcsolódjunk a szerverhez, a kapcsolódási adatok:


A localhost helyére írható a szerver gép IP címe is.
A jelszó mezőbe a postgres felhasználó jelszava kerül.

Első kapcsolódáskor a Databases (adatbázisok) alatt csak a postgres nevű adatbázis lesz fellelhető.
Álljunk rá erre az adatbázisra, és a fenti SQL ikonnal nyissunk egy ablakot:



Először a plpgsql nyelvet kell telepíteni a tárolt eljárások működtetéséhez:

CREATE OR REPLACE FUNCTION plpgsql_call_handler()
RETURNS language_handler AS
‘$libdir/plpgsql’, ‘plpgsql_call_handler’
LANGUAGE ‘c’ VOLATILE;

CREATE TRUSTED PROCEDURAL LANGUAGE ‘plpgsql’
HANDLER plpgsql_call_handler;

A szkript futtatása a zöld play gombbal történik.

A felhasználót a következő szkript segítségével lehet létrehozni:

CREATE ROLE “VhUser” LOGIN
ENCRYPTED PASSWORD ‘md5a71403dabb7a6cb4ebe7dfd8c9096b0b’
NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;

Adatbázis pedig a következő szkripttel hozható létre:

CREATE DATABASE “Vh_Data”
WITH OWNER = “VhUser”
ENCODING = ‘UTF8’
TABLESPACE = pg_default
CONNECTION LIMIT = -1;

A legtöbb helyen a WIN1250-es kódolást alkalmazza az adatbázis, de ezt ne vegye biztosra!
Meg kell nézni a korábbi szerveren a pgadmin-ban, hogy milyen kliens kódolással lett az adatbázis adatokkal feltöltve és azt kell használni hogy az adatok sérülés mentesen jelenjenek meg a kliensen:


.

ALTER DATABASE “Vh_Data” SET client_encoding=’win1250′;

Ha minden rendben lefutott, akkor már az adatbázisok között a Vh_Data adatbázis is megjelent.

A mentés visszaállítása:
A Vh_Data adatbázison a jobb egér gomb segítségével a következő ablakban ki lehet választani a Restore (adat visszaállítás) funkciót:

A visszaállítást a pg_restore.exe végzi (a szerver bin könyvtárában levő), az új telepítésű szerver maximum 9.0.6-os verzió legyen. A kliensprogram backup_system könyvtárában levő pg_restore és pg_dump másolatokat alkalmazza a programból történő mentés elkészítésekor. Jelenleg a 9.0.6.-os verzió pg_dump.exe-jét használja a mentés létrehozására a kliens.

Az ablakban csak a mentésfájl helyét kell megadni, és az OK gombbal már indítható is a visszaállítás.

Fontos, hogy az autoincrement (serial) típusú mezők folyamatos sorszámozását a Sequences-ek biztosítják. Mentés visszaállítás esetén néha előfordul, hogy ezek az adatok nem frissülnek… ennek következtében egy táblában egy új tétel felvitele key violation hibával szállhat el. A mezők frissítését a következő paranccsal lehet elvégezni: SELECT sys_refresh_sequences();

Postgresq szerver program letölthető a
www.multiker.hu szerverünkről
vagy
a postgresql.org-ról (linux, windows)

 

Webfejlesztés és ügyviteli rendszer programozás egy helyen