Txhim kho Firebird 3 ntawm niaj hnub versions ntawm Linux: CentOS8 thiab Ubuntu 19

Hauv tsab xov xwm no peb yuav piav qhia txog qhov tsawg kawg nkaus ntawm kev ua haujlwm uas yuav tsum tau ua kom pom kev txhim kho ntawm Firebird DBMS version 3.0 ntawm Linux faib tshiab. CentOS 8 thiab Ubuntu 19 raug xaiv los ua piv txwv.

Txhawm rau "xa" Firebird faib rau lub hom phiaj, hauv phau ntawv qhia no, kev xaiv ntawm rub tawm tar.gz archive raug xaiv siv qhov txuas los ntawm lub vev xaib official (firebirdsql.org).

Rau qhov ua siab ntev tshaj plaws, mus ncaj nraim rau hauv kev sib ntaus sib tua:

Ua haujlwm nruab nrawm

Kho cov ntaub ntawv /etc/sysctl.conflos ntawm kev ntxiv kab:

vm.max_map_count = 256000

Txuag cov ntaub ntawv thiab siv qhov chaw:

sudo sysctl -p /etc/sysctl.conf

Cov lus qhia ntxiv txawv rau CentOS 8 thiab Ubuntu 19, tab sis ССЫЛКА и КАТАЛОГ taw qhia qhov txuas los ntawm lub vev xaib Firebird official lub vev xaib rau rub tawm qhov kev faib tawm thiab cov npe uas qhov kev faib tawm yuav raug tshem tawm thaum lub sijhawm rub tawm.
Tam sim no (Lub Peb Hlis 2020) qhov kev tso tawm tam sim no yog Firebird 3.0.5 (ntawm no yog qhov txuas mus rau 64-ntsis version).

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

Qhov tseeb installation ntawm Firebird DBMS:

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

Yog tias koj xav nkag siab zoo dua qhov kev ua no ua, nyeem rau.

Lub ntsiab qhov tseem ceeb

Lus qhuab qhia luv luv

Nws tau xav tias OS twb tau teeb tsa hauv qhov tsawg kawg nkaus thiab nkag mus rau cov chaw khaws ntaub ntawv pej xeem lossis lawv cov ntawv luam hauv zos tau teeb tsa.

Nws tau xav tias tus nyeem ntawv muaj kev paub txog Linux thiab Firebird DBMS.

Kev npaj

Ntawm DBMS server nws raug nquahu kom faib cov ntu cais rau cov ntaub ntawv ib ntus (/tmp), cov ntaub ntawv database thiab cov thaub qab hauv zos.

Cov ib ntus suav nrog cov ntaub ntawv kaw lus, txheeb cov ntaub ntawv, "materialization" cov ntaub ntawv ntawm cov ntxhuav thoob ntiaj teb ib ntus (GTT) thiab cov rooj saib xyuas. Cov ntaub ntawv rau sorting thiab thoob ntiaj teb ib ntus cov lus nyob rau hauv /tmp, mon$-cov ntaub ntawv rooj thiab cov ntaub ntawv kaw-hauv /tmp/firebird.

sorting cov ntaub ntawv yog "deleted" (unlink) tam sim ntawd tom qab tsim, yog li lawv tsis tuaj yeem "pom" hauv daim ntawv teev npe - tsuas yog hauv daim ntawv teev cov txheej txheem ua haujlwm (cim raws li deleted):

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

Hauv daim ntawv teev npe pseudo /proc/…/fd/ symlinks tau tshwm sim, thiab cov ntaub ntawv tseeb txog cov ntaub ntawv tau muab los ntawm:

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

qhov twg НОМЕР - tus piav qhia (descriptor) ntawm cov ntaub ntawv txaus siab.

Es tsis txhob hu "pgrep исполняемый-файл"Koj tuaj yeem hloov pauv tus cim tam sim ntawm cov txheej txheem kev txaus siab.

Cov ntaub ntawv ib ntus tuaj yeem loj heev, yog li /tmp Nws raug pom zoo kom faib tsawg kawg 20-30 GB. Nws yuav tsum raug coj mus rau hauv tus account tias qhov loj ntawm cov ntaub ntawv txheeb xyuas tsuas yog nyob ntawm tus nqi ntawm cov ntaub ntawv qhia meej lossis tsis raug txheeb xyuas hauv qhov kev thov, thiab ib tus neeg siv tuaj yeem "tsim" gigabytes ntawm cov ntaub ntawv ib ntus.

Cov seem rau cov ntaub ntawv database yuav tsum haum txhua cov ntaub ntawv database. ntxiv, yam tsawg kawg, ib daim ntawv luam ntawm cov ntaub ntawv loj tshaj plaws. Nws yog ib qho tsim nyog yuav tsum coj mus rau hauv tus account qhov kev loj hlob ntawm cov ntaub ntawv database yav tom ntej rau ntau xyoo tom ntej.

Cov ntaub ntawv thaub qab hauv zos yuav tsum muaj tsawg kawg yog ib qho thaub qab archive ntawm tag nrho cov databases ntxiv rau cov thaub qab ntawm cov ntaub ntawv loj tshaj plaws. Nws yog ntshaw tias seem no kuj muaj qhov chaw rau kev kho cov ntaub ntawv loj tshaj plaws. Kev loj hlob ntawm cov ntaub ntawv thaub qab thiab cov ntaub ntawv thaub qab yav tom ntej rau ob peb xyoos yuav tsum raug coj mus rau hauv tus account.

Kev npaj ua ntej

Firebird 3.0 DBMS neeg rau zaub mov dynamically faib thiab pub dawb lub cim xeeb, uas tuaj yeem ua rau nws tawg. Piv txwv li, tom qab ib tug loj tus naj npawb ntawm cov neeg siv yog disconnected los ntawm lub superserver ib zaug, yuav ua yuam kev thaum ua kev sib txuas tshiab.

Memory fragmentation yog tswj los ntawm qhov system parameter vm.max_map_count, default yog 64K. Nws raug pom zoo kom nce nws tus nqi los ntawm plaub zaug:

sudo sysctl vm.max_map_count=256000

Yog li ntawd tus nqi tshiab yog teem thaum lub kaw lus reboots, ntxiv rau cov ntaub ntawv /etc/sysctl.conf kab:

vm.max_map_count = 256000

Nws raug nquahu kom ua cov lus hais kom lub laj thawj ntawm kev hloov pauv qhov ntsuas no yog qhov tseeb. Koj tuaj yeem ua ntej hloov cov ntaub ntawv thiab tom qab ntawd siv cov chaw khaws tseg hauv nws:

sudo sysctl -p /etc/sysctl.conf

Txhim kho cov pob khoom xav tau

Cov ntaub ntawv ua tau zoo ntawm Firebird 3.0 Linux DBMS nyob ntawm cov tsev qiv ntawv ncurses (libncurses.so.5), ICU (tsis khi rau version thiab tsis tso tawm hauv cov zis ldd) thiab tommath (libtommath.so.0). Txhawm rau rub tawm thiab tshem tawm cov ntaub ntawv sib dhos, koj yuav xav tau cov khoom siv hluav taws xob gzip, tar и curl los yog wget. ICU versions, gzip, tar и curl/wget - tsis tseem ceeb.

Kev ua haujlwm nrog cov pob khoom nyob ntawm qhov system thiab ntawm tus neeg saib xyuas pob siv hauv qhov system, yog li peb yuav txiav txim siab lawv ib leeg.

CentOS 8

CentOS 8 siv tus thawj tswj pob tshiab - dnf thiab nws hu ua "pob tshab" los ntawm kev hais kom ua yum. Txij li thaum peb lub hom phiaj tsis muaj qhov sib txawv ntawm lawv - hauv cov piv txwv yuav muaj yum.

Hloov kho cov metadata cache: sudo yum makecache

Lub pob libtomath nyob hauv ib qho E(xtra)P(ackages for)E(nterprise)L(inux) repository, yog li peb xyuas tias nws twb suav nrog:

yum -C repolist

Kev xaiv "tsuas yog los ntawm cache" (-C los yog --cache-only) yog siv los tshem tawm cov tshev tsis tsim nyog thiab rub tawm, ua yum sai dua. Yog tias tsis muaj epel repository hauv daim ntawv, nruab nws thiab hloov kho cov metadata cache:

sudo yum install epel-release &&
sudo yum makecache

Peb lees paub qhov kev thov, yog tias tsim nyog, tshawb xyuas qhov tseem ceeb ntawm cov yuam sij pgp nrog cov uas twb paub lawm los ntawm qhov chaw ntseeg siab.

Yog tias muaj teeb meem loading repository metainformation los ntawm https cov peev txheej, ces kho cov ntaub ntawv /etc/yum.repos.d/epel.repo, hloov https:// rau http:// thiab rov ua qhov hloov tshiab cache hais kom ua.

Peb tshawb xyuas cov xwm txheej ntawm cov pob khoom xav tau (cov lus txib yog qhov nyuaj, hauv qhov piv txwv tso tawm pob 32-ntsis yog lim):

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

Peb pom qhov ntawd curl, gzip и ncurses hosted nyob rau hauv lub installer pseudo-repository (anaconda), thiab tar - cais tawm ntawm qhov tsawg kawg nkaus kev teeb tsa. Loj versions libncurses и libtommath ntau tshaj qhov xav tau: 6 thiab 1 tsis yog 5 thiab 0, feem. Yog tias tib lub pob yog ob qho tib si nruab thiab muaj, qhov hloov tshiab tau tso tawm rau nws. Nruab cov pob uas ploj lawm:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Cov khoom siv hluav taws xob tsim los tswj cov pob khoom apt, apt‑get и apt‑cache. Thawj yog tsim los rau kev sib tham ua haujlwm, thiab ob qhov kawg yog tsim los siv rau hauv cov ntawv sau. Cov npe pob yog txawv me ntsis thiab suav nrog cov version.

Peb tshawb xyuas cov xwm txheej ntawm cov pob khoom xav tau (qhov kev hais kom ua ua ke, cov qauv tso tawm luv luv, thiab cov pob 32-ntsis raug lim tawm):

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]

Cov pob khoom uas cov square brackets qhia installed/upgradable - ntsia. Muaj tab sis tsis ntsia ncurses5, hloov curl ntsia wget. Nruab cov pob uas ploj lawm:

sudo apt‑get install 
libncurses5 libtommath1

Tsim symlinks

Txij thaum lub libtommath.so.1 и libncurses.so.6 rov qab sib haum nrog libtommath.so.0 и libncurses.so.5, ces rau Firebird nws yog txaus los tsim symlinks rau cov uas twb muaj lawm versions ntawm lub tsev qiv ntawv.

Peb pom libtommath.so.1 (libncurses.so.? nyob rau hauv tib lub directory):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Peb tsim symlinks.

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

Peb tshawb xyuas qhov tshwm sim (qhov kev hais kom ua yog qhov nyuaj, cov qauv tso zis tau luv luv):

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

Rub tawm Firebird DBMS cov khoom siv faib khoom.

Lub vev xaib raug cai ntawm Firebird project (firebirdsql.org) luam tawm cov kev sib txuas rau kev xa tawm ntawm "kev cai" tshaj tawm thiab "txhua hnub" tsim (snapshot tsim).

Cov ntaub ntawv Linux tso tawm yog muaj raws li cov ntaub ntawv (tar.gz) thiab deb / rpm pob, tab sis tsim tsuas yog muaj raws li cov ntaub ntawv. Peb yuav xav txog "generic installer" (generic installer los ntawm tar.gz).

Lub tsev archive yuav tsum tau rub tawm thiab unpacked, tab sis peb yuav muab ob qho tib si txheej txheem. Unpacking yog ua tiav hauv /tmp, URL qhia qhov txuas mus rau cov ntaub ntawv rub tawm.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

los ntawm neej ntawd hais curl xa cov ntaub ntawv rub tawm mus rau stdout tab sis tsis lis kev hloov pauv thiab peb ntxiv "‑L", ib wget, ntawm qhov tsis sib xws: tuav redirections, tab sis sau cov ntaub ntawv rau ib cov ntaub ntawv thiab peb muab tso rau "‑O‑" Rau tar qhia siv gzip-filter thiab phau ntawv teev npe uas lub unpacking yuav ua. Thaum cov txheej txheem tiav lawm, ib daim ntawv teev npe zoo li no yuav tshwm sim Firebird‑3.0.5.33220‑0.amd64 nrog peb cov ntaub ntawv: install.sh, buildroot.tar.gz и manifest.txt.

Txhim kho Firebird

Thaum npaj ua ntej, peb tau kho tus nqi ntawm qhov system parameter vm.max_map_count, kuaj xyuas qhov muaj thiab teeb tsa ICU, ncurses thiab tommath tsev qiv ntawv. Xyuas kom tseeb tias cov versions ntawm ncurses thiab tommath yog lawm (libncures.so.5 и libtommath.so.0) thiab tsim cov symlinks tsim nyog.

Qhov tseeb installation yog yooj yim heev. Mus rau hauv phau ntawv teev npe uas Firebird faib archive tau unpacked, kos thiab, yog tias tsim nyog, teeb tsa tus chij "executable" rau tsab ntawv. install.sh:

chmod +x install.sh

khiav lub installation tsab ntawv:

sudo ./install.sh

Los ntawm nias tus yuam sij Enter peb paub meej tias qhov pib ntawm lub installation, thiab thaum tau txais kev thov, nkag mus rau sysdba lo lus zais.

Lub installation tsab ntawv pib pib systemd-unit firebird-superserver (tseem ceeb Firebird 3.0 architecture). Qhov kev pabcuam Firebird yuav ua haujlwm nrog qhov tsis zoo rau tus superserver: nplooj ntawv cache ntawm 2048 nplooj ntawv (ib database), ib qho kev sib cais ntawm 64 MB (sib koom) thiab txuas tsuas yog version XNUMX cov neeg siv khoom. Saib cov kev xaiv firebird.conf:

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

Thov nco ntsoov tias tus nqi tshiab los ntawm firebird.conf yuav qhib tau tsuas yog tom qab rov pib qhov kev pabcuam Firebird.

Thaum xaiv qhov ntsuas qhov tseem ceeb, nws yuav tsum raug coj mus rau hauv tus account tias muaj peb lub ntsiab "cov neeg siv khoom": nplooj ntawv cache (rau cov ntaub ntawv khaws cia), kev sib cais tsis pub (sib koom) thiab lub cim xeeb faib los ntawm lub server rau cov neeg siv khoom sib txuas. Koj tsuas tuaj yeem tswj hwm thawj ob - tus nqi ntawm kev nco rau cov neeg siv khoom sib txuas yog nyob ntawm tus lej thiab cov ntawv ntawm cov lus nug hauv cached, lawv cov phiaj xwm thiab cov khoom siv database koom nrog cov lus nug. Cov kev sib txuas ntawm cov neeg siv khoom nco tau kwv yees tsuas yog ua kom pom tseeb thiab tuaj yeem hloov pauv raws li cov neeg siv khoom siv thiab / lossis cov khoom siv database hloov.

Rau ib tug superserver ntawm hosts nrog ib tug me me ntawm lub cim xeeb (txog 12-16 GB), koj yuav tsum tsis txhob faib ntau tshaj ib feem peb los yog ib tug peb lub hlis twg ntawm tag nrho cov nqi ntawm RAM rau nplooj ntawv cache thiab cais tsis.

Yog tias tus naj npawb ntawm cov ntaub ntawv tsis raug kho thiab tuaj yeem hloov pauv, tag nrho cov nplooj ntawv cache nco yuav tsum tau muab faib los ntawm cov ntaub ntawv ntau tshaj plaws uas tuaj yeem ua rau ntawm lub server. Qhov loj ntawm nplooj ntawv cache yog teev nyob rau hauv nplooj ntawv thiab yuav tsum tau muab cais hloov mus rau hauv bytes.

Txhawm rau hloov mus rau classic architecture, koj yuav tsum, tsawg kawg, qhia meej meej ServerMode в firebird.conf, txo cov nplooj ntawv cache nyob ntawd (tsis pub ntau tshaj 2K), txo qhov kev tsis sib xws (tag nrho cov ntim tso cai ntawm txhua hom faib los ntawm ntau qhov kev sib txuas), lov tes taw thiab nres chav tsev firebird-superserver, pab thiab pib lub tsev firebird-classic.socket.

Siv lub superclassic architecture hauv Firebird 3.0 tsis ua rau muaj kev nkag siab ntau: "kev ntseeg siab" zoo li tus superserver thiab tib yam kev sib cais tsis sib xws. Tsis muaj ib nplooj ntawv cache thiab cov "lossis" rau synchronizing sib txawv kev sib txuas nrog ib leeg yog tib yam li hauv classic ib.

Nws yuav tsum nco ntsoov tias hauv Firebird 3.0 qee qhov tsis muaj (nplooj cache, xauv cov ntaub ntawv qhov ntau thiab tsawg, hash ntxhuav thiab qee qhov) tuaj yeem teeb tsa hauv databases.conf tus kheej rau txhua tus database. Rau ib tus superserver nws muaj txiaj ntsig, piv txwv li, los teeb tsa tus nqi me me DefaultDbCachePages в firebird.conf thiab nruab ib tus neeg nplooj ntawv caches rau cov ntaub ntawv xav tau hauv databases.conf.

Nug cov lus nug txog kab lus hauv cov lus, lossis sau ntawv rau peb qhov chaw nyob txhawb nqa [email tiv thaiv].

Tau qhov twg los: www.hab.com

Ntxiv ib saib