Inštalácia Firebird 3 na moderné verzie Linuxu: CentOS8 a Ubuntu 19

V tomto článku popíšeme minimálnu sadu akcií potrebných na optimálnu inštaláciu Firebird DBMS verzie 3.0 na nové distribúcie Linuxu. Ako príklady sú vybrané CentOS 8 a Ubuntu 19.

Na „dodanie“ distribúcie Firebird do cieľového systému sa v tejto príručke vyberie možnosť stiahnutia archívu tar.gz pomocou odkazu z oficiálnej webovej stránky projektu (firebirdsql.org).

Pre tých najnetrpezlivejších choďte priamo do boja:

Rýchla inštalácia

Úprava súboru /etc/sysctl.confpridaním riadku:

vm.max_map_count = 256000

Uložte súbor a použite nastavenie:

sudo sysctl -p /etc/sysctl.conf

Ďalšie pokyny sa líšia pre CentOS 8 a Ubuntu 19, ale ССЫЛКА и КАТАЛОГ uveďte odkaz z oficiálnej webovej stránky projektu Firebird na stiahnutie distribúcie a adresár, do ktorého sa distribúcia rozbalí počas procesu sťahovania.
Aktuálne (marec 2020) je aktuálne vydanie Firebird 3.0.5 (tu je odkaz na 64-bitovú verziu).

8 CentOS

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 ССЫЛКА|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- ССЫЛКА|tar -zxC /tmp

Aktuálna inštalácia Firebird DBMS:

cd /tmp/КАТАЛОГ
sudo ./install.sh

Ak chcete lepšie pochopiť, čo tieto akcie robia, čítajte ďalej.

Hlavná časť

Krátka preambula

Predpokladá sa, že OS je už nainštalovaný v minimálnej verzii a je nakonfigurovaný prístup k verejným úložiskám alebo ich lokálnym kópiám.

Predpokladá sa, že čitateľ má základné znalosti Linuxu a Firebird DBMS.

plánovanie

Na serveri DBMS sa odporúča vyčleniť samostatné sekcie pre dočasné súbory (/tmp), databázové súbory a lokálne zálohy.

Medzi dočasné patria súbory zámkov, triediace súbory, „materializačné“ súbory globálnych dočasných tabuliek (GTT) a monitorovacie tabuľky. Súbory na triedenie a globálne dočasné tabuľky sa nachádzajú v /tmp, mon$-table súbory a zámkové súbory – in /tmp/firebird.

Triediace súbory sú „odstránené“ (unlink) ihneď po vytvorení, takže ich nie je možné „vidieť“ vo výpise adresára – iba v zozname spracovateľov procesov (označených ako deleted):

sudo ls -lhF /proc/`pgrep firebird`/fd

Vo výpise pseudo adresára /proc/…/fd/ sú zobrazené symbolické odkazy a aktuálne informácie o súbore sú dané:

sudo stat -L /proc/`pgrep firebird`/fd/НОМЕР

kde НОМЕР – deskriptor (deskriptor) súboru záujmu.

Namiesto volania"pgrep исполняемый-файл„Okamžite môžete nahradiť identifikátor procesu, ktorý vás zaujíma.

Dočasné súbory môžu byť veľmi veľké, napr /tmp Odporúča sa prideliť aspoň 20-30 GB. Je potrebné vziať do úvahy, že veľkosť triediacich súborov závisí len od množstva dát explicitne alebo implicitne triedených v požiadavke a jeden používateľ môže „vytvoriť“ gigabajty dočasných súborov.

Sekcia pre databázové súbory musí obsahovať všetky databázové súbory. plus minimálne kópia najväčšieho databázového súboru. Je potrebné počítať s nárastom databázových súborov v budúcnosti na niekoľko rokov dopredu.

Časť lokálnych záloh musí obsahovať aspoň jeden záložný archív všetkých databáz plus zálohu najväčšej databázy. Je žiaduce, aby táto sekcia obsahovala aj priestor na obnovu najväčšej databázy. Treba brať do úvahy nárast záloh a záloh v budúcnosti na niekoľko rokov.

Predbežná príprava

Server Firebird 3.0 DBMS dynamicky prideľuje a uvoľňuje systémovú pamäť, čo môže viesť k jej fragmentácii. Napríklad po odpojení veľkého počtu používateľov od superservera naraz sa môžu vyskytnúť chyby pri vytváraní nových pripojení.

Fragmentácia pamäte je riadená systémovým parametrom vm.max_map_count, predvolená hodnota je 64 kB. Odporúča sa zvýšiť jeho hodnotu štyrikrát:

sudo sysctl vm.max_map_count=256000

Aby sa nová hodnota nastavila pri reštarte systému, pridajte do súboru /etc/sysctl.conf riadok:

vm.max_map_count = 256000

Je vhodné uviesť komentár, aby bol jasný dôvod zmeny tohto parametra. Najprv môžete upraviť súbor a potom použiť nastavenia v ňom uložené:

sudo sysctl -p /etc/sysctl.conf

Inštalácia požadovaných balíkov

Spustiteľné súbory Firebird 3.0 Linux DBMS závisia od knižníc ncurses (libncurses.so.5), JIP (nie je viazaná na verziu a nezobrazuje sa vo výstupe ldd) a tommath (libtommath.so.0). Na stiahnutie a rozbalenie archívu zostavy budete potrebovať pomocné programy gzip, tar и curl alebo wget. verzie JIS, gzip, tar и curl/wget – sú bezvýznamné.

Práca s balíkmi závisí od systému a od správcu balíkov, ktorý sa v systéme používa, preto ich budeme posudzovať jeden po druhom.

8 CentOS

CentOS 8 používa nového správcu balíkov – dnf a nazýva sa to príkazom „transparentne“. yum. Keďže pre naše účely medzi nimi nie je žiadny rozdiel - v príkladoch bude yum.

Aktualizujte vyrovnávaciu pamäť metadát: sudo yum makecache

Balík libtomath sa nachádza v samostatnom úložisku E(xtra)P(ackages for)E(nterprise)L(inux), takže skontrolujeme, či je už zahrnutý:

yum -C repolist

Možnosť „len z vyrovnávacej pamäte“ (-C alebo --cache-only) sa používa na odstránenie zbytočných kontrol a sťahovaní, vďaka čomu je mňam rýchlejšie. Ak v zozname nie je žiadne úložisko epel, nainštalujte ho a aktualizujte vyrovnávaciu pamäť metadát:

sudo yum install epel-release &&
sudo yum makecache

Požiadavky v prípade potreby potvrdzujeme kontrolou hodnôt kľúčov pgp s tými, ktoré sú už známe z dôveryhodného zdroja.

Ak sa vyskytnú problémy s načítaním metainformácií úložiska zo zdrojov https, upravte súbor /etc/yum.repos.d/epel.repo, nahradenie https:// na http:// a zopakujte príkaz na aktualizáciu vyrovnávacej pamäte.

Skontrolujeme stav požadovaných balíkov (príkaz je komplikovaný, vo výstupe príkladu je filtrovaný 32-bitový balík):

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

To vidíme curl, gzip и ncurses hosťované v pseudorepozitári inštalačného programu (anaconda), a tar – vylúčené z minimálnej inštalácie systému. Hlavné verzie libncurses и libtommath viac, ako je požadované: 6 a 1 namiesto 5 a 0, v tomto poradí. Ak je rovnaký balík nainštalovaný aj dostupný, bola preň vydaná aktualizácia. Nainštalujte chýbajúce balíčky:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Pomôcky sú navrhnuté na správu balíkov apt, apt‑get и apt‑cache. Prvý je určený na interaktívnu prácu a posledné dva sú určené na použitie v skriptoch. Názvy balíkov sa mierne líšia a zahŕňajú verziu.

Skontrolujeme stav požadovaných balíkov (príkaz je kombinovaný, výstup príkladu je skrátený a 32-bitové balíky sú odfiltrované):

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 [installed]
libncurses5 6.1
libncurses6 6.1 [installed,automatic]
libtommath1 1.1.0
tar 1.30 [installed]
wget 1.20.3 [installed]

Balíky, pre ktoré sú uvedené hranaté zátvorky installed/upgradable – nainštalovaný. K dispozícii, ale nie je nainštalovaný ncurses5, namiesto curl nainštalovaný wget. Nainštalujte chýbajúce balíčky:

sudo apt‑get install 
libncurses5 libtommath1

Vytváranie symbolických odkazov

Od libtommath.so.1 и libncurses.so.6 spätne kompatibilný s libtommath.so.0 и libncurses.so.5, potom pre Firebird stačí vytvoriť symbolické odkazy na existujúce verzie knižníc.

Nájdeme to libtommath.so.1 (libncurses.so.? umiestnené v rovnakom 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 symbolické odkazy.

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

Skontrolujeme výsledok (príkaz je komplikovaný, príklady výstupov 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 distribučnej súpravy Firebird DBMS.

Oficiálna webová stránka projektu Firebird (firebirdsql.org) zverejňuje odkazy na distribúcie „oficiálnych“ vydaní a „denných“ verzií (snapshot builds).

Oficiálne vydania Linuxu sú dostupné ako archívy (tar.gz) a balíčky deb/rpm, ale zostavy sú dostupné iba ako archívy. Budeme brať do úvahy „generický inštalátor“ (generický inštalátor z tar.gz).

Archív zostavy je potrebné stiahnuť a rozbaliť, ale skombinujeme oba procesy. Rozbalenie sa vykonáva v /tmp,URL označuje odkaz na stiahnuteľný archív.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

V predvolenom nastavení curl odošle stiahnuté údaje na stdout, ale nespracuje presmerovania a pridáme "‑L", ale wget, naopak: spracováva presmerovania, ale zapisuje údaje do súboru a vložíme "‑O‑". Pre tar uviesť použitie gzip-filter a adresár, do ktorého sa rozbalenie vykoná. Po dokončení procesu sa zobrazí adresár, ako je tento Firebird‑3.0.5.33220‑0.amd64 s tromi súbormi: install.sh, buildroot.tar.gz и manifest.txt.

Inštalácia Firebirdu

Pri predbežnej príprave sme upravili hodnotu parametra systému vm.max_map_count, skontroloval dostupnosť a nainštaloval knižnice JIS, ncurses a tommath. Uistite sa, že verzie ncurses a tommath sú správne (libncures.so.5 и libtommath.so.0) a vytvorili potrebné symbolické odkazy.

Samotná inštalácia je veľmi jednoduchá. Prejdite do adresára, kde bol rozbalený distribučný archív Firebird, skontrolujte a v prípade potreby nastavte pre skript príznak „spustiteľný“ install.sh:

chmod +x install.sh

spustite inštalačný skript:

sudo ./install.sh

Stlačením klávesu Enter potvrdíme spustenie inštalácie a po prijatí požiadavky zadáme heslo sysdba.

Automaticky sa spustí inštalačný skript systemd-jednotka firebird-superserver (tichá architektúra Firebird 3.0). Služba Firebird bude pracovať s predvolenými parametrami pre superserver: vyrovnávacia pamäť stránok 2048 stránok (na databázu), vyrovnávacia pamäť na triedenie 64 MB (zdieľaná) a pripojenie iba klientov verzie XNUMX. Zobraziť možnosti firebird.conf:

grep -v ^# firebird.conf | grep -v ^$

Upozorňujeme, že nové hodnoty od firebird.conf sa aktivuje až po reštartovaní služby Firebird.

Pri výbere hodnôt parametrov je potrebné vziať do úvahy, že existujú traja hlavní „spotrebitelia“: vyrovnávacia pamäť stránok (pre databázu), vyrovnávacia pamäť triedenia (zdieľaná) a pamäť pridelená serverom pre pripojenia klientov. Môžete spravovať iba prvé dva - množstvo pamäte pre pripojenia klientov závisí od počtu a textu dotazov uložených v cache, ich plánov a databázových objektov zahrnutých do dotazov. Odhady pamäte pripojenia klienta sa robia len empiricky a môžu sa meniť podľa toho, ako sa menia klientske aplikácie a/alebo databázové objekty.

Pre superserver na hostiteľoch s malým množstvom pamäte (do 12-16 GB) by ste pre vyrovnávaciu pamäť stránok a triediacu vyrovnávaciu pamäť nemali vyčleniť viac ako tretinu alebo štvrtinu celkového množstva pamäte RAM.

Ak počet databáz nie je pevný a môže sa meniť, celkové množstvo pamäte cache stránok by sa malo vydeliť maximálnym počtom databáz, ktoré môžu byť na serveri. Veľkosť vyrovnávacej pamäte stránok je špecifikovaná v stránkach a musí sa samostatne previesť na bajty.

Ak chcete prejsť na klasickú architektúru, musíte to aspoň výslovne špecifikovať ServerMode в firebird.conf, znížte tam vyrovnávaciu pamäť stránok (nie viac ako 2 kB), znížte vyrovnávaciu pamäť triedenia (celkový povolený objem všetkých druhov vydelený maximálnym počtom pripojení), deaktivujte a zastavte jednotku firebird-superserver, aktivujte a spustite jednotku firebird-classic.socket.

Použitie superklasickej architektúry vo Firebird 3.0 nedáva veľký zmysel: „spoľahlivosť“ je ako superserver a rovnaký všeobecný triediaci buffer. Neexistuje žiadna spoločná cache stránok a „straty“ pre synchronizáciu rôznych spojení medzi sebou sú rovnaké ako pri klasickom.

Malo by sa pamätať na to, že vo Firebird 3.0 je možné nastaviť niektoré parametre (vyrovnávacia pamäť stránky, veľkosti súborov zámkov, hašovacie tabuľky a niektoré ďalšie) databases.conf individuálne pre každú databázu. Pre superserver je užitočné napríklad nastaviť malú hodnotu DefaultDbCachePages в firebird.conf a nainštalujte jednotlivé vyrovnávacie pamäte stránok pre požadované databázy databases.conf.

Opýtajte sa na otázky k článku v komentároch alebo napíšte listy na našu adresu podpory [chránené e-mailom].

Zdroj: hab.com

Pridať komentár