Šajā rakstā mēs aprakstīsim minimālo darbību kopu, kas nepieciešama Firebird DBMS versijas 3.0 optimālai instalēšanai jaunos Linux izplatījumos. Piemēriem ir atlasītas CentOS 8 un Ubuntu 19.
Lai “nogādātu” Firebird izplatīšanu mērķa sistēmā, šajā rokasgrāmatā ir atlasīta tar.gz arhīva lejupielādes opcija, izmantojot saiti no oficiālās projekta vietnes (
Nepacietīgākie dodieties tieši cīņā:
Ātra uzstādīšana
Faila rediģēšana /etc/sysctl.conf
pievienojot rindu:
vm.max_map_count = 256000
Saglabājiet failu un izmantojiet iestatījumu:
sudo sysctl -p /etc/sysctl.conf
Papildu norādījumi CentOS 8 un Ubuntu 19 atšķiras, taču ССЫЛКА
и КАТАЛОГ
norādiet saiti no oficiālās Firebird projekta vietnes izplatīšanas lejupielādei un direktoriju, kurā izplatīšana tiks izpakota lejupielādes procesa laikā.
Pašlaik (2020. gada martā) pašreizējais laidiens ir 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
Faktiskā Firebird DBVS instalēšana:
cd /tmp/КАТАЛОГ
sudo ./install.sh
Ja vēlaties labāk izprast šīs darbības, lasiet tālāk.
Galvenā daļa
Īsa preambula
Tiek pieņemts, ka OS jau ir instalēta minimālā versijā un ir konfigurēta piekļuve publiskajiem repozitorijiem vai to lokālajām kopijām.
Tiek pieņemts, ka lasītājam ir pamatzināšanas par Linux un Firebird DBVS.
plānošana
DBVS serverī pagaidu failiem ieteicams piešķirt atsevišķas sadaļas (/tmp
), datu bāzes faili un lokālās dublējumkopijas.
Pagaidu faili ietver bloķēšanas failus, šķirošanas failus, globālo pagaidu tabulu (GTT) “materializācijas” failus un uzraudzības tabulas. Kārtošanas un globālo pagaidu tabulu faili atrodas /tmp
, mon$-table faili un bloķēšanas faili – in /tmp/firebird
.
Kārtošanas faili ir “dzēsti” (unlink
) uzreiz pēc izveides, tāpēc tos nevar “redzēt” direktoriju sarakstā - tikai procesa rokturu sarakstā (atzīmēti kā deleted
):
sudo ls -lhF /proc/`pgrep firebird`/fd
Pseido direktoriju sarakstā /proc/…/fd/
tiek parādītas simboliskās saites, un faktisko informāciju par failu sniedz:
sudo stat -L /proc/`pgrep firebird`/fd/НОМЕР
kur НОМЕР
– interesējošās lietas deskriptors (deskriptors).
Tā vietā, lai zvanītu "pgrep исполняемый-файл
"Jūs varat nekavējoties aizstāt interesējošā procesa identifikatoru.
Pagaidu faili var būt ļoti lieli, tāpēc /tmp
Ieteicams atvēlēt vismaz 20-30 GB. Jāņem vērā, ka šķirošanas failu lielums ir atkarīgs tikai no pieprasījumā tieši vai netieši sakārtoto datu apjoma, un viens lietotājs var “izveidot” gigabaitus pagaidu failus.
Datu bāzes failu sadaļā ir jāietver visi datu bāzes faili. plus, vismaz, lielākā datu bāzes faila kopija. Ir jārēķinās ar datu bāzes failu pieaugumu nākotnē vairākus gadus uz priekšu.
Vietējo dublējumu sadaļā ir jābūt vismaz vienam visu datu bāzu dublējuma arhīvam, kā arī lielākās datu bāzes dublējumam. Vēlams, lai šajā sadaļā būtu vieta arī lielākās datu bāzes atjaunošanai. Jārēķinās ar dublējumu un rezerves arhīvu pieaugumu nākotnē vairāku gadu garumā.
Iepriekšēja sagatavošana
Firebird 3.0 DBVS serveris dinamiski piešķir un atbrīvo sistēmas atmiņu, kas var izraisīt tās sadrumstalotību. Piemēram, pēc tam, kad liels skaits lietotāju vienlaikus tiek atvienoti no superservera, jaunu savienojumu izveides laikā var rasties kļūdas.
Atmiņas fragmentāciju kontrolē sistēmas parametrs vm.max_map_count
, noklusējuma vērtība ir 64 K. Ieteicams palielināt tā vērtību četras reizes:
sudo sysctl vm.max_map_count=256000
Lai jaunā vērtība tiktu iestatīta, kad sistēma atsāknējas, pievienojiet failam /etc/sysctl.conf
rinda:
vm.max_map_count = 256000
Ieteicams sniegt komentāru, lai būtu skaidrs šī parametra maiņas iemesls. Vispirms varat rediģēt failu un pēc tam lietot tajā saglabātos iestatījumus:
sudo sysctl -p /etc/sysctl.conf
Nepieciešamo pakotņu instalēšana
Firebird 3.0 Linux DBVS izpildāmie faili ir atkarīgi no ncurses bibliotēkām (libncurses.so.5
), ICU (nav saistīts ar versiju un netiek parādīts izvadē ldd
) un tommath (libtommath.so.0
). Lai lejupielādētu un izsaiņotu montāžas arhīvu, jums būs nepieciešamas utilītas gzip
, tar
и curl
vai wget
. ICU versijas, gzip
, tar
и curl
/wget
– ir nenozīmīgi.
Darbs ar pakotnēm ir atkarīgs no sistēmas un sistēmā izmantotā pakotņu pārvaldnieka, tāpēc mēs tās izskatīsim pa vienam.
8 CentOS
CentOS 8 izmanto jaunu pakotņu pārvaldnieku - dnf
un to sauc par "caurspīdīgi" ar komandu yum
. Tā kā mūsu vajadzībām starp tiem nav atšķirības - piemēros tā būs yum
.
Atjauniniet metadatu kešatmiņu: sudo yum makecache
Libtomath pakotne atrodas atsevišķā E(xtra)P(ackages for)E(nterprise)L(inux) repozitorijā, tāpēc mēs pārbaudām, vai tā jau ir iekļauta:
yum -C repolist
Opcija "tikai no kešatmiņas" (-C
vai --cache-only
) tiek izmantots, lai novērstu nevajadzīgas pārbaudes un lejupielādes, padarot yum ātrāku. Ja sarakstā nav epel repozitorija, instalējiet to un atjauniniet metadatu kešatmiņu:
sudo yum install epel-release &&
sudo yum makecache
Mēs apstiprinām pieprasījumus, ja nepieciešams, pārbaudot pgp atslēgu vērtības ar tām, kas jau ir zināmas no uzticama avota.
Ja rodas problēmas ar repozitorija metainformācijas ielādi no https resursiem, rediģējiet failu /etc/yum.repos.d/epel.repo
, aizstājot https://
par http://
un atkārtojiet kešatmiņas atjaunināšanas komandu.
Mēs pārbaudām nepieciešamo pakotņu statusu (komanda ir sarežģīta, piemērā tiek filtrēta 32 bitu pakotne):
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
Mēs to redzam curl
, gzip
и ncurses
mitināts instalētāja pseidorepozitorijā (anaconda
) un tar
– izslēgts no minimālās sistēmas uzstādīšanas. Galvenās versijas libncurses
и libtommath
vairāk nekā nepieciešams: attiecīgi 6 un 1, nevis 5 un 0. Ja ir instalēta un pieejama viena un tā pati pakotne, tai ir izlaists atjauninājums. Instalējiet trūkstošās pakotnes:
sudo yum install
libicu libtommath tar
ubuntu 19
Utilītas ir paredzētas pakotņu pārvaldībai apt
, apt‑get
и apt‑cache
. Pirmais ir paredzēts interaktīvam darbam, bet pēdējie divi ir paredzēti izmantošanai skriptos. Pakešu nosaukumi nedaudz atšķiras un ietver versiju.
Mēs pārbaudām nepieciešamo pakotņu statusu (komanda ir apvienota, piemēra izvade tiek saīsināta un 32 bitu pakotnes tiek filtrētas):
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]
Pakas, uz kurām norāda kvadrātiekavas installed
/upgradable
- uzstādīts. Pieejams, bet nav instalēts ncurses5
, tā vietā curl
instalēta wget
. Instalējiet trūkstošās pakotnes:
sudo apt‑get install
libncurses5 libtommath1
Simbolu saišu izveide
Kopš libtommath.so.1
и libncurses.so.6
atpakaļ saderīgs ar libtommath.so.0
и libncurses.so.5
, tad Firebird pietiek izveidot simboliskās saites uz esošajām bibliotēku versijām.
Mēs atrodam libtommath.so.1
(libncurses.so.?
atrodas tajā pašā direktorijā):
find /usr -name libtommath.so.1
CentOS:
/usr/lib64/libtommath.so.1
Ubuntu:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Mēs veidojam simboliskās saites.
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
Pārbaudīsim rezultātu (komanda ir sarežģīta, izvades piemēri ir saīsināti):
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 izplatīšanas komplekta lejupielāde.
Firebird projekta oficiālajā vietnē (firebirdsql.org) ir publicētas saites uz “oficiālo” laidienu un “ikdienas” būvējumu (momentuzņēmumu būvējumu) izplatīšanu.
Oficiālie Linux laidieni ir pieejami kā arhīvi (tar.gz) un deb/rpm pakotnes, bet būvējumi ir pieejami tikai kā arhīvi. Mēs apsvērsim "vispārējo instalētāju" (vispārējais instalētājs no tar.gz).
Būves arhīvs ir jālejupielādē un jāizpako, taču mēs apvienosim abus procesus. Izpakošana tiek veikta /tmp
,URL apzīmē saiti uz lejupielādējamo arhīvu.
čokurošanās:
curl -L URL | tar -zxC /tmp
wget:
wget -O– URL | tar -zxC /tmp
Pēc noklusējuma curl
nosūta lejupielādētos datus uz stdout, bet neapstrādā novirzīšanu, un mēs pievienojam "‑L
", bet wget
, gluži pretēji: apstrādā novirzīšanas, bet ieraksta datus failā un mēs ievietojam "‑O‑
" Priekš tar
norāda lietošanu gzip
-filtrs un direktorijs, kurā tiks veikta izpakošana. Kad process būs pabeigts, parādīsies šāds direktorijs Firebird‑3.0.5.33220‑0.amd64
ar trim failiem: install.sh
, buildroot.tar.gz
и manifest.txt
.
Firebird instalēšana
Iepriekšējas sagatavošanas laikā mēs noregulējām sistēmas parametra vērtību vm.max_map_count
, pārbaudīja pieejamību un instalēja ICU, ncurses un tommath bibliotēkas. Pārliecinieties, vai ncurses un tommath versijas ir pareizas (libncures.so.5
и libtommath.so.0
) un izveidoja nepieciešamās simboliskās saites.
Faktiskā uzstādīšana ir ļoti vienkārša. Dodieties uz direktoriju, kurā tika izpakots Firebird izplatīšanas arhīvs, pārbaudiet un, ja nepieciešams, iestatiet skripta karogu “izpildāms”. install.sh
:
chmod +x install.sh
palaidiet instalācijas skriptu:
sudo ./install.sh
Nospiežot taustiņu Enter, mēs apstiprinām instalēšanas sākumu un pēc pieprasījuma saņemšanas ievadiet sysdba paroli.
Instalācijas skripts sākas automātiski systemd
- vienība firebird-superserver
(klusā Firebird 3.0 arhitektūra). Firebird pakalpojums darbosies ar noklusējuma parametriem superserverim: lapas kešatmiņa 2048 lappusēs (vienā datu bāzē), šķirošanas buferis 64 MB (koplietots) un savieno tikai XNUMX. versijas klientus. Skatīt opcijas firebird.conf
:
grep -v ^# firebird.conf | grep -v ^$
Lūdzu, ņemiet vērā, ka jaunās vērtības no firebird.conf
tiks aktivizēts tikai pēc pakalpojuma Firebird restartēšanas.
Izvēloties parametru vērtības, jāņem vērā, ka ir trīs galvenie “patērētāji”: lapas kešatmiņa (bāzei), šķirošanas buferis (koplietotais) un servera atvēlētā atmiņa klientu savienojumiem. Jūs varat pārvaldīt tikai pirmos divus - atmiņas apjoms klientu savienojumiem ir atkarīgs no kešatmiņā saglabāto vaicājumu skaita un teksta, to plāniem un vaicājumos iesaistītajiem datu bāzes objektiem. Klienta savienojuma atmiņas aprēķini tiek veikti tikai empīriski un var mainīties, mainoties klienta lietojumprogrammām un/vai datu bāzes objektiem.
Superserverim resursdatoros ar nelielu atmiņas apjomu (līdz 12–16 GB) lapas kešatmiņai un kārtošanas buferim nevajadzētu piešķirt vairāk par trešdaļu vai ceturtdaļu no kopējā RAM apjoma.
Ja datu bāzu skaits nav fiksēts un var mainīties, kopējais lapas kešatmiņas apjoms ir jādala ar maksimālo datu bāzu skaitu, kas var atrasties serverī. Lapas kešatmiņas lielums ir norādīts lapās, un tas ir atsevišķi jāpārvērš baitos.
Lai pārslēgtos uz klasisko arhitektūru, jums ir vismaz skaidri jānorāda ServerMode
в firebird.conf
, samaziniet lapas kešatmiņu (ne vairāk kā 2K), samaziniet kārtošanas buferi (visu veidu kopējais pieļaujamais apjoms dalīts ar maksimālo savienojumu skaitu), atspējojiet un apturiet ierīci firebird-superserver
, iespējojiet un palaidiet ierīci firebird-classic.socket
.
Superklasiskās arhitektūras izmantošanai Firebird 3.0 nav lielas jēgas: “uzticamība” ir kā superserveris un tas pats vispārīgais šķirošanas buferis. Nav kopējas lapas kešatmiņas, un “zaudējumi” dažādu savienojumu sinhronizēšanai savā starpā ir tādi paši kā klasiskajā.
Jāatceras, ka programmā Firebird 3.0 dažus parametrus (lapas kešatmiņu, bloķēšanas failu izmērus, hash tabulas un dažus citus) var iestatīt databases.conf
katrai datubāzei atsevišķi. Superserverim ir noderīgi, piemēram, iestatīt nelielu vērtību DefaultDbCachePages
в firebird.conf
un instalējiet atsevišķas lapu kešatmiņas nepieciešamajām datu bāzēm databases.conf
.
Uzdodiet jautājumus par rakstu komentāros vai rakstiet vēstules uz mūsu atbalsta adresi [e-pasts aizsargāts].
Avots: www.habr.com