A Firebird 3 telepítése modern Linux-verziókra: CentOS 8 és Ubuntu 19

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 (firebirdsql.org).

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ő (itt a link 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

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster