Pag-instalar sa Firebird 3 sa Modernong Bersyon sa Linux: CentOS8 ug Ubuntu 19

Niini nga artikulo, among ihulagway ang minimum nga set sa mga lakang nga gikinahanglan alang sa kamalaumon nga pag-instalar sa Firebird DBMS version 3.0 sa bag-ong Linux distributions. Ang CentOS 8 ug Ubuntu 19 gipili alang sa mga pananglitan.

Aron "ihatag" ang pag-apod-apod sa Firebird sa target nga sistema, sa kini nga giya, ang kapilian sa pag-download sa tar.gz archive gikan sa link gikan sa opisyal nga website sa proyekto (firebirdsql.org).

Alang sa labing walay pailub - diha-diha dayon sa gubat:

Paspas nga instalar

Pag-edit sa file /etc/sysctl.confpinaagi sa pagdugang sa linya:

vm.max_map_count = 256000

I-save ang file ug i-apply ang setting:

sudo sysctl -p /etc/sysctl.conf

Ang dugang nga mga panudlo lahi alang sa CentOS 8 ug Ubuntu 19, apan ССЫЛКА и КАТАЛОГ ipasabut ang usa ka link gikan sa opisyal nga website sa proyekto sa Firebird alang sa pag-download sa pag-apod-apod ug ang direktoryo diin ang pag-apod-apod maablihan sa panahon sa pag-download.
Sa pagkakaron (Marso 2020), ang pagpagawas sa Firebird 3.0.5 may kalabutan (ania ang link alang sa 64-bit nga bersyon).

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 ССЫЛКА|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

Ang aktuwal nga pag-instalar sa Firebird DBMS:

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

Kung gusto nimo nga mas masabtan kung unsa kini nga mga aksyon, basaha.

Main nga bahin

Usa ka gamay nga pasiuna

Gituohan nga ang OS na-install na sa minimum nga bersyon ug ang pag-access sa mga pampublikong repositoryo o sa ilang lokal nga mga kopya gi-configure.

Gituohan nga ang magbabasa adunay sukaranan nga kahibalo sa Linux ug sa Firebird DBMS.

Pagplano

Sa server sa DBMS, girekomendar nga maggahin ug bulag nga mga seksyon alang sa temporaryo nga mga file (/tmp), mga file sa database ug mga lokal nga backup.

Ang temporaryo naglakip sa lock-files, sorting files, "materialization" files sa global temporary tables (GTT) ug monitoring tables. Ang sort ug global temporary table files nahimutang sa /tmp, mon$-table files ug lock-files - in /tmp/firebird.

Ang pag-sort sa mga file "gitangtang" (unlink) diha-diha dayon human sa paglalang, mao nga dili sila "makita" sa listahan sa direktoryo - sa listahan lamang sa mga pagdumala sa proseso (gimarkahan ingon nga deleted):

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

Sa usa ka pseudo-direktoryo nga listahan /proc/…/fd/ gipakita ang mga symlink, ug ang aktuwal nga kasayuran bahin sa file gihatag pinaagi sa:

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

diin НОМЕР – descriptor (descriptor) sa file sa interes.

Imbes nga tawagan"pgrep исполняемый-файл» mahimo nimong ilisan dayon ang identifier sa proseso sa interes.

Ang temporaryo nga mga file mahimong dako kaayo, busa alang sa /tmp kini girekomendar sa paggahin sa labing menos 20-30 GB. Hinumdumi nga ang gidak-on sa sort files nagdepende lamang sa gidaghanon sa datos nga klaro o dili klaro nga gihan-ay sa hangyo, ug ang usa ka user mahimong "makahimo" og gigabytes sa temporaryo nga mga file.

Ang seksyon alang sa mga file sa database kinahanglan adunay mga file sa tanan nga mga database. plus labing menos usa ka kopya sa pinakadako nga database file. Kinahanglan nga tagdon ang pagtubo sa mga file sa database sa umaabot sa daghang mga tuig sa umaabot.

Ang lokal nga backup nga seksyon kinahanglan adunay labing menos usa ka backup nga archive sa tanan nga mga database ug usa ka backup sa pinakadako nga database. Gitinguha nga kini nga seksyon usab adunay usa ka lugar aron mapasig-uli ang pinakadako nga database. Ang pagtubo sa mga backup ug mga archive sa mga backup sa umaabot sa daghang mga tuig kinahanglan nga tagdon.

Preliminary nga pagpangandam

Ang Firebird 3.0 DBMS server dinamikong naggahin ug nagpagawas sa memorya sa sistema, nga mahimong mosangpot sa pagkabahinbahin niini. Pananglitan, human sa usa ka dako nga gidaghanon sa mga tiggamit madiskonekta gikan sa superserver sa samang higayon, ang mga sayop mahimong mahitabo sa panahon sa bag-ong mga koneksyon.

Ang pagkabahin sa memorya gikontrol sa usa ka parameter sa sistema vm.max_map_count, ang default kay 64K. Girekomenda nga i-quadruple ang kantidad niini:

sudo sysctl vm.max_map_count=256000

Aron mabutang ang bag-ong kantidad kung ang sistema gi-reboot, idugang sa file /etc/sysctl.conf linya:

vm.max_map_count = 256000

Gisugyot nga maghimo usa ka komento aron ang hinungdan sa pagbag-o sa kini nga parameter klaro. Mahimo nimo una nga i-edit ang file ug dayon i-apply ang mga setting nga gitipigan niini:

sudo sysctl -p /etc/sysctl.conf

Pag-instalar sa gikinahanglan nga mga pakete

Ang Firebird 3.0 Linux DBMS executables nagdepende sa ncurses nga mga librarya (libncurses.so.5), ICU (nga walay paghisgot sa bersyon ug walay display sa output ldd) ug tommath (libtommath.so.0). Ang mga utility gikinahanglan sa pag-download ug pag-unpack sa assembly archive gzip, tar и curl o wget. Mga bersyon sa ICU, gzip, tar и curl/wget - mga walay hinungdan.

Ang pagtrabaho sa mga pakete nagdepende sa sistema ug sa tagdumala sa pakete nga gigamit sa sistema, mao nga tagdon namon sila sa usag usa.

CentOS 8

Ang CentOS 8 naggamit ug bag-ong package manager − dnf ug kini "transparently" gitawag sa sugo yum. Tungod kay alang sa atong mga katuyoan walay kalainan tali kanila - sa mga panig-ingnan adunay yum.

I-update ang cache sa metadata: sudo yum makecache

Ang libtomath nga pakete anaa sa usa ka separado nga E(xtra)P(ackages para sa)E(nterprise)L(inux) nga repository, busa susiha nga kini nalakip na:

yum -C repolist

Cache lamang nga kapilian (-C o --cache-only) gigamit sa pagwagtang sa wala kinahanglana nga mga pagsusi ug pag-download, nga naghimo sa yum nga mas paspas. Kung walay epel repository sa lista, i-install kini ug i-update ang metadata cache:

sudo yum install epel-release &&
sudo yum makecache

Gikumpirma namon ang mga hangyo, kung kinahanglan, susihon ang mga kantidad sa mga yawe sa pgp sa mga nahibal-an na gikan sa usa ka kasaligan nga gigikanan.

Kung adunay mga problema sa pag-load sa meta-information sa repository gikan sa https-resources, unya usba ang file /etc/yum.repos.d/epel.repo, pagpuli https:// sa http:// ug sublion ang cache update command.

Susiha ang kahimtang sa gikinahanglan nga mga pakete (komplikado ang command, sa pananglitan nga output usa ka 32-bit nga pakete ang gisala):

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

Atong makita kana curl, gzip и ncurses gibutang sa installer pseudo-repository (anaconda), ug tar - Wala iapil sa minimum nga pag-instalar sa sistema. Mga mayor nga bersyon libncurses и libtommath labaw pa sa gikinahanglan: 6 ug 1 imbes nga 5 ug 0, matag usa. Kung ang parehas nga pakete na-install ug magamit, usa ka update ang gipagawas alang niini. I-install ang nawala nga mga pakete:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Mga gamit sa pagdumala sa package apt, apt‑get и apt‑cache. Ang una gidisenyo alang sa interactive nga trabaho, ug ang kataposang duha kay gamiton sa mga script. Ang mga ngalan sa pakete gamay nga lahi ug naglakip sa bersyon.

Susiha ang kahimtang sa gikinahanglan nga mga pakete (ang sugo gipilo, ang sample nga output gipamub-an ug ang 32-bit nga mga pakete gisala):

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]

Mga pakete nga adunay square bracket installed/upgradable – instalar. Anaa apan wala ma-install ncurses5, imbes nga curl gibutang wget. I-install ang nawala nga mga pakete:

sudo apt‑get install 
libncurses5 libtommath1

Paghimo og mga symlink

Sukad sa libtommath.so.1 и libncurses.so.6 pabalik nga compatible sa libtommath.so.0 и libncurses.so.5, unya alang sa Firebird igo na ang paghimo og mga symlink sa mga magamit nga bersyon sa mga librarya.

Nakakaplag kami libtommath.so.1 (libncurses.so.? nahimutang sa samang direktoryo):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Naghimo kami og mga symlink.

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

Gisusi namo ang resulta (komplikado ang command, gipamub-an ang mga pananglitan sa output):

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

Nagkarga sa distribution kit sa Firebird DBMS.

Ang opisyal nga website sa proyekto sa Firebird (firebirdsql.org) nagpatik sa mga link sa mga pag-apod-apod sa "opisyal" nga pagpagawas ug "adlaw-adlaw" nga pagtukod (snapshot build).

Ang mga opisyal nga pagpagawas alang sa Linux magamit isip mga archive (tar.gz) ug deb/rpm nga mga pakete, samtang ang mga build magamit lamang isip mga archive. Atong tagdon ang "general installer" (generic installer gikan sa tar.gz).

Ang archive sa asembliya kinahanglan nga i-download ug i-unpack, apan among i-combine ang duha niini nga mga proseso. Ang pag-unpack gihimo sa /tmp, ang URL nagpasabot ug link sa na-download nga archive.

kulot:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

pinaagi sa default curl nagpadala sa na-download nga datos ngadto sa stdout, apan wala magdumala sa mga redirect, mao nga among idugang ang "‑L", a wget, sa sukwahi: nagdumala sa mga pag-redirect, apan nagsulat sa datos sa usa ka file ug gibutang namon ang "‑O‑". Kay tar ipakita ang paggamit gzip-filter ug ang direktoryo diin ang pag-unpack ipahigayon. Sa pagkompleto sa proseso, usa ka direktoryo sa porma ang makita Firebird‑3.0.5.33220‑0.amd64 nga adunay tulo ka mga file: install.sh, buildroot.tar.gz и manifest.txt.

Pag-instalar sa Firebird

Sa dagan sa pasiuna nga pagpangandam, among gi-adjust ang bili sa parameter sa sistema vm.max_map_count, gisusi ug gi-install ang ICU, ncurses ug tommath library. Tinoa nga husto ang mga bersyon sa ncurses ug tommath (libncures.so.5 и libtommath.so.0) ug naghimo sa gikinahanglan nga mga symlink.

Ang aktuwal nga pag-instalar yano ra kaayo. Lakaw ngadto sa direktoryo diin ang archive sa pag-apod-apod sa Firebird wala maputos, susiha ug, kung gikinahanglan, ibutang ang "mahimo" nga bandila alang sa script install.sh:

chmod +x install.sh

pagdagan ang script sa pag-install:

sudo ./install.sh

pinaagi sa pagpindot sa Enter key, among gikumpirma ang pagsugod sa pag-instalar, ug sa pagkadawat sa hangyo, among gisulod ang sysdba password.

Ang script sa pag-install awtomatiko nga nagdagan systemd-yunit firebird-superserver (default nga Firebird 3.0 nga arkitektura). Ang serbisyo sa Firebird modagan uban ang default nga mga setting alang sa superserver: 2048 page cache (matag base), 64 MB sort buffer (gipaambit), ug koneksyon lamang alang sa bersyon XNUMX nga mga kliyente. Tan-awa ang mga setting firebird.conf:

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

Timan-i nga ang bag-ong mga kantidad gikan sa firebird.conf ma-activate lamang human ma-restart ang serbisyo sa Firebird.

Kung nagpili mga kantidad sa parameter, kinahanglan nga tagdon nga adunay tulo nga nag-unang "mga konsumedor": ang cache sa panid (alang sa database), ang sort buffer (gipaambit) ug ang memorya nga gigahin sa server alang sa mga koneksyon sa kliyente. Mahimo nimong kontrolon ang una nga duha - ang kantidad sa memorya alang sa mga koneksyon sa kliyente nagdepende sa gidaghanon ug teksto sa mga gi-cache nga mga hangyo, ilang mga plano, ug ang mga butang sa database nga nahilambigit sa mga hangyo. Ang pagbanabana sa memorya sa mga koneksyon sa kliyente gihimo lamang sa empiriko ug mahimong mausab kung ang mga aplikasyon sa kliyente ug/o mga butang sa database mausab.

Alang sa usa ka superserver sa mga host nga adunay gamay nga panumduman (hangtod sa 12-16 GB), kinahanglan nga dili ka maggahin labaw pa sa ikatulo hangtod sa quarter sa kinatibuk-ang RAM alang sa cache sa panid ug pagsunud sa buffer.

Kung ang gidaghanon sa mga base dili pirmi ug mahimong mausab, ang kinatibuk-ang kantidad sa panumduman sa cache sa panid kinahanglan bahinon sa labing kadaghan nga base nga mahimo sa server. Ang gidak-on sa cache sa panid gipiho sa mga panid ug kinahanglan nga i-convert sa mga byte nga gilain.

Aron mabalhin sa klasiko nga arkitektura, kinahanglan nimo nga klaro nga ipiho ServerMode в firebird.conf, pakunhuran ang cache sa panid sa parehas nga lugar (dili molapas sa 2K), pakunhuran ang pagsunud sa buffer (ang kinatibuk-ang gitugot nga gidaghanon sa tanan nga mga lahi nga gibahin sa labing kadaghan nga mga koneksyon), pag-disable ug paghunong sa yunit firebird-superserver, pagpagana ug pagpadagan sa yunit firebird-classic.socket.

Ang paggamit sa superclassic nga arkitektura sa Firebird 3.0 dili kaayo hinungdan: ang "kasaligan" sama sa usa ka superserver ug parehas nga buffer. Walay komon nga cache sa panid ug ang "pagkawala" alang sa pag-synchronize sa lain-laing mga koneksyon sa usag usa parehas sa classic.

Kinahanglan nga hinumdoman nga sa Firebird 3.0 ang pipila sa mga parameter (panid cache, lock file sizes, hash tables, ug uban pa) mahimong ibutang sa databases.conf tagsa-tagsa alang sa matag base. Alang sa usa ka superserver, mapuslanon, pananglitan, ang pagbutang usa ka gamay nga kantidad DefaultDbCachePages в firebird.conf ug i-install ang indibidwal nga mga cache sa panid alang sa gikinahanglan nga mga database sa databases.conf.

Pangutan-a ang mga pangutana bahin sa artikulo sa mga komento, o pagsulat og mga sulat sa among adres sa suporta [protektado sa email].

Source: www.habr.com

Idugang sa usa ka comment