Firebird 3:n asentaminen nykyaikaisiin Linux-versioihin: CentOS8 ja Ubuntu 19

Tässä artikkelissa kuvataan vähimmäistoimet, jotka vaaditaan Firebird DBMS -version 3.0 optimaaliseen asentamiseen uusiin Linux-jakeluihin. Esimerkkeinä on valittu CentOS 8 ja Ubuntu 19.

Firebird-jakelun "toimittamiseksi" kohdejärjestelmään tässä oppaassa valitaan tar.gz-arkiston latausmahdollisuus käyttämällä linkkiä projektin viralliselta verkkosivustolta (firebirdsql.org).

Kärsimättömimmät menevät suoraan taisteluun:

Nopea asennus

Tiedoston muokkaaminen /etc/sysctl.conflisäämällä rivi:

vm.max_map_count = 256000

Tallenna tiedosto ja käytä asetusta:

sudo sysctl -p /etc/sysctl.conf

Lisäohjeet vaihtelevat CentOS 8:lle ja Ubuntu 19:lle, mutta ССЫЛКА и КАТАЛОГ ilmoita linkki Firebird-projektin viralliselta verkkosivustolta jakelun lataamista varten ja hakemisto, johon jakelu puretaan latausprosessin aikana.
Tällä hetkellä (maaliskuu 2020) nykyinen julkaisu on Firebird 3.0.5 (tässä on linkki 64-bittiseen versioon).

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

Firebird DBMS:n varsinainen asennus:

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

Jos haluat ymmärtää paremmin, mitä nämä toimet tekevät, lue eteenpäin.

Pääosa

Lyhyt johdanto

Oletetaan, että käyttöjärjestelmä on jo asennettu minimiversiona ja pääsy julkisiin tietovarastoihin tai niiden paikallisiin kopioihin on määritetty.

Lukijalla oletetaan olevan perustiedot Linuxista ja Firebird DBMS:stä.

Планирование

DBMS-palvelimessa on suositeltavaa varata erilliset osiot väliaikaisille tiedostoille (/tmp), tietokantatiedostot ja paikalliset varmuuskopiot.

Väliaikaisia ​​ovat lukkotiedostot, lajittelutiedostot, globaalien väliaikaisten taulukoiden (GTT) "materialisointi"-tiedostot ja valvontataulukot. Lajittelutiedostot ja yleiset väliaikaiset taulukot sijaitsevat /tmp, mon$-taulukkotiedostot ja lukitustiedostot – sisään /tmp/firebird.

Lajittelutiedostot "poistetaan" (unlink) heti luomisen jälkeen, joten niitä ei voi "nähdä" hakemistolistauksessa - vain prosessikahvojen luettelossa (merkitty deleted):

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

Pseudohakemistoluettelossa /proc/…/fd/ symlinkit näytetään, ja todellista tietoa tiedostosta antaa:

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

missä НОМЕР – kiinnostavan tiedoston kuvaaja (kuvaaja).

sen sijaan että soitat"pgrep исполняемый-файл"Voit heti korvata kiinnostavan prosessin tunnisteen.

Väliaikaiset tiedostot voivat olla hyvin suuria, joten /tmp On suositeltavaa varata vähintään 20-30 Gt. On syytä ottaa huomioon, että lajittelutiedostojen koko riippuu vain pyynnössä eksplisiittisesti tai implisiittisesti lajiteltujen tietojen määrästä ja yksi käyttäjä voi "luoda" gigatavuja väliaikaisia ​​tiedostoja.

Tietokantatiedostojen osion tulee sisältää kaikki tietokantatiedostot. sekä vähintään kopio suurimmasta tietokantatiedostosta. On tarpeen ottaa huomioon tietokantatiedostojen kasvu tulevaisuudessa useiden vuosien ajan.

Paikalliset varmuuskopiot -osion tulee sisältää vähintään yksi varmuuskopioarkisto kaikista tietokannoista sekä varmuuskopio suurimmasta tietokannasta. On toivottavaa, että tässä osiossa on tilaa myös suurimman tietokannan palauttamiseen. Tulevaisuudessa useiden vuosien varmuuskopioiden ja varmuuskopioarkistojen kasvu tulee ottaa huomioon.

Alustava valmistelu

Firebird 3.0 DBMS -palvelin varaa ja vapauttaa dynaamisesti järjestelmämuistia, mikä voi johtaa sen pirstoutumiseen. Esimerkiksi kun suuri määrä käyttäjiä on katkaistu superpalvelimesta kerralla, uusia yhteyksiä muodostettaessa saattaa ilmetä virheitä.

Muistin pirstoutumista ohjataan järjestelmäparametrilla vm.max_map_count, oletusarvo on 64 kt. Sen arvoa suositellaan nostamaan neljä kertaa:

sudo sysctl vm.max_map_count=256000

Lisää tiedostoon, jotta uusi arvo asetetaan, kun järjestelmä käynnistetään uudelleen /etc/sysctl.conf linja:

vm.max_map_count = 256000

Kommentti on suositeltavaa, jotta parametrin muuttamisen syy on selvä. Voit ensin muokata tiedostoa ja sitten käyttää siihen tallennettuja asetuksia:

sudo sysctl -p /etc/sysctl.conf

Tarvittavien pakettien asennus

Firebird 3.0 Linux DBMS:n suoritettavat tiedostot riippuvat ncurses-kirjastoista (libncurses.so.5), ICU (ei sidottu versioon eikä näytetä ulostulossa ldd) ja tommath (libtommath.so.0). Tarvitset apuohjelmia kokoonpanoarkiston lataamiseen ja purkamiseen gzip, tar и curl tai wget. ICU-versiot, gzip, tar и curl/wget – ovat merkityksettömiä.

Pakettien kanssa työskentely riippuu järjestelmästä ja järjestelmässä käytetystä paketinhallinnasta, joten käsittelemme ne yksitellen.

8 CentOS

CentOS 8 käyttää uutta paketinhallintaa - dnf ja sitä kutsutaan "läpinäkyvästi" komennolla yum. Koska tarkoituksiinmme niiden välillä ei ole eroa - esimerkeissä on yum.

Päivitä metatietojen välimuisti: sudo yum makecache

Libtomath-paketti sijaitsee erillisessä E(xtra)P(packages for)E(nterprise)L(inux) -varastossa, joten tarkistamme, että se on jo mukana:

yum -C repolist

Vaihtoehto "vain välimuistista" (-C tai --cache-only) käytetään poistamaan tarpeettomat tarkistukset ja lataukset, mikä tekee namista nopeampaa. Jos luettelossa ei ole epel-arkistoa, asenna se ja päivitä metatietojen välimuisti:

sudo yum install epel-release &&
sudo yum makecache

Vahvistamme pyynnöt tarvittaessa tarkistamalla pgp-avainten arvot luotetusta lähteestä jo tunnetuilla arvoilla.

Jos arkiston metatietojen lataamisessa https-resursseista on ongelmia, muokkaa tiedostoa /etc/yum.repos.d/epel.repo, korvaamassa https:// päälle http:// ja toista välimuistin päivityskomento.

Tarkistamme tarvittavien pakettien tilan (komento on monimutkainen, esimerkissä 32-bittinen paketti suodatetaan):

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

Näemme sen curl, gzip и ncurses isännöi asennusohjelman pseudo-arkistossa (anaconda) ja tar – ei kuulu järjestelmän vähimmäisasennukseen. Tärkeimmät versiot libncurses и libtommath enemmän kuin vaaditaan: 6 ja 1 5 ja 0 sijasta, vastaavasti. Jos sama paketti on asennettu ja saatavilla, sille on julkaistu päivitys. Asenna puuttuvat paketit:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Apuohjelmat on suunniteltu pakettien hallintaan apt, apt‑get и apt‑cache. Ensimmäinen on suunniteltu interaktiiviseen työhön, ja kaksi viimeistä on suunniteltu käytettäväksi skripteissä. Pakettien nimet ovat hieman erilaisia ​​ja sisältävät version.

Tarkistamme tarvittavien pakettien tilan (komento yhdistetään, esimerkkitulostusta lyhennetään ja 32-bittiset paketit suodatetaan pois):

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]

Paketit, joita hakasulkeet osoittavat installed/upgradable - asennettu. Saatavilla, mutta ei asennettuna ncurses5sen sijasta curl asennettu wget. Asenna puuttuvat paketit:

sudo apt‑get install 
libncurses5 libtommath1

Symlinkkien luominen

Koska libtommath.so.1 и libncurses.so.6 taaksepäin yhteensopiva libtommath.so.0 и libncurses.so.5, niin Firebirdille riittää symbolien luominen olemassa oleviin kirjastojen versioihin.

löytö libtommath.so.1 (libncurses.so.? samassa hakemistossa):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

/usr/lib/x86_64-linux-gnu/libtommath.so.1

Luomme symbolilinkkejä.

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

Tarkastetaan tulos (komento on monimutkainen, tulosesimerkit on lyhennetty):

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

Firebird DBMS -jakelupaketin lataaminen.

Firebird-projektin virallisella verkkosivustolla (firebirdsql.org) julkaistaan ​​linkkejä "virallisten" julkaisujen ja "päivittäisten" koontiversioiden (snapshot builds) jakeluihin.

Viralliset Linux-julkaisut ovat saatavilla arkistoina (tar.gz) ja deb/rpm-paketteina, mutta koontiversiot ovat saatavilla vain arkistoina. Harkitsemme "yleistä asennusohjelmaa" (yleinen asennusohjelma tar.gz:stä).

Rakennusarkisto on ladattava ja purettava, mutta yhdistämme molemmat prosessit. Purkaminen on tehty sisään /tmp,URL tarkoittaa linkkiä ladattavaan arkistoon.

kiemura:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Oletuksena curl lähettää ladatut tiedot stdoutiin, mutta ei käsittele uudelleenohjauksia ja lisäämme "‑L", mutta wget, päinvastoin: käsittelee uudelleenohjauksia, mutta kirjoittaa tiedot tiedostoon ja laitamme "‑O‑" varten tar ilmoittaa käytöstä gzip-suodatin ja hakemisto, johon pakkaus puretaan. Kun prosessi on valmis, tällainen hakemisto tulee näkyviin Firebird‑3.0.5.33220‑0.amd64 kolmella tiedostolla: install.sh, buildroot.tar.gz и manifest.txt.

Firebirdin asennus

Alustavan valmistelun aikana säätimme järjestelmäparametrin arvoa vm.max_map_count, tarkisti saatavuuden ja asensi teho-, ncurses- ja tommath-kirjastot. Varmista, että ncurses- ja tommath-versiot ovat oikein (libncures.so.5 и libtommath.so.0) ja loi tarvittavat symbolilinkit.

Varsinainen asennus on hyvin yksinkertaista. Mene hakemistoon, jossa Firebird-jakeluarkisto purettiin, tarkista ja aseta tarvittaessa komentosarjan "suoritettava" -lippu. install.sh:

chmod +x install.sh

suorita asennusskripti:

sudo ./install.sh

Painamalla Enter-näppäintä vahvistamme asennuksen alkamisen ja pyynnön saatuaan syötä sysdba-salasana.

Asennusskripti käynnistyy automaattisesti systemd-yksikkö firebird-superserver (hiljainen Firebird 3.0 -arkkitehtuuri). Firebird-palvelu toimii superpalvelimen oletusparametreilla: 2048 sivun sivuvälimuisti (tietokanta kohden), 64 Mt:n lajittelupuskuri (jaettu) ja vain versio XNUMX -asiakaslaitteet yhdistävä. Näytä vaihtoehdot firebird.conf:

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

Huomaa, että uudet arvot alkaen firebird.conf aktivoituu vasta Firebird-palvelun uudelleenkäynnistyksen jälkeen.

Parametriarvoja valittaessa tulee ottaa huomioon, että pääasiallisia "kuluttajia" on kolme: sivuvälimuisti (tietokantaa varten), lajittelupuskuri (jaettu) ja palvelimen asiakasyhteyksiä varten varaama muisti. Voit hallita vain kahta ensimmäistä - asiakasyhteyksien muistin määrä riippuu välimuistissa olevien kyselyjen määrästä ja tekstistä, niiden suunnitelmista ja kyselyihin liittyvistä tietokantaobjekteista. Asiakasyhteyden muistiarviot tehdään vain empiirisesti, ja ne voivat muuttua asiakassovellusten ja/tai tietokantaobjektien muuttuessa.

Vähän muistia (jopa 12-16 Gt) käyttävien isäntien superpalvelimen RAM-muistin kokonaismäärästä ei tulisi varata enempää kuin kolmasosaa tai neljäsosaa sivun välimuistiin ja lajittelupuskuriin.

Jos tietokantojen määrä ei ole kiinteä ja voi muuttua, sivuvälimuistin kokonaismäärä tulee jakaa palvelimella olevien tietokantojen enimmäismäärällä. Sivun välimuistin koko määritetään sivuina ja se on muutettava erikseen tavuiksi.

Jos haluat vaihtaa klassiseen arkkitehtuuriin, sinun on määritettävä vähintään yksiselitteisesti ServerMode в firebird.conf, pienennä sivun välimuistia (enintään 2 kt), pienennä lajittelupuskuria (kaikenlaisten sallittu kokonaismäärä jaettuna yhteyksien enimmäismäärällä), poista yksikkö käytöstä ja pysäytä se firebird-superserver, ota käyttöön ja käynnistä laite firebird-classic.socket.

Superklassisen arkkitehtuurin käyttäminen Firebird 3.0:ssa ei ole kovin järkevää: "luotettavuus" on kuin superpalvelin ja sama yleinen lajittelupuskuri. Yhteistä sivuvälimuistia ei ole ja "häviöt" eri yhteyksien synkronoinnissa keskenään ovat samat kuin perinteisessä.

On syytä muistaa, että Firebird 3.0:ssa jotkin parametrit (sivuvälimuisti, lukkotiedostojen koot, hash-taulukot ja jotkut muut) voidaan asettaa databases.conf jokaiselle tietokannalle erikseen. Superpalvelimelle on hyödyllistä esimerkiksi asettaa pieni arvo DefaultDbCachePages в firebird.conf ja asenna yksittäiset sivuvälimuistit tarvittavia tietokantoja varten databases.conf.

Kysy artikkelia koskevia kysymyksiä kommenteissa tai kirjoita kirjeitä tukiosoitteeseemme [sähköposti suojattu].

Lähde: will.com

Lisää kommentti