Ebben a cikkben leírjuk azokat az alapvető lépéseket, amelyek szükségesek a Firebird 3.0 adatbázis-kezelő optimalizált telepítéséhez új Linux disztribúciókra. Példaként a CentOS 8 és az Ubuntu 19 került kiválasztásra.
A Firebird disztribúció célrendszerre való "eljuttatásához" ebben az útmutatóban a tar.gz archívum hivatalos projektoldalról való letöltésének módját választottuk ().
A legigényesebbeknek — azonnal a mély vízbe:
Gyors telepítés
Szerkessze a fájlt /etc/sysctl.conf, hozzáadva a sort:
vm.max_map_count = 256000
Mentse el a fájlt, majd alkalmazza a beállítást:
sudo sysctl -p /etc/sysctl.conf
A további utasítások a CentOS 8 és az Ubuntu 19 esetében eltérnek, de HIVATALOS LINK és KATALÓGUS az a hivatalos Firebird projektoldalról való letöltésre, illetve annak a könyvtárnak a jelölésére utal, ahova a disztribúció a letöltés során ki lesz csomagolva.
Jelenleg (2020 március) a Firebird 3.0.5-ös kiadása elérhető ( a 64 bites verzióhoz).
CentOS 8
sudo yum -y install epel-release
sudo yum -y makecache
sudo yum -y install libicu libtommath tar
ln -s libncurses.so.5
/usr/lib64/libncurses.so.5
ln -s libtommath.so.1
/usr/lib64/libtommath.so.0
curl -L HIVATALOS LINK | tar -zxC /tmp
Ubuntu 19
sudo apt-get -y install libncurses5 libtommath1
ln -s libtommath.so.1
/usr/lib/x86_64-linux-gnu/libtommath.so.0
wget -O- HIVATALOS LINK | tar -zxC /tmp
A Firebird adatbázis-kezelő tényleges telepítése:
cd /tmp/KATALÓGUS
sudo ./install.sh
Ha jobban szeretné megérteni, hogy ezek a lépések mire szolgálnak – olvasson tovább.
Fő rész
Kis bevezető
Feltételezzük, hogy az operációs rendszer már a minimális változatban telepítve van, és a nyilvános tárolókhoz vagy azok helyi másolataihoz való hozzáférés be van állítva.
Feltételezzük, hogy az olvasónak alapvető ismerete van a Linuxról és a Firebird adatbázis-kezelőről.
Tervezés
A szerver adatbázis-kezelőjénél ajánlott külön partíciókat kijelölni ideiglenes fájloknak (/tmp), adatbázis fájloknak és helyi biztonsági mentéseknek.
Az ideiglenes fájlok közé tartoznak a lock fájlok, a rendezési fájlok, a globális ideiglenes táblák (GTT) anyagfájlai és a megfigyelő táblák. A rendezési fájlok és a globális ideiglenes táblák a /tmp, a mon$-táblák fájljai és a lock fájlok pedig a /tmp/firebird.
A rendezési fájlok "eltávolításra" kerülnek (unlink) közvetlenül a létrehozás után, ezért a mappa listájában nem "láthatóak" – csak a folyamat leíróinak (handles) listájában, mint deletált):
sudo ls -lhF /proc/`pgrep firebird`/fd
A ál- könyvtár listázásában /proc/…/fd/ szimbolikus linkek jelennek meg, a fájl tényleges információját a következő adja meg:
sudo stat -L /proc/`pgrep firebird`/fd/ATEGÓRIA
ahol ATEGÓRIA – a megcélzott fájl leírója (descriptor).
A "pgrep futtatható-fájl" helyett közvetlenül behelyettesítheti a megcélzott folyamat azonosítóját.
A ideiglenes fájlok nagyon nagyok lehetnek, ezért /tmp ajánlott legalább 20-30 GB-ot biztosítani. Figyelembe kell venni, hogy a rendezett fájlok mérete csak az adatok mennyiségétől függ, amelyeket a lekérdezésben kifejezetten vagy nem kifejezetten rendeznek, és egyetlen felhasználó is gigabájtokat "generálhat" ideiglenes fájlokból.
Az adatbázisfájlok számára fenntartott területnek tartalmaznia kell az összes adatbázis fájlját, plusz legalább egy másolatot a legnagyobb adatbázis fájljáról. Figyelembe kell venni az adatbázisok méretének években történő növekedését is.
A helyi biztonsági mentések területének tartalmaznia kell legalább egy archívumot minden adatbázis biztonsági mentéséből, plusz a legnagyobb adatbázis biztonsági mentését. Előnyös, ha ezen a területen van hely a legnagyobb adatbázis helyreállításához is. Figyelembe kell venni a biztonsági mentések és a biztonsági mentések archívumainak években történő növekedését is.
Előzetes előkészítés
A Firebird 3.0 DBMS szerver dinamikusan osztja ki és szabadítja fel a rendszer memóriát, ami töredezéshez vezethet. Például, ha egyszerre sok felhasználó lecsatlakozik a szuper szerverről, hibák léphetnek fel az új csatlakozásoknál.
A memória töredezését a rendszer paramétere vezérli vm.max_map_count, alapértelmezett értéke 64K. Ajánlott a négyes szorzás:
sudo sysctl vm.max_map_count=256000
Ahhoz, hogy az új érték a rendszer újraindításakor érvénybe lépjen, hozzá kell adnunk a fájlhoz /etc/sysctl.conf a sort:
vm.max_map_count = 256000
Érdemes megjegyzést fűzni, hogy érthető legyen a paraméter megváltoztatásának oka. Először szerkeszthetjük a fájlt, majd alkalmazhatjuk a benne lévő beállításokat:
sudo sysctl -p /etc/sysctl.conf
A szükséges csomagok telepítése
A Firebird 3.0 Linux DBMS végrehajtható fájljai függnek az ncurses könyvtáraktól (libncurses.so.5), ICU (verziótól függetlenül és a kimenetben nem megjelenítve ldd) és tommath (libtommath.so.0). Az archívum letöltéséhez és kicsomagolásához szükség van eszközökre. gzip, tar és curl vagy wget. Az ICU verziók gzip, tar és curl/wget nem kritikusak.
A csomagokkal való munka a rendszertől és a használt csomagkezelőtől függ, ezért ezeket sorrendben tekintjük át.
CentOS 8
A CentOS 8 új csomagkezelőt használ – dnf , amely "átláthatóan" hívható a yumparanccsal. Mivel a céljaink szempontjából nincs különbség közöttük, a példákban szereplő parancsok a yum.
A metadatakészlet frissítése: sudo yum makecache
A libtomath csomag egy külön E(xtra)P(ackages for)E(nterprise)L(inux) tárolóban található, ezért ellenőrizzük, hogy ez már csatlakoztatva van-e:
yum -C repolist
A "csak a gyorsítótárból" opció (-C vagy --cache-only) használják a szükségtelen ellenőrzések és letöltések kizárására, felgyorsítva a yum működését. Ha az epel-repo nincs a listán – telepítjük, és frissítjük a metaadatok gyorsítótárát:
sudo yum install epel-release &&
sudo yum makecache
Megerősítjük a kéréseket, szükség esetén ellenőrizzük a pgp-kulcsok értékeit a megbízható forrásból már ismert értékekkel.
Ha probléma merül fel a meta-információk letöltésekor https-forrásokból, akkor szerkesztenünk kell a fájlt /etc/yum.repos.d/epel.repo, helyettesítve LETS_ENCRYPT_STAGING Gyorsan emlékezzünk vissza, hogyan működik a moduláris aritmetika. Az óra már egy ismert koncepció. Az órák használata http:// és megismételjük a gyorsítótár frissítésének parancsát.
Ellenőrizzük a szükséges csomagok állapotát (az parancs összeállítása során, a példakimenetben kiszűrtünk egy 32 bites csomagot):
yum -C list
ncurses libicu libtommath
gzip tar curl wget |
grep -v i686
Installed Packages
curl.x86_64 7.61.1-11.el8 @anaconda
gzip.x86_64 1.9-9.el8 @anaconda
ncurses.x86_64 6.1-7.20180224.el8 @anaconda
Available Packages
libicu.x86_64 60.3-1.el8 BaseOS
libtommath.x86_64 1.1.0-1.el8 epel
tar.x86_64 2:1.30-4.el8 BaseOS
wget.x86_64 1.19.5-8.el8_1.1 AppStream
Látjuk, hogy curl, gzip és ncurses a telepítő álcázott repóiban találhatók (anaconda). Ezeknek az értékeknek a tudása lehetővé teszi számunkra, hogy megoldjuk az egyenletet tar – ki lett zárva a minimális rendszertelepítésből. A főverziók libncurses és libtommath többek, mint amennyi szükséges: 6 és 1 helyett 5 és 0, a megfelelő értékek. Ha ugyanaz a csomag telepítve van és elérhető – ki lett adva frissítés hozzá. Telepítjük a hiányzó csomagokat:
sudo yum install
libicu libtommath tar
Ubuntu 19
A csomagok kezelésére szolgáló segédprogramok apt, apt-get és apt-cache. Az első interaktív munkára készült, míg az utolsó kettő script használatra. A csomagok nevei kicsit mások, és tartalmazzák a verziót.
Ellenőrizzük a szükséges csomagok állapotát (az parancs összeállítása és a példa kimenet rövidítése, a 32 bites csomagokat kiszűrve):
apt list libncurses? libicu?? libtommath?
gzip tar curl wget |
grep -v i386
curl 7.65.3-1
gzip 1.10-0 [frissíthető…]
libicu63 63.2-2 [telepítve]
libncurses5 6.1
libncurses6 6.1 [telepítve, automatikus]
libtommath1 1.1.0
tar 1.30 [telepítve]
wget 1.20.3 [telepítve]
A csomagok, amelyekre a négyzetes zárójelben van megjelölve telepítve/frissíthető – telepítve van. Elérhető, de nem telepített ncurses5, a helyett curl telepítve van wget. Telepítjük a hiányzó csomagokat:
sudo apt-get install
libncurses5 libtommath1
Szimbólum linkek létrehozása
Mivel libtommath.so.1 és libncurses.so.6 visszafelé kompatibilisek libtommath.so.0 és libncurses.so.5, így a Firebird számára elegendő meglévő könyvtárverziókra hivatkozó szimbólum linkeket létrehozni.
Megkeressük libtommath.so.1 (libncurses.so.? itt találhatóak ebben a katalógusban):
find /usr -name libtommath.so.1
CentOS-on:
/usr/lib64/libtommath.so.1
Ubuntu:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Szimbólum linkek létrehozása.
CentOS-on:
sudo ln -s libtommath.so.1
/usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6
/usr/lib64/libncurses.so.5
Ubuntu:
sudo ln -s libtommath.so.1
/usr/lib/x86_64-linux-gnu/libtommath.so.0
Ellenőrizzük az eredményt (az parancs összeállítása, a példák kimenete rövidítve):
ls -lhF
$(dirname `find /usr -name libtommath.so.1`) |
grep "lib(ncurses|tommath).so."
CentOS-on:
libncurses.so.5 -> libncurses.so.6*
libncurses.so.6 -> libncurses.so.6.1*
libncurses.so.6.1*
libtommath.so.0 -> libtommath.so.1*
libtommath.so.1 -> libtommath.so.1.1.0*
libtommath.so.1.1.0*
Ubuntu:
libncurses.so.5 -> libncurses.so.5.9
libncurses.so.5.9
libncurses.so.6 -> libncurses.so.6.1
libncurses.so.6.1
libtommath.so.0 -> libtommath.so.1
libtommath.so.1 -> libtommath.so.1.1.0
libtommath.so.1.1.0
A Firebird adatbázis-kezelő rendszer disztribúciójának letöltése.
A Firebird hivatalos weboldalán (firebirdsql.org) találhatók a "hivatalos" kiadások (releases) és a "napi" build-ek (snapshot build) linkjei.
A Linuxra szánt hivatalos kiadások tar.gz archívumok és deb/rpm csomagok formájában érhetők el, míg a build-ek csak archívumokban állnak rendelkezésre. Mi a "generikus telepítőt" (generic installer a tar.gz-ból) fogjuk megvizsgálni.
A build archívumát le kell tölteni és ki kell csomagolni, de ez a két folyamat kompatibilis. A kicsomagolás helye /tmp, az URL a letöltött archívum hivatkozása.
curl:
curl -L URL | tar -zxC /tmp
wget:
wget -O– URL | tar -zxC /tmp
már tartalmaz egy előre létrehozott önaláírt TLS/SSL tanúsítványt. Ennyi nekem elegendő, mivel zárva tartom a külső hozzáférést. Azoknak, akik más típusú tanúsítványokat szeretnének használni, van curl a letöltött adatokat a standard kimenetre küldi, de nem kezeli az átirányításokat, ezért hozzáadjuk a "‑L", míg wget, éppen ellenkezőleg: kezeli az átirányításokat, de az adatokat fájlba menti, ezért a "‑O‑" opciót használjuk. A tar a kicsomagolás helyének megadására szolgál, amelybe a ki nem csomagolt file-ok kerülnek. A folyamat befejezésével megjelenik egy katalógus, mint például gzipFirebird‑3.0.5.33220‑0.amd64 három fájlal: install.sh buildroot.tar.gz, manifest.txt és Firebird telepítése.
Az előkészítő lépések során beállítottuk a rendszer paraméterértékét,
ellenőriztük a szükséges ICU, ncurses és tommath könyvtárak meglétét, valamint a ncurses és tommath megfelelő verzióit ({"418077":"libncures.so.5"}) és létrehoztuk a szükséges szimbolikus linkeket. vm.max_map_countA tényleges telepítés nagyon egyszerűen zajlik. Belépünk abba a könyvtárba, ahová a Firebird disztribúció archívuma ki lett csomagolva, ellenőrizzük és szükség esetén beállítjuk a "futtatható" jogot achmod +x install.sh és libtommath.so.0parancsra, majd elindítjuk a telepítő szkriptet:
sudo ./install.sh buildroot.tar.gz:
Az Enter billentyű megnyomásával megerősítjük a telepítés megkezdését, a kéréskor pedig megadjuk a sysdba jelszót.
A telepítő szkript automatikusan elindítja a
-unit
firebird-superserver
(a Firebird 3.0 alapértelmezett architektúrája). A Firebird szolgáltatás az alapértelmezett beállításokkal fog működni a szuper szerver számára: 2048 lapra (bázis) vonatkozó lapozási gyorsítótár, 64 MB osztott gyorsítótár és csak harmadik verziójú kliensek csatlakozása. A paraméterek áttekintése systemdfirebird.conf grep -v ^# firebird.conf | grep -v ^$ Figyelembe kell venni, hogy az új értékek a csak a Firebird szolgáltatás újraindítása után lépnek életbe.:
Új paraméterek megadása a Firebird konfigurációjában ütemezett újraegyesítés után aktiválódik.
Ellenőrizni kell a naplókat a lehetséges hibák észlelésére. csak a Firebird szolgáltatás újraindítása után lépnek életbe. Ezek a beállítások a rendszer biztonságát is befolyásolják.
A paraméterek értékeinek megválasztásakor figyelembe kell venni, hogy három fő "fogyasztó" létezik: az oldalkészlet (az adatbázis számára), a rendezési buffer (általános) és a szerver által a kliens kapcsolatok számára biztosított memória. Csak az első kettő vezérelhető – a kliens kapcsolatok memóriája az eltárolt kérések számától és szövegétől, terveitől és a kérdésekben szereplő adatbázis objektumoktól függ. A kliens kapcsolatok memóriaértéke csak empirikusan mérhető, és változhat a kliens alkalmazások és/vagy az adatbázis objektumok változásaival.
A super-server esetében, kis memóriával rendelkező hosztoknál (12-16 GB-ig) nem szabad az oldalkészletnek és a rendezési buffernek a RAM összmemóriájának harmadánál negyedénél többet megadni.
Ha az adatbázisok száma nem rögzített és változhat – az oldalkészlet teljes méretét a szerveren elérhető maximális adatbázisszámra kell osztani. Az oldalkészlet méretét oldalakban kell megadni, és külön kell bájtba átszámítani.
A klasszikus architektúrára való áttéréshez legalább nyíltan jelezni kell ServerMode be. csak a Firebird szolgáltatás újraindítása után lépnek életbe., csökkenteni kell az oldalkészletet (legfeljebb 2K), csökkenteni a rendezési buffer méretét (az összes rendezés összes elfogadott mérete osztva a maximális kapcsolatok számával), letiltani és leállítani az egységet grep -v ^# firebird.conf | grep -v ^$, engedélyezni és elindítani az egységet firebird-classic.socket.
A superclassic architektúra használata a Firebird 3.0-ban nem különösebben értelmes: a "megbízhatóság" ugyanaz, mint a super-server esetében, és ugyanaz az általános rendezési buffer. Nincs általános oldalkészlet, és a különböző kapcsolatok közötti "szinkronizálás" elvesztése ugyanolyan, mint a klasszikusnál.
Fontos észben tartani, hogy a Firebird 3.0-ban néhány paramétert (oldalkészlet, lokális fájl méretek, hash-táblák és egyéb) lehet egyénileg beállítani a databases.conf fájlban, minden adatbázis számára. A super-server számára például hasznos lehet egy kicsi értéket megadni DefaultDbCachePages be. csak a Firebird szolgáltatás újraindítása után lépnek életbe. és beállítani az egyedi oldalkészleteket a szükséges adatbázisok számára a databases.conf.
A cikkhez kapcsolódó kérdéseket a megjegyzésekben tehetitek fel, vagy írjatok nekünk a támogatási címünkre support@ibase.ru.
Forrás: habr.com
