Dokumentumról
Ezen dokumentum olyan beállításokra hivatkozik, amelyek elvégzéséhez komolyabb, vagy esetenként rendszergazdai ismeretek, és jogosultság szükséges.
Bevezetés
A SUP® Integrált Számviteli Rendszer a kliens-szerver architektúrájú, alapvetően hálózati működési környezetre van tervezve.
Az adatokat SQL adatbázisban tárolja, melyhez a Firebird 2.5 verziójú adatbázis szerverre van szükség.
Rövid ismertető a Firebird adatbázisról: https://www.firebirdnews.org/docs/fb2min_hu.html
Az adatbázis szerver adminisztratív beállítása nem igényelnek speciális konfigurációt, így nem kizárt más rendszerekkel való együttműködése.
Ennek ellenére NEM JAVASOLJUK az adatbázisok más rendszer által használt adatbázis motorra való telepítését.
Ilyen esetben az adatok biztonságáért, és a rendszer működőképességéért, semmilyen felelősséget nem vállalunk.
FireBird 2.1 és a FireBird 2.5 ugyanazon az operációs rendszeren belül NEM használható
Megfontolandó
- Az adatbázisszerverként használt gép lehetőleg csak adatbázis-szerver, esetleg file-szerver legyen. Főként a print-szerver funkciót ne az adatbázis-szerver lássa el.
- Az adatbázisokat lehetőleg ne a rendszermeghajtón tároljuk, és gondoskodjunk a rendszeres (lehetőleg automatizált) mentésükről.
- A mai hálózatok ajánlott protokollja a TCP/IP. Az Firebird is ezzel dolgozik leghatékonyabban. A fölösleges (NetBEUI, IPX/SPX) protokollokat a gépekről (szerverről) el kell távolítani, mert ezek még használaton kívül is szükségtelen hálózati forgalmat generálnak.
- Nagy adatbázisok, vagy sok kiszolgálandó munkahely esetén kimondottan szerverekbe való (pl.: SAS) merevlemezekkel és hozzájuk való vezérlőkártyával (true RAID), nagyobb sebességet lehet elérni, mint asztali PC alkatrészekből kialakított rendszerrel.
A szerver gép
\\<FileServer>\QSoft\Install.dsk
könyvtárába a Firebird 2.5 telepítő készletet (FB21_QSoft_Setup.exe
) ajánlott bemásolni a későbbi munkahely telepítések, újratelepítések megkönnyítése miatt. Amennyiben szoftver CD nem áll rendelkezésre, a szerver gépen, egy munkahely telepítéséhez, újratelepítéséhez szükséges szoftverek rendelkezésre álljanak.- Az adatbázisszerver processz jó teljesítményéhez elegendő memóriát és gyors háttértár elérést kell biztosítani.
- A SUP rendszer gyors működéséhez az alkalmazást futtató gép és az adatbázisszerver között kellő sávszélességű hálózati kommunikációt biztosítani kell.
Pl.: egy távoli telephelyről az adatbázisszerver elérése (VPN-en keresztül) ún. vastag-kliens módban a használhatatlanság határára lassíthatja a rendszer működését.
Telepítő készlet
Windows-os rendszerekhez elsődlegesen a FireBird (http://www.firebirdsql.org/) honlapjáról, Linuxos rendszerhez pedig elsősorban a disztribúciós csomagokból beszerzett telepítőt használatát javasoljuk.
A letöltésnél a Firebird 2.5 verziójú adatbázis szerver telepítőkészletét töltsük le.
Windows operációs rendszerekhez a SUP telepítő CD-n is található telepítő készlet.
32bit-es operációs rendszer esetén 32bit-es, 64bit-es operációs rendszer esetén 64bit-es Firebird telepítés szükséges!
Általánosságban a SuperServer változat telepítését javasoljuk, azonban magas felhasználó szám esetén, továbbá a teljesítmény növelés érdekében, a gazdaságosabb memória kihasználás végett a SuperClassic modellt az ajánlott, viszont, ha az adatbázis szerveren fut SUP process (local server, RDP) akkor a SuperServer változat telepítése inkább a javasolt.
A 2.5 verziótól kezdődően bevezetésre került a SuperClassic modell, általában a 64 bites operációs rendszerek esetén ajánlott.
További információ az adott témával foglalkozó Firebird szerver modellek című cikkben, vagy a FirebirdSQL szerver architektúráit összehasonlító weblapján.
A megfelelő telepítőkészlet kiválasztásához előbb olvassa végig ezt a dokumentumot.
Elérhetőség a FireBird honlapján
Megjegyzés: MacOSX rendszeren jelenleg semmilyen gyakorlati tapasztalattal nem rendelkezünk.
Telepítés Windows-os környezetben
A telepítés a Windows alapú programoknál megszokott telepítő file segítségével történik. Windows 2003/2008-ra való telepítés esetén rendszer adminisztrátori jogosultság szükséges! A telepítéskor a SYSDBA jelszava: "masterkey
" legyen. Telepítés során megfontolandó a Firebird process futtatásához egy külön felhasználó létrehozása.
A telepítő file lehet:
- Firebird honlapról letöltött, a rendszernek megfelelő, 2.5-ös verziójú telepítővel
- InstallCD-ről:
- un. SUP_Full telepítőkészlettel (
\SUP_Setup\SUP_Full_Setup.exe
) - Firebird telepítő (
\SUP_Setup\FB21_QSoft_Setup.exe
)
- un. SUP_Full telepítőkészlettel (
Az InstallCD-ről való telepítés (automatikusan) a szerverhez megfelelő Firebird változatot telepíti.
A SUP_Full telepítő a Firebird telepítése után további beállításokat is végez a rendszeren (Pl.: szerver oldali könyvtárszerkezet). A Firebird telepítéstől függetlenül, futtatása szükséges lehet (Pl. friss telepítésnél).
Példa a telepítésre "egygépes" környezetben
A QSoft Kft. Firebird SQL 2.5 adatbázismotor telepítése "egygépes" környezet esetén a következő varázsló stílusú telepítő lépéseit követve végezhető el.
Firebird 2.5 "egygépes" telepítés
Firebird 2.5 "egygépes" telepítés beállításai
Sikeres telepítés után az Firebird adatbázisszerver rögtön - esetenként a rendszer újraindítása után - automatikusan elindul. Superserver változat telepítése esetén (32 bites operációs rendszer) a Control Panelen (Vezérlőpult) létrejön egy új parancsikon Firebird 2.5 Server Manager néven, ahol az adatbázisszerver legalapvetőbb tulajdonságai beállíthatók, illetve a szerver leállítható, újraindítható.
A Firebird adatbázismotor a C:\Program Files\Firebird25\bin könyvtárban található fbrestart.bat -tal is újraindítható!
Telepítés Linux-os környezetben
Debian 8 vagy Ubuntu 14.04 LTS disztribúciók esetén csomagban rendelkezésre áll a Firebird 2.5-es, Superserver (firebird2.5-super
), vagy Classic (firebird2.5-classic
), vagy SuperClassic (firebird2.5-superclassic
) változata.
A modellek közötti választáshoz további információ a Firebird szerver modellek című cikkben.
Példa a telepítésre Debian környezetben
A telepítés folyamán rendszergazda (
root
) jogosultság szükségesapt-get install firebird2.5-super
(telepítés)- ha a telepítés hibátlanul sikerült (hibakód:
0
), akkor:dpkg-reconfigure firebird2.5-super
(YES
, majd 'masterkey
') chmod -R o+t,o+W /home/qsoft/
(ha a share maga a 'qsoft' könytártól indul.
Erre azért van szükség, hogy a Firebirdnek legyen olvasási joga azokon a könyvtárakon, ami a 'qsoft/sup/db'-hez vezet- ha a share Samba oldaláról elérhető (hálózaton elérhető), akkor oda be lehet másolni az esetleges előző adatbázisokat a '/sup/db'-be
Viszont ebben az esetben fokozottan kell ügyelni a Samba szerver beállítására, hogy az így másolt file-ok az adatbázis szerver számára megfelelő jogosultsággal jöjjenek létre
(Pl.:force user = firebird
ésforce group = firebird
) chown -R firebird.firebird /home/qsoft/sup/db
(az adatbázisokhoz legyen teljes joga)- egyes disztribúciók szigurú irányelvei alapján, alapesetben localhost-ra korlátozzák a hozzáférést a szerverhez.
ezt a/etc/firebird/2.5/firebird.conf
ban aRemoteBindAddress = localhost
sor kikommentezésével lehet megszüntetni. - helyileg kipróbálhatjuk a
telnet localhost 3050
paranccsal, hogy fut-e az adatbázis szerver - távolról (pl. egy munkaállomásról) kipróbálhatjuk a
telnet <szerver-IP> 3050
paranccsal, hogy elérhető-e az adatbázis szerver
Biztonsági kérdések
Adatbázis file-ok helye
Összetettebb rendszer esetén, vagy szigorúbb biztonsági házirend használatakor az adatbázis file-okat akár teljesen el lehet rejteni a felhasználók elől (nem szükséges a lenti struktúrába tárolni).
A SUP rendszernek üzem közben nem szükséges file szintű hozzáférés az adatbázisokhoz
Minden esetben fontos, hogy a szerveren az adatbázis szerver folyamatot (FireBird) futtató felhasználónak teljes hozzáférése legyen az adatbázis file-okhoz és az azokat tartalmazó mappához (írás, olvasás, létrehozás, spec esetben törlés).
Mentés
Automatizált:
Windows és Linux szerver esetén egyaránt a QSoft Kft által fejlesztett, ütemezhető alkalmazással megoldható (így a mentés a SUP által visszatölthető).
Dokumentáció: Adatbázisok automatizált mentése - QsBackupFdbService
Kézi mentés:
- Felhasználók: SUP programból, jogosultság alapján, feltétel a kliens gépeken gbak.exe telepítve legyen, részletes leírás található a "Kliens telepítési útmutatóban".
- Terminálszerveres környezetben egyedi beállítások lehetnek szükségesek.
- Rendszergazda: SUP-ból, szerveren, mint a felhasználók
- Rendszergazda: File szinten. A mentés idejére, adatbiztonsági okokból célszerű a FireBird szervert leállítani.
Tűzfal
Az operációs rendszer tűzfalán a kliensek részére engedélyezni kell a Firebird SQL Server által használt port(ok) elérését. Részletesen lásd itt.
Alapértelmezésben az adatbázis mitor a 3050-es port-ot használja, amennyiben a firebird.conf-ban (ld. később) beállítottuk a RemoteAuxPort
változót, akkor értelem szerűen az ott beállított port elérését is biztosítani kell minden kliens számára.
Firebird Server finomhangolása
Mielőtt az adatbázis szerver paraméterezése megtörténik, - tapasztalataink alapján - előbb a szerver erőforrásait, software és hardware komponenseit javasolt megvizsgálni, ugyanis a sebességproblémák döntő hányadát a rendelkezésre álló erőforrások szűk keresztmetszete okozza.
Az Firebird 2.5 Server konfigurációs paraméterei a firebird.conf
elnevezésű szövegfile-ban találhatóak.
- Windows környezetben pl. a
C:\ProgramFiles\Firebird2\
könyvtárban.
- Linuxos környezetben (pl. Debian) az
/etc/firebird/2.5/
könyvtárban.
A # jellel kezdődő sorok megjegyzésként funkcionálnak. Egy adott beállítás (sor) érvényteleníthető a sor elejére tett # jellel.
Az új beállítások csak a Firebird Server újraindítása után lesznek aktívak.
Superserver változat esetén:
- Windows platformon: Start menü | Beállítások | Vezérlőpult | Firebird Server Manager Stop | Start
- Linux (Pl.: Debian) esetén: "
/etc/init.d/Firebird restart
" (leállítás: "/etc/init.d/Firebird stop
" indítás: "/etc/init.d/Firebird start
" )
Classic változat esetén ld. Firebird, és az operációs rendszer dokumentációja
Rendszer teljesítményének ellenőrzése
Telepítés (SUP rendszer bekonfigurálása) után, rendelkezésre áll egy DEMO adatbázis, amelyen lehet ellenőrizni a működőképességet, és a teljesítményt.
A SUP rendszerbe való belépést (felhasználó: "DEMO", jelszó mező üresen marad) követően, a Szerviz | Technikai funkciók | Adatbázis sebességteszt menüpontban.
Ezek egy átlagos (kis terheltségű) rendszer minőségi paraméterei.
Releváns paraméterek
Leírás:
A DefaultDbCachePages paraméter szabályozza, hogy egy kliens hány lapnyi cache memóriát kapjon adatbázis kapcsolatonként (egy SUP példány két adatbázis kapcsolatot nyit a szerveren).
Fontos, hogy, ha az összes munkahely felcsatlakozik, akkor is a fizikai memóriában dolgozzon a szerver számítógép operációs rendszere, és a cache-ben tárolt adatokat nehogy elkezdje kilapozni a virtuális memóriába.
Alapérték:
DefaultDbCachePages = 2048
Javasolt beállítás:
DefaultDbCachePages = 4096
A SUP adatbázisok 4096 byte méretű lapokkal dolgoznak, így a 2*4096 lapnyi cache 32 MB fizikai memóriát igényel kliensenként ( 2 * 4096 * 4096 / 1024 kB) !
Megjegyzés: az IbPhoenix szerint semmiképp nem célszerű 10000 fölé vinni. Általában 4096-ra szoktuk állítani, vagy nagy rekordszámú adatbázis esetén ennek a duplájára.
Leírás:
Ennyi másodperc után nézi meg, hogy a feloldatlan "lock" deadlock-e? Default értéke 10.
Alapérték:
DeadlockTimeout = 10
Javasolt beállítás:
DeadlockTimeout = 10
Leírás:
Ezt a könyvtárat használja a szerver az ideiglenes file-ok tárolására. Megadható a felhasználható tármennyiség. Több bejegyzés is felsorolható, soronként egy. A sorrend számít, mert a sorrend alapján használja fel a tármennyiséget.
Alapérték:
Nincs beállítva, így a operációs rendszer temp könyvtárát használja ( UNIX rendszereken a /tmp
, Windows-on %TEMP%
.)
Javasolt beállítás:
Nincs konkrét javaslat, de fontos, hogy a temp-ként használt könyvtárban (meghajtón) legyen elég hely (pár GB), ha betelik akkor az adatbázis szerver hibával leállhat.
Leírás:
Az itt megadott idő letelte után a kapcsolatot a kliensekkel megszakítottnak tekinti. Alapértelmezés 180 sec.
Alapérték:
ConnectionTimeout = 180
Javasolt beállítás:
ConnectionTimeout = 180
Leírás:
Több processzor (szál) esetén a FireBird Superserver változat optimális működése végett az alábbi beállítást célszerű elvégezni
Alapérték:
CpuAffinityMask = 1
(Csak az első processzort használja)
Javasolt beállítás:
Egy olyan CPU hozzárendelése, melynek alacsony a kihasználtsága
CpuAffinityMask = 4
(Csak a harmadik processzort használja)
Megjegyzés (kiemelve a firebird.conf-ból):
# Which CPUs should be used (Windows Only)
#
# In an SMP system, sets which processors can be used by the server.
# The value is taken from a bit map in which each bit represents a CPU.
# Thus, to use only the first processor, the value is 1. To use both
# CPU 1 and CPU 2, the value is 3. To use CPU 2 and CPU 3, the value
# is 6. The default value is 1.
#
# Type: integer
#
#CpuAffinityMask = 1
Leírás:
Az itt megadott portot használja FireBird kiegészítő kommunikációhoz. Használata a SUP automatikus cache frissítés működésképtelensége, vagy a lassú bejelentkezés esetén lehet szükséges.
Alapérték:
RemoteAuxPort = 0
Javasolt beállítás:
Csak ha a szerver tűzfala miatt indokolt. További információ végett olvassal ezt a cikket.RemoteAuxPort = 3060
Megjegyzés:
#
# The TCP Port Number to be used for server Event Notification
# messages. The value of 0 (Zero) means that the server will choose
# a port number randomly.
#
# Type: integer
#
#RemoteAuxPort = 0
Leírás:
Ha az adatbázis szerver lassulásánál, a munkahelyek magas számára ( >100) gondolunk, akkor a firebird.conf
file-ban lévő "Locking and shared memory parameters
" szekcióban található paraméterek állításával próbálkozhatunk.
Az alapértelmezettek általában 100 kliens gépig problémamentesen működnek.
Ha mégis probléma adódik, akkor az itt található értékek megnövelésével sebességjavulás érhető el, de figyelembe kell venni, hogy ez hatással van a futás időben lefoglalt fizikai RAM területet nagyságára.
Az éppen használatban levő lock_memory
(Pl.: Debial környezetben) a /usr/lib/firebird2/bin/fb_lock_print
paranccsal ellenőrizhető.
Paraméterek:
# ----------------------------
# Locking and shared memory parameters
#LockMemSize = 1048576
#LockSemCount = 32
#LockGrantOrder = 1
#LockAcquireSpins = 0
#LockHashSlots = 1009
Megjegyzés: A paraméterek részletes leírása megtalálható a firebird.conf
file-ban.
Sebességproblémás esetleírások
A sebességproblémák felderítéséhez, a rendszergazdáknak szóló háttéranyag: Sebességproblémák - firebird.conf
Mielőtt az adatbázis szervert átparaméterezik, tapasztalatunk alapján előbb a szerver erőforrásait, software és hardware komponenseit érdemes górcső alá venni.
A sebességproblémák döntő hányadát a rendelkezésre álló erőforrások szűk keresztmetszete okozza.
SUP szerver oldali könyvtárszerkezete és annak tartalma
Ezt a könyvtárat - mint megosztást is - és alkönyvtárait a felhasználóknak, klienseknek teljes hozzáféréssel el kell tudni érniük
(kivéve a DB könyvtárat).
Javasolt megosztási név: QSOFT
\QSoft | Ebből nyílnak a további alkönyvtárak, melyek valamilyen szempontból a QSoft Kft. által készített programokkal vannak kapcsolatban. |
\QSoft\SUP | Ebből nyílnak a további alkönyvtárak, melyek a SUP® rendszerrel vannak kapcsolatban (Terminológia: alapkönyvtár - SUP home directory ). |
\QSoft\SUP\BIN | Ebbe az alkönyvtárba kell elhelyezni a SUP.EXE file(-t) és a SUP® rendszerrel kapcsolatos további EXE, LNK, file-okat. |
\QSoft\SUP\DB | Egyszerűbb környezet esetén ide lehet tenni az Firebird SQL adatbázis (FDB) file-okat. A SUP rendszernek (és ezáltal a felhasználóknak) nincs szüksége file-system szintű hozzáférésre az adatbázis file-okhoz |
\QSoft\SUP\SysData | Itt a konfigurációs file-ok, valamint a napló (LOG) file-ok kaptak helyet. |
\QSoft\SUP\Update | Ide kell bemásolni a rendszerkövetés telepítő file-(oka)t, illetve ebbe a könyvtárba tölti le az Internetről a SUP automatikusan a rendszerkövetést. |
\QSoft\SUP\Doc | Az elektronikus formában (PDF) tárolt dokumentáció helye. |
\QSoft\UTIL | Ez az alkönyvtár a kapcsolódó segédprogramok pl.: 7ZIP.EXE helye. |
\QSoft\Install.dsk | A hálózatos telepítés esetén az indító ikonokat célszerű ide másolni. Ha a Firebird SQL telepítő készlete felmásolásra kerül, ebbe az alkönyvtárba ajánlott tenni. |
Függelék
Információk a FireBird honlapjáról
- A telepítésről: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/qsg2-installing.html
- Adatbázisok kezeléséről: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/qsg2-safety.html
- A gbak-ról: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/gbak.html
- A gfix-ről: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/gfix.html
- Az nbackup tool-ról: http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/nbackup.html#nbackup-intro