V tomto článku opíšeme minimálnu sadu krokov potrebných pre optimálnu inštaláciu databázového systému Firebird verzie 3.0 na nové distribúcie Linuxu. Pre príklady sme zvolili CentOS 8 a Ubuntu 19.
Na „dopravu“ distribúcie Firebird na cieľový systém sme v tomto návode zvolili možnosť stiahnuť tar.gz archív prostredníctvom odkazu z oficiálnej webovej stránky projektu ().
Pre tých netrpezlivých – rovno do akcie:
Rýchla inštalácia
Upravujeme súbor /etc/sysctl.conf, pridávame riadok:
vm.max_map_count = 256000
Uložíme súbor a aplikujeme nastavenie:
sudo sysctl -p /etc/sysctl.conf
Ďalšie inštrukcie sa líšia pre CentOS 8 a Ubuntu 19, ale ODKAZ a KATALÓG označujú odkaz z oficiálnej webovej stránky projektu Firebird na stiahnutie distribúcie a adresár, do ktorého bude distribúcia rozbalená počas sťahovania.
K aktuálnemu dátumu (marec 2020) je dostupná verzia Firebird 3.0.5 ( na 64-bitovú verziu).
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 ODKAZ|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- ODKAZ|tar -zxC /tmp
Samotná inštalácia databázového systému Firebird:
cd /tmp/KATALÓG
sudo ./install.sh
Ak chcete lepšie porozumieť, na čo tieto kroky slúžia, čítajte ďalej.
Hlavná časť
Malá preambula
Predpokladáme, že operačný systém je už nainštalovaný v minimálnej verzii a nastavený prístup k verejným repozitárom alebo k ich lokálnym kópiám.
Predpokladáme, že čitateľ má základné znalosti o Linuxe a databázovom systéme Firebird.
Plánovanie
Na serveri databázového systému sa odporúča vyčleniť samostatné oddiely pre dočasné súbory (/tmp), súbory databáz a lokálne zálohy.
Dočasné súbory zahŕňajú lock-súbory, súbory triedenia, súbory „materializácie“ globálnych dočasných tabuliek (GTT) a tabuliek monitorovania. Súbory triedenia a globálnych dočasných tabuliek sa nachádzajú v /tmp, súbory mon$-tabuliek a lock-súbory – v /tmp/firebird.
Súbory triedenia sa „odstránia“ (unlink) ihneď po vytvorení, takže ich nemožno „vidieť“ v zozname adresárov – iba v zozname popisovačov (handles) procesu (označené ako deleted):
sudo ls -lhF /proc/`pgrep firebird`/fd
V zozname pseudo-adresára /proc/…/fd/ sa zobrazia symbolické odkazy, zatiaľ čo skutočné informácie o súbore poskytne:
sudo stat -L /proc/`pgrep firebird`/fd/ČÍSLO
kde ČÍSLO – popisovač (descriptor) zaujímavého súboru.
Namiesto volania „pgrep spustiteľný_súbor“ môžete priamo zadať identifikátor zaujímavého procesu.
Dočasné súbory môžu byť veľmi veľké, preto sa odporúča vyčleniť aspoň 20-30 GB. Treba mať na pamäti, že veľkosť súborov na triedenie závisí len od objemu údajov, ktoré sú vo vyhľadávaní explicitne alebo implicitne triedené, a jeden používateľ môže "vytvoriť" gigabajty dočasných súborov. /tmp Sekcia pre súbory databáz by mala obsahovať súbory všetkých databáz, plus aspoň jednu kópiu súboru najväčšej databázy. Treba brať do úvahy rast súborov databáz v horizonte niekoľkých rokov dopredu.
Sekcia lokálnych záloh by mala obsahovať aspoň jeden archív záloh všetkých databáz plus zálohu najväčšej databázy. Je žiaduce, aby na tejto sekcii bolo aj miesto na obnovenie najväčšej databázy. Treba vziať do úvahy rast záloh a archívov záloh v horizonte niekoľkých rokov dopredu.
Server databázového systému Firebird 3.0 dynamicky prideľuje a uvoľňuje systémovú pamäť, čo môže viesť k jej fragmentácii. Napríklad po jednorazovom odpojení veľkého počtu používateľov od superservera môžu vzniknúť chyby pri nových pripojeniach.
Predbežná príprava
Fragmentáciu pamäte kontroluje systémový parameter
vm.max_map_count , predvolene – 64K. Odporúča sa zvýšiť jeho hodnotu štvornásobne:sudo sysctl vm.max_map_count=256000
Aby sa nová hodnota nastavila po reštarte systému, pridáme do súboru
riadok: /etc/sysctl.conf Je dobré pridať komentár, aby bola zrozumiteľná príčina zmeny tohto parametra. Môžete najprv upraviť súbor a potom aplikovať v ňom uložené nastavenia:
vm.max_map_count = 256000
Inštalácia potrebných balíkov
sudo sysctl -p /etc/sysctl.conf
Spustiteľné súbory databázového systému Firebird 3.0 Linux závisia od knižníc ncurses (
libncurses.so.5), ICU (bez viazanosti na verziu a bez zobrazenia v výstupeldd ) a tommath (libtommath.so.0). Na načítanie a rozbalenie archívu zostavenia budú potrebné utilitky. Verzie ICU sú nepodstatné. gzip, tar a curl alebo wgetPráca s balíkmi závisí od systému a od používaného balíkového správcu v systéme, preto si ich prejdeme postupne. gzip, tar a curl/wget CentOS 8 používa nový balíkový správca –
dnf
CentOS 8
a ten sa "priehľadne" vyvoláva príkazom yum . Keďže medzi nimi nie je pre naše účely žiadny rozdiel – v príkladoch bude Aktualizujeme cache metadát:sudo yum makecache Aktualizujeme cache metadát:.
Balík libtomath sa nachádza v samostatnom E(xtra)P(ackages for)E(nterprise)L(inux) repozitári, preto overujeme, že je už pripojený: yum -C repolist
Možnosť „iba z cache“ (
-C
--cache-only-C alebo --cache-only) sa používa na vylúčenie zbytočných kontrol a sťahovania, čím sa urýchľuje práca yum. Ak nie je v zozname repositár epel – inštalujeme ho a aktualizujeme cache metadát:
sudo yum install epel-release &&
sudo yum makecache
Potvrdzujeme požiadavky, ak je to potrebné, porovnaním hodnôt pgp-kľúčov s už známymi z dôveryhodného zdroja.
Ak nastanú problémy pri sťahovaní metainformácií repositára z https- zdrojov, upravíme súbor /etc/yum.repos.d/epel.repo, nahradením https:// na http:// a znovu spustíme príkaz pre aktualizáciu cache.
Kontrolujeme stav potrebných balíkov (príkaz je zložený, v príklade výstupu je filtrovaný 32-bitový balík):
yum -C list
ncurses libicu libtommath
gzip tar curl wget |
grep -v i686
Nainštalované balíky
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
Dostupné balíky
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
Vidíme, že curl, gzip a ncurses sú umiestnené v pseudorepositári inštalátora (anaconda), a tar – je vylúčený z minimálnej inštalácie systému. Hlavné verzie libncurses a libtommath sú vyššie, než je potrebné: 6 a 1 namiesto 5 a 0, príslušne. Ak je ten istý balík nainštalovaný aj dostupný – bola vydaná aktualizácia. Inštalujeme chýbajúce balíky:
sudo yum install
libicu libtommath tar
Ubuntu 19
Na správu balíkov sú určené nástroje apt, apt‑get a apt‑cache. Prvý je určený na interaktívnu prácu, zatiaľ čo posledné dva – na použitie v skriptoch. Názvy balíkov sú o niečo iné a zahŕňajú verziu.
Kontrolujeme stav potrebných balíkov (príkaz je zložený, príklad výstupu je skrátený a filtrované sú 32-bitové balíky):
apt list libncurses? libicu?? libtommath?
gzip tar curl wget |
grep -v i386
curl 7.65.3-1
gzip 1.10-0 [upgradable…]
libicu63 63.2-2 [nainštalovaný]
libncurses5 6.1
libncurses6 6.1 [nainštalovaný,automatický]
libtommath1 1.1.0
tar 1.30 [nainštalovaný]
wget 1.20.3 [nainštalovaný]
Balíky, pre ktoré sú v hranatých zátvorkách uvedené nainštalovaný/upgradable – sú nainštalované. Dostupný, ale nie je nainštalovaný ncurses5, namiesto curl je umiestnený wget. Inštalujeme chýbajúce balíky:
sudo apt‑get install
libncurses5 libtommath1
Vytváranie symlinkov
Pretože libtommath.so.1 a libncurses.so.6 sú spätne kompatibilné s ). Na načítanie a rozbalenie archívu zostavenia budú potrebné utilitky a ), ICU (bez viazanosti na verziu a bez zobrazenia v výstupe, pre Firebird stačí vytvoriť symlinky na existujúce verzie knižníc.
Nájdeme libtommath.so.1 (libncurses.so.? sú umiestnené v tomto istom adresári):
find /usr -name libtommath.so.1
CentOS:
/usr/lib64/libtommath.so.1
Ubuntu:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Vytvárame symlinky.
CentOS:
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
Kontrolujeme výsledok (príkaz je zložený, príklady výstupu sú skrátené):
ls -lhF
$(dirname `find /usr -name libtommath.so.1`) |
grep "lib(ncurses|tommath).so."
CentOS:
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
Sťahovanie distribúcie DBMS Firebird.
Na oficiálnej stránke projektu Firebird (firebirdsql.org) sú zverejnené odkazy na distribúcie "oficiálnych" vydaní (releases) a "denných" zostáv (snapshot build).
Oficiálne vydania pre Linux sú dostupné vo forme archívov (tar.gz) a balíkov deb/rpm, zatiaľ čo zostavy sú dostupné len vo forme archívov. Posúdime "všeobecného inštalátora" (generic installer z tar.gz).
Archív zostavy je potrebné stiahnuť a rozbaliť, ale oba tieto procesy môžeme spojiť. Rozbalenie sa uskutočňuje v /tmp, URL označuje odkaz na sťahovaný archív.
curl:
curl -L URL | tar -zxC /tmp
wget:
wget -O– URL | tar -zxC /tmp
Predvolene curl pošle sťahované údaje do štandardného výstupu, ale nezpracováva presmerovania, a preto pridávame "-L", naopak: spracováva presmerovania, ale zapisuje údaje do súboru a preto dávame " wget-O-". Preuvedieme použitie tar -filtra a adresár, do ktorého bude rozbalenie vykonané. Po dokončení procesu sa objaví adresár typu gzipFirebird-3.0.5.33220-0.amd64 s tromi súbormi: install.sh buildroot.tar.gz, manifest.txt a Inštalácia Firebird.
Počas predbežnej prípravy sme nastavili hodnotu systémového parametra
, overili prítomnosť a nainštalovali knižnice ICU, ncurses a tommath. Uistili sme sa o správnosti verzií ncurses a tommath ( , predvolene – 64K. Odporúča sa zvýšiť jeho hodnotu štvornásobne:libncurses.so.5) a vytvorili potrebné symbolické odkazy. a ). Na načítanie a rozbalenie archívu zostavenia budú potrebné utilitkySamotná inštalácia sa vykonáva veľmi jednoducho. Prejdeme do adresára, do ktorého bol rozbalený archív distribúcie Firebird, skontrolujeme a, ak je to potrebné, nastavíme atribút "spustiteľný" skriptu
chmod +x install.sh buildroot.tar.gz:
spustíme inštalačný skript:
sudo ./install.sh
stlačením klávesy Enter potvrdíme začiatok inštalácie a pri ďalšej výzve zadáme heslo sysdba.
Inštalačný skript automaticky spúšťa
-unit systemdfirebird-superserver (predvoľná architektúra Firebird 3.0). Služba Firebird bude pracovať s predvolenými parametrami pre superserver: stránkový cache 2048 strán (na databázu), buffer triedení 64 MB (celkový) a pripojenie len klientov tretej verzie. Prehliadanie parametrov firebird.conf grep -v ^# firebird.conf | grep -v ^$:
Treba mať na pamäti, že nové hodnoty z
budú aktivované až po reštartovaní služby Firebird. grep -v ^# firebird.conf | grep -v ^$ будут активированы только после перезапуска сервиса Firebird.
Pri výbere hodnôt parametrov je potrebné zohľadniť, že existujú tri hlavné "spotrebitelia": stránkový cache (pre databázu), buffer triedení (spoločný) a pamäť pridelená serverom pre klientské pripojenia. Môžete spravovať iba prvé dve – objem pamäte klientských pripojení závisí od počtu a textu cachovaných požiadaviek, ich plánov a použitých v požiadavkách objektov databázy. Posúdenie pamäte klientských pripojení sa robí iba empiricky a môže sa zmeniť pri zmene klientských aplikácií a/alebo objektov databázy.
Pre superserver na hostiteľoch s malým objemom pamäte (do 12-16 GB) by ste nemali prideliť viac ako tretinu-štvrtinu z celkového objemu RAM pre stránkový cache a buffer triedenia.
Ak počet databáz nie je pevne stanovený a môže sa meniť – celkový objem pamäte stránkového cache by sa mal deliť na maximálny počet databáz, ktoré môžu byť na serveri. Veľkosť stránkového cache sa určuje v stránkach a je potrebné ju samostatne prepočítať na bajty.
Na prechod na architektúru klasiky je potrebné minimálne jasne uviesť ServerMode v grep -v ^# firebird.conf | grep -v ^$, znížiť tamže stránkový cache (nie viac ako 2K), znížiť buffer triedenia (súhrnný povolený objem všetkých triedení, delený na maximálny počet pripojení), zakázať a zastaviť jednotku (predvoľná architektúra Firebird 3.0). Služba Firebird bude pracovať s predvolenými parametrami pre superserver: stránkový cache 2048 strán (na databázu), buffer triedení 64 MB (celkový) a pripojenie len klientov tretej verzie. Prehliadanie parametrov, povoliť a spustiť jednotku firebird-classic.socket.
Použitie architektúry superklasik v Firebird 3.0 nemá osobitný význam: "spolahlivosť" – ako u superservera a rovnaký spoločný buffer triedenia. Neexistuje spoločný stránkový cache a "straty" na synchronizáciu rôznych pripojení medzi sebou sú rovnaké ako u klasiky.
Je potrebné mať na pamäti, že v Firebird 3.0 časť parametrov (stránkový cache, veľkosti lok-filu, hash-tabuliek a niektoré ďalšie) je možné zadávať v databases.conf individuálne pre každú databázu. Pre superserver je užitočné napríklad nastaviť malé hodnoty DefaultDbCachePages v grep -v ^# firebird.conf | grep -v ^$ a nastaviť individuálne stránkové cache pre požadované databázy v databases.conf.
Otázky k článku môžete klásť v komentároch alebo písať na našu podporu support@ibase.ru.
Zdroj: habr.com
