Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Firebird 3 Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ вСрсии Π½Π° Linux: CentOS8 ΠΈ Ubuntu 19

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ опишСм минималния Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ дСйствия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π° инсталация Π½Π° Π‘Π£Π‘Π” Firebird вСрсия 3.0 Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ дистрибуции Π½Π° Linux. ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ са ΠΈΠ·Π±Ρ€Π°Π½ΠΈ CentOS 8 ΠΈ Ubuntu 19.

Π—Π° "доставката" Π½Π° дистрибуцията Firebird Π½Π° Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° систСма, Π² Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π΅ ΠΈΠ·Π±Ρ€Π°Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΡŠΡ‚ Π·Π° изтСглянС Π½Π° tar.gz Π°Ρ€Ρ…ΠΈΠ² ΠΎΡ‚ Π»ΠΈΠ½ΠΊΠ° Π½Π° официалния сайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (firebirdsql.org).

Π—Π° Π½Π°ΠΉ-Π½Π΅Ρ‚ΡŠΡ€ΠΏΠ΅Π»ΠΈΠ²ΠΈΡ‚Π΅ β€” Π½Π°ΠΏΡ€Π°Π²ΠΎ Π² Π±ΠΎΠΉ:

Π‘ΡŠΡ€Π·Π° инсталация

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/sysctl.conf, добавяйки Ρ€Π΅Π΄:

vm.max_map_count = 256000

Π—Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ настройката:

sudo sysctl -p /etc/sysctl.conf

ΠΠ°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΈΡ‚Π΅ инструкции Π²Π°Ρ€ΠΈΡ€Π°Ρ‚ Π·Π° CentOS 8 ΠΈ Ubuntu 19, Π½ΠΎ Π‘Π‘Π«Π›ΠšΠ ΠΈ ΠšΠΠ’ΠΠ›ΠžΠ“ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ‚ Π»ΠΈΠ½ΠΊΠ° ΠΎΡ‚ официалния сайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Firebird Π·Π° изтСглянС Π½Π° дистрибуцията ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ бъдС Ρ€Π°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π° дистрибуцията ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изтСглянСто.
Към ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° (ΠΌΠ°Ρ€Ρ‚ 2020) Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ·ΡŠΡ‚ Firebird 3.0.5 (Π΅Ρ‚ΠΎ Π»ΠΈΠ½ΠΊΠ° Π·Π° 64-Π±ΠΈΡ‚Π½Π°Ρ‚Π° вСрсия).

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

БобствСно инсталацията Π½Π° Π‘Π£Π‘Π” Firebird:

cd /tmp/ΠšΠΠ’ΠΠ›ΠžΠ“
sudo ./install.sh

Ако искатС Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΊΠ°ΠΊΠ²ΠΎ правят Ρ‚Π΅Π·ΠΈ дСйствия – Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠΎ-Π½Π°Π΄ΠΎΠ»Ρƒ.

Основна част

НСбольшая ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Π°

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π²Π΅Ρ‡Π΅ Π΅ инсталирана Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈ Π΅ настроСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈ копия.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ читатСлят ΠΈΠΌΠ° основни знания Π·Π° Linux ΠΈ Π‘Π£Π‘Π” Firebird.

ΠŸΠ»Π°Π½ΠΈΡ€Π°Π½Π΅

На ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° Π‘Π£Π‘Π” Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС отдСлят ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ дяловС Π·Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (/tmp), Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия.

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ lock-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π±Π°, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° "матСриализация" Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (GTT) ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° наблюдСниС. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π±Π° ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² /tmp, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° mon$-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ lock-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ – Π² /tmp/firebird.

Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄Π±Π° "сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Ρ‚" (unlink) Π²Π΅Π΄Π½Π°Π³Π° слСд ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ "видяни" Π² листинга Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° – само Π² списъка Π½Π° дСскрипторитС (handles) Π½Π° процСса (ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚):

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

Π’ листинга Π½Π° псСвдокаталога /proc/…/fd/ сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ симлинковС, Π° фактичСската информация Π·Π° Ρ„Π°ΠΉΠ»Π° Π΄Π°Π²Π°:

sudo stat -L /proc/`pgrep firebird`/fd/ΠΠžΠœΠ•Π 

ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΠžΠœΠ•Π  – Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€ΡŠΡ‚ Π½Π° интСрСсуващия Ρ„Π°ΠΉΠ».

ВмСсто ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Β«pgrep изпълняСм-Ρ„Π°ΠΉΠ»Β» ΠΌΠΎΠΆΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° сС подстави ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° интСрСсуващия процСс.

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° Π·Π° /tmp сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС отдСлят ΠΏΠΎΠ½Π΅ 20-30 Π“Π‘. Врябва Π΄Π° сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° сортиранС зависи само ΠΎΡ‚ ΠΎΠ±Π΅ΠΌΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС сортират явно ΠΈΠ»ΠΈ нСявно Π² заявката, ΠΈ Π΅Π΄ΠΈΠ½-СдинствСн ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° "създадС" Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π Π°Π·Π΄Π΅Π»ΡŠΡ‚ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° всички Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, плюс ΠΏΠΎΠ½Π΅ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»Π° Π½Π° Π½Π°ΠΉ-голямата Π±Π°Π·Π°. Врябва Π΄Π° сС Π²Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ растСТа Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π±Π°Π·ΠΈΡ‚Π΅ Π² пСрспСктива ΠΎΡ‚ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΠΏΡ€Π΅Π΄.

Π Π°Π·Π΄Π΅Π»ΡŠΡ‚ Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия трябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΏΠΎΠ½Π΅ ΠΏΠΎ Π΅Π΄ΠΈΠ½ Π°Ρ€Ρ…ΠΈΠ² Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ копия Π½Π° всички Π±Π°Π·ΠΈ, плюс Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π½Π°ΠΉ-голямата Π±Π°Π·Π°. Π–Π΅Π»Π°Ρ‚Π΅Π»Π½ΠΎ Π΅ Π² Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π·Π΄Π΅Π» Π΄Π° ΠΈΠΌΠ° ΠΈ място Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΠΉ-голямата Π±Π°Π·Π°. Врябва Π΄Π° сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ растСТа Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈΡ‚Π΅ копия ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ‚Π΅ ΠΈΠΌ Π² пСрспСктива ΠΎΡ‚ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π°ΠΏΡ€Π΅Π΄.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Π‘ΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π° Π‘Π£Π‘Π” Firebird 3.0 Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ разпрСдСля ΠΈ освобоТдава систСмна ΠΏΠ°ΠΌΠ΅Ρ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΉΠ½Π°Ρ‚Π° фрагмСнтация. НапримСр, слСд Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° голямо количСство ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΎΡ‚ ΡΡƒΠΏΠ΅Ρ€ΡˆΠ΅Ρ€Π²Π΅Ρ€Π°, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ Π½ΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

ЀрагмСнтацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° ΠΎΡ‚ систСмния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ vm.max_map_count, ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ – 64K. ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° сС Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ стойността ΠΌΡƒ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈΠΊΡ€Π°Ρ‚Π½ΠΎ:

sudo sysctl vm.max_map_count=256000

Π—Π° Π΄Π° сС Π·Π°ΠΏΠ°Π·ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° стойност ΠΏΡ€ΠΈ слСдващо рСстартиранС Π½Π° систСмата, Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π² Ρ„Π°ΠΉΠ»Π° /etc/sysctl.conf Ρ€Π΅Π΄:

vm.max_map_count = 256000

Π–Π΅Π»Π°Ρ‚Π΅Π»Π½ΠΎ Π΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€, Π·Π° Π΄Π° Π΅ ясна ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° промяната Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡŠΡ€Π²ΠΎ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π°, Π° слСд Ρ‚ΠΎΠ²Π° Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ настройки:

sudo sysctl -p /etc/sysctl.conf

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

Π˜Π·ΠΏΡŠΠ»Π½ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π‘Π£Π‘Π” Firebird 3.0 Linux зависят ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ncurses (libncurses.so.5), ICU (Π±Π΅Π· ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към вСрсия ΠΈ Π±Π΅Π· Π΄Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π° Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° ldd) ΠΈ tommath (libtommath.so.0). Π—Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π° Π½Π° компилацията Ρ‰Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ gzip, tar ΠΈ curl ΠΈΠ»ΠΈ wget. ВСрсиитС Π½Π° ICU gzip, tar ΠΈ curl/wget Π½Π΅ са ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ.

Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ зависи ΠΎΡ‚ систСмата ΠΈ ΠΎΡ‚ използвания Π² систСмата ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€, Π·Π°Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π³ΠΈ обсъдим ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ.

CentOS 8

CentOS 8 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ – dnf ΠΈ Ρ‚ΠΎΠΉ "ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ" сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° yum. ПонСТС Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ тях няма Ρ€Π°Π·Π»ΠΈΠΊΠ° – Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ бъдС yum.

ОбновяванС Π½Π° кСша Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅: sudo yum makecache

ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ libtomath Π΅ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ E(xtra)P(ackages for)E(nterprise)L(inux) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π·Π°Ρ‚ΠΎΠ²Π° провСрявамС Π΄Π°Π»ΠΈ Π΅ Π²Π΅Ρ‡Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½:

yum -C repolist

ΠžΠΏΡ†ΠΈΡΡ‚Π° "само ΠΎΡ‚ кСша" (-C ΠΈΠ»ΠΈ --cache-only) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π΅Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ зарСТдания, ускорявайки Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° yum. Ако Π² списъка няма рСпозитория epel – инсталирамС Π³ΠΎ ΠΈ обновявамС кСша Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅:

sudo yum install epel-release &&
sudo yum makecache

ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Ρ‚Π΅ заявкитС, ΠΊΠ°Ρ‚ΠΎ, ΠΏΡ€ΠΈ нСобходимост, сравнитС стойноститС Π½Π° pgp-ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ с Π²Π΅Ρ‡Π΅ извСстни ΠΎΡ‚ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ.

Ако Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° мСтаинформацията ΠΎΡ‚ рСпозиторията ΠΎΡ‚ https рСсурси, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Π° /etc/yum.repos.d/epel.repo, замСняйки https:// Π½Π° http:// ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π·Π° обновяванС Π½Π° кСша.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ статуса Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π΅ комплСксна, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½ ΠΎΡ‚ 32-битовия ΠΏΠ°ΠΊΠ΅Ρ‚):

yum -C list 
ncurses libicu libtommath 
gzip tar curl wget |
grep -v i686
Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ
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
Налични ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ
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

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ curl, gzip ΠΈ ncurses Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² псСвдорСпозитория Π½Π° инсталатора (anaconda), Π° tar – ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΎΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° инсталация Π½Π° систСмата. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ вСрсии libncurses ΠΈ libtommath са ΠΏΠΎ-високи ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅: 6 ΠΈ 1 вмСсто 5 ΠΈ 0, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ. Ако Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ инсталиран ΠΈ Π½Π°Π»ΠΈΡ‡Π΅Π½ – Π·Π° Π½Π΅Π³ΠΎ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΌΠ΅ липсващитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ apt, apt‑get ΠΈ apt‑cache. ΠŸΡŠΡ€Π²Π°Ρ‚Π° Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π° послСднитС Π΄Π²Π΅ – Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² скриптовС. Π˜ΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ са ΠΌΠ°Π»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ вСрсия.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ статуса Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π΅ комплСксна, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΡŠΡ‚ с ΠΈΠ·Ρ…ΠΎΠ΄Π° Π΅ ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° 32-Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ):

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]

ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби Π΅ посочСно инсталиран/upgradable – са инсталирани. НаличСн, Π½ΠΎ Π½Π΅ инсталиран ncurses5, вмСсто curl Π΅ инсталиран wget. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΌΠ΅ липсващитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ:

sudo apt‑get install 
libncurses5 libtommath1

БъздаванС на симлинковС

Въй ΠΊΠ°Ρ‚ΠΎ libtommath.so.1 ΠΈ libncurses.so.6 са ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с libtommath.so.0 ΠΈ libncurses.so.5, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π° Firebird Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ симлинковС към Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ вСрсии Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅.

НамирамС libtommath.so.1 (libncurses.so.? са Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΡΡŠΡ‰Π°Ρ‚Π° дирСктория ):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

БъздавамС симлинковС.

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° (ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π΅ комплСксна, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° са ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΈ):

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.

На официалния сайт Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Firebird (firebirdsql.org) сС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Ρ‚ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ към дистрибуции Π½Π° Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈΒ» вСрсии (releases) ΠΈ Β«Π΄Π½Π΅Π²Π½ΠΈΒ» сборки (snapshot build).

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈΡ‚Π΅ вСрсии Π·Π° Linux са Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΠ²ΠΈ (tar.gz) ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ deb/rpm, Π° сборкитС – само ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΠ²ΠΈ. Π©Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ «общия инсталатор» (generic installer ΠΎΡ‚ tar.gz).

ΠΡ€Ρ…ΠΈΠ²ΡŠΡ‚ Π½Π° сборката трябва Π΄Π° бъдС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ ΠΈ Ρ€Π°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ ΠΈ Π΄Π²Π°Ρ‚Π° Ρ‚Π΅Π·ΠΈ процСса. Π Π°Π·ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Ρ‚Π° става Π² /tmp, URL ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π»ΠΈΠ½ΠΊΠ° към изтСгляния Π°Ρ€Ρ…ΠΈΠ².

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ curl ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° стандартния ΠΈΠ·Ρ…ΠΎΠ΄, Π½ΠΎ Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° прСнасочвания ΠΈ добавямС «‑LΒ», Π° wget, ΠΎΡ‚ своя страна: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° прСнасочвания, Π½ΠΎ записва Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ„Π°ΠΉΠ» ΠΈ добавямС «‑O‑». Π—Π° tar посочвамС ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° gzip-Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π·ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Ρ‚Π°. Π‘Π»Π΅Π΄ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° процСса Ρ‰Π΅ сС появи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с Π²ΠΈΠ΄Π° Firebird‑3.0.5.33220‑0.amd64 с Ρ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°: install.sh, buildroot.tar.gz ΠΈ manifest.txt.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ Π½Π° Firebird

Π’ Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ…ΠΌΠ΅ стойността Π½Π° систСмния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ vm.max_map_count, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ…ΠΌΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ ΠΈ установихмС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ ICU, ncurses ΠΈ tommath. Π£Π±Π΅Π΄ΠΈΡ…ΠΌΠ΅ сС Π² правилността Π½Π° вСрсиитС Π½Π° ncurses ΠΈ tommath (libncures.so.5 ΠΈ libtommath.so.0) ΠΈ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ симлинковС.

Π‘ΡŠΡ‰ΠΈΠ½ΡΠΊΠ°Ρ‚Π° инсталация Π΅ ΠΌΠ½ΠΎΠ³ΠΎ проста. ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Π² дирСкторията, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Ρ€Π°Π·ΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π°Ρ€Ρ…ΠΈΠ²ΡŠΡ‚ Π½Π° дистрибуцията Firebird, провСрявамС ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ρ„Π»Π°Π³Π° «изпълним» Π½Π° скрипта install.sh:

chmod +x install.sh

стартирамС инсталационния скрипт:

sudo ./install.sh

с натисканС Π½Π° клавиша Enter ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инсталацията, Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ – въвСТдамС ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° sysdba.

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ скрипт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ стартира systemd-ΡŽΠ½ΠΈΡ‚ firebird-superserver (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Firebird 3.0). Π‘Π΅Ρ€Π²ΠΈΠ·ΡŠΡ‚ Firebird Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° супСрсСрвСра: страничСн кСш ΠΎΡ‚ 2048 страници (Π½Π° Π±Π°Π·Π°), Π±ΡƒΡ„Π΅Ρ€ Π·Π° сортиранС ΠΎΡ‚ 64 ΠœΠ‘ (ΠΎΠ±Ρ‰) ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ само Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚Π° вСрсия. ΠŸΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ firebird.conf:

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

Врябва Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π½ΠΎΠ²ΠΈΡ‚Π΅ стойности ΠΎΡ‚ firebird.conf Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ само слСд ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ стартиранС Π½Π° сСрвиза Firebird.

ΠŸΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС ΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Ρ‚Ρ€ΠΈ основни "потрСбитСля": страничния кСш (Π·Π° Π±Π°Π·Π°Ρ‚Π°), Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° сортиранС (ΠΎΠ±Ρ‰) ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° клиСнтски Π²Ρ€ΡŠΠ·ΠΊΠΈ. УправляСми са само ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ Π΄Π²Π° – ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° клиСнтски Π²Ρ€ΡŠΠ·ΠΊΠΈ зависи ΠΎΡ‚ броя ΠΈ тСкста Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈΡ‚Π΅ заявки, Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ‚Π΅ Π² заявкитС ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π°. ΠžΡ†Π΅Π½ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π·Π° клиСнтски Π²Ρ€ΡŠΠ·ΠΊΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° само Π΅ΠΌΠΏΠΈΡ€ΠΈΡ‡Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС промСня ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° клиСнтскитС прилоТСния ΠΈ/ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π°.

Π—Π° супСрсСрвСра Π½Π° хостовС с малък ΠΎΠ±Π΅ΠΌ ΠΏΠ°ΠΌΠ΅Ρ‚ (Π΄ΠΎ 12-16 Π“Π‘) Π½Π΅ трябва Π΄Π° сС отдСля Π·Π° страничния кСш ΠΈ Π±ΡƒΡ„Π΅Ρ€Π° Π·Π° сортиранС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° Π΄ΠΎ Ρ‚Ρ€ΠΈ Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚ΠΈ ΠΎΡ‚ общия ΠΎΠ±Π΅ΠΌ Π½Π° RAM.

Ако броят Π½Π° Π±Π°Π·ΠΈΡ‚Π΅ Π½Π΅ Π΅ фиксиран ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС промСня – общият ΠΎΠ±Π΅ΠΌ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° страничния кСш слСдва Π΄Π° сС Π΄Π΅Π»ΠΈ Π½Π° максималния Π±Ρ€ΠΎΠΉ Π±Π°Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π°. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° страничния кСш сС Π·Π°Π΄Π°Π²Π° Π² страницитС ΠΈ трябва Π΄Π° сС прСизчислява ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅.

Π—Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° класика Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ, явно Π΄Π° сС посочи ServerMode Π² firebird.conf, Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ‚Π°ΠΌ ΡΡŠΡ‰ΠΎ страничния кСш (Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 2K), Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡƒΡ„Π΅Ρ€ΡŠΡ‚ Π·Π° сортиранС (ΠΎΠ±Ρ‰ΠΎ допустимият ΠΎΠ±Π΅ΠΌ Π½Π° всички сортирания, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° максималния Π±Ρ€ΠΎΠΉ Π²Ρ€ΡŠΠ·ΠΊΠΈ), Π΄Π° сС Π·Π°Π±Ρ€Π°Π½ΠΈ ΠΈ спрС ΡŽΠ½ΠΈΡ‚ firebird-superserver, Π΄Π° сС Ρ€Π°Π·Ρ€Π΅ΡˆΠΈ ΠΈ стартира ΡŽΠ½ΠΈΡ‚ firebird-classic.socket.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° супСркласик Π² Firebird 3.0 няма особСн смисъл: "надСТдността" Π΅ ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°Π·ΠΈ Π½Π° супСрсСрвСра ΠΈ общият Π±ΡƒΡ„Π΅Ρ€ Π·Π° сортиранС. Няма ΠΎΠ±Ρ‰ страничСн кСш ΠΈ "Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅" ΠΏΡ€ΠΈ синхронизацията Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си са ΡΡŠΡ‰ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈ класик.

Врябва Π΄Π° сС ΠΏΠΎΠΌΠ½ΠΈ, Ρ‡Π΅ Π² Firebird 3.0 част ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ (страничния кСш, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π»ΠΎΠΊ-Ρ„Π°ΠΉΠ»Π°, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ някои Π΄Ρ€ΡƒΠ³ΠΈ) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π² databases.conf ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΎ Π·Π° всяка Π±Π°Π·Π°. Π—Π° супСрсСрвСра Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ ΠΌΠ°Π»ΠΊΠ° стойност DefaultDbCachePages Π² firebird.conf ΠΈ Π΄Π° сС установят ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΈ странични кСшовС Π·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π±Π°Π·ΠΈ Π² databases.conf.

Π’ΡŠΠΏΡ€ΠΎΡΠΈ ΠΏΠΎ статията Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° нашия адрСс Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° support@ibase.ru.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster