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 (
Kärsimättömimmät menevät suoraan taisteluun:
Nopea asennus
Tiedoston muokkaaminen /etc/sysctl.conf
lisää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 (
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 ncurses5
sen 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