Firebird 3-ün Müasir Linux Versiyalarında quraşdırılması: CentOS8 və Ubuntu 19

Bu yazıda biz Firebird DBMS 3.0 versiyasının yeni Linux paylamalarında optimal quraşdırılması üçün tələb olunan minimum tədbirlər toplusunu təsvir edəcəyik. Nümunələr üçün CentOS 8 və Ubuntu 19 seçilmişdir.

Firebird paylamasını hədəf sistemə "çatdırmaq" üçün bu təlimatda tar.gz arxivini yükləmək seçimi layihənin rəsmi saytından keçiddən istifadə etməklə seçilir (firebirdsql.org).

Ən səbirsizlər üçün birbaşa döyüşə keçin:

Sürətli quraşdırma

Faylın redaktə edilməsi /etc/sysctl.confxətti əlavə etməklə:

vm.max_map_count = 256000

Faylı yadda saxlayın və parametrləri tətbiq edin:

sudo sysctl -p /etc/sysctl.conf

Əlavə təlimatlar CentOS 8 və Ubuntu 19 üçün fərqlidir, lakin ССЫЛКА и КАТАЛОГ paylamanı yükləmək üçün Firebird layihəsinin rəsmi veb saytından keçidi və yükləmə prosesi zamanı paylamanın açılacağı kataloqu göstərin.
Hal-hazırda (mart 2020) cari buraxılış Firebird 3.0.5-dir (burada link 64 bitlik versiyaya).

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 DBMS-nin faktiki quraşdırılması:

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

Bu hərəkətlərin nə etdiyini daha yaxşı başa düşmək istəyirsinizsə, oxuyun.

Əsas hissəsidir

Qısa preambula

Ehtimal olunur ki, ƏS artıq minimal versiyada quraşdırılıb və ictimai depolara və ya onların yerli nüsxələrinə giriş konfiqurasiya edilib.

Oxucunun Linux və Firebird DBMS haqqında əsas biliyə malik olduğu güman edilir.

Planlaşdırma

DBMS serverində müvəqqəti fayllar üçün ayrıca bölmələr ayırmaq tövsiyə olunur (/tmp), verilənlər bazası faylları və yerli ehtiyat nüsxələri.

Müvəqqəti olanlara kilid faylları, çeşidləmə faylları, qlobal müvəqqəti cədvəllərin (GTT) “materializasiya” faylları və monitorinq cədvəlləri daxildir. Çeşidləmə və qlobal müvəqqəti cədvəllər üçün fayllar burada yerləşir /tmp, mon$-cədvəl faylları və kilid faylları – daxilində /tmp/firebird.

Çeşidləmə faylları "silindi" (unlink) yaradıldıqdan dərhal sonra, buna görə də onları kataloq siyahısında "görmək" mümkün deyil - yalnız proses tutacaqları siyahısında (kimi qeyd olunur) deleted):

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

Pseudo kataloq siyahısında /proc/…/fd/ simvolik keçidlər göstərilir və fayl haqqında faktiki məlumat aşağıdakılar tərəfindən verilir:

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

hara НОМЕР – maraq faylının deskriptoru (deskriptoru).

Zəng etmək əvəzinə "pgrep исполняемый-файл“Maraq prosesinin identifikatorunu dərhal əvəz edə bilərsiniz.

Müvəqqəti fayllar çox böyük ola bilər, belə ki /tmp Ən azı 20-30 GB ayırmaq tövsiyə olunur. Nəzərə almaq lazımdır ki, faylların çeşidlənməsinin ölçüsü yalnız sorğuda açıq və ya gizli şəkildə çeşidlənmiş məlumatların miqdarından asılıdır və bir istifadəçi gigabayt müvəqqəti faylları "yara" bilər.

Verilənlər bazası faylları üçün bölmə bütün verilənlər bazası fayllarını yerləşdirməlidir. üstəlik, ən azı, ən böyük verilənlər bazası faylının surəti. Gələcəkdə bir neçə il ərzində verilənlər bazası fayllarının artımını nəzərə almaq lazımdır.

Yerli ehtiyat nüsxələri bölməsində bütün verilənlər bazalarının ən azı bir ehtiyat nüsxə arxivi və ən böyük verilənlər bazasının ehtiyat nüsxəsi olmalıdır. Bu bölmədə ən böyük verilənlər bazasını bərpa etmək üçün yer də olması arzu edilir. Gələcəkdə bir neçə il ərzində ehtiyat nüsxələrin və ehtiyat arxivlərin artımı nəzərə alınmalıdır.

İlkin hazırlıq

Firebird 3.0 DBMS serveri sistem yaddaşını dinamik şəkildə ayırır və azad edir, bu da onun parçalanmasına səbəb ola bilər. Məsələn, çox sayda istifadəçi bir anda superserverdən ayrıldıqdan sonra yeni bağlantılar qurarkən xətalar baş verə bilər.

Yaddaşın parçalanması sistem parametri ilə idarə olunur vm.max_map_count, standart 64K-dır. Dəyərini dörd dəfə artırmaq tövsiyə olunur:

sudo sysctl vm.max_map_count=256000

Sistem yenidən başladıqda yeni dəyər təyin olunsun ki, fayla əlavə edin /etc/sysctl.conf xətt:

vm.max_map_count = 256000

Bu parametrin dəyişdirilməsinin səbəbi aydın olması üçün şərh vermək məsləhətdir. Əvvəlcə faylı redaktə edə və sonra orada saxlanan parametrləri tətbiq edə bilərsiniz:

sudo sysctl -p /etc/sysctl.conf

Tələb olunan paketlərin quraşdırılması

Firebird 3.0 Linux DBMS-nin icra edilə bilən faylları ncurses kitabxanalarından asılıdır (libncurses.so.5), ICU (versiyaya bağlı deyil və çıxışda göstərilmir ldd) və tommat (libtommath.so.0). Montaj arxivini yükləmək və qablaşdırmadan çıxarmaq üçün sizə yardımçı proqramlar lazımdır gzip, tar и curl və ya wget. ICU versiyaları, gzip, tar и curl/wget - əhəmiyyətsizdir.

Paketlərlə işləmək sistemdən və sistemdə istifadə olunan paket menecerindən asılıdır, ona görə də onları bir-bir nəzərdən keçirəcəyik.

CentOS 8

CentOS 8 yeni paket menecerindən istifadə edir – dnf və əmrlə “şəffaf” adlanır yum. Bizim məqsədlərimiz üçün onlar arasında heç bir fərq olmadığı üçün - nümunələrdə olacaq yum.

Metadata keşini yeniləyin: sudo yum makecache

Libtomat paketi ayrıca E(xtra)P(ackages for)E(nterprise)L(inux) repozitoriyada yerləşir, ona görə də onun artıq daxil olduğunu yoxlayırıq:

yum -C repolist

Seçim "yalnız keşdən" (-C və ya --cache-only) lazımsız yoxlamaları və yükləmələri aradan qaldırmaq üçün istifadə olunur, yum daha sürətli olur. Siyahıda epel deposu yoxdursa, onu quraşdırın və metadata keşini yeniləyin:

sudo yum install epel-release &&
sudo yum makecache

Lazım gələrsə, pgp açarlarının dəyərlərini etibarlı mənbədən məlum olanlarla yoxlayaraq sorğuları təsdiq edirik.

Https resurslarından repozitoriya metainformasiyasını yükləməkdə problemlər yaranarsa, faylı redaktə edin /etc/yum.repos.d/epel.repo, əvəz edir https:// haqqında http:// və keş yeniləmə əmrini təkrarlayın.

Tələb olunan paketlərin vəziyyətini yoxlayırıq (komanda mürəkkəbdir, nümunə çıxışında 32 bitlik paket süzülür):

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

Biz bunu görürük curl, gzip и ncurses quraşdırıcı psevdo-repozitorunda yerləşdirilib (anaconda), və tar – minimum sistem quraşdırılmasından xaric edilir. Əsas versiyalar libncurses и libtommath tələb olunandan çox: müvafiq olaraq 6 və 1 əvəzinə 5 və 0. Eyni paket həm quraşdırılıb, həm də mövcuddursa, onun üçün yeniləmə buraxılıb. Çatışmayan paketləri quraşdırın:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Utilitlər paketləri idarə etmək üçün nəzərdə tutulmuşdur apt, apt‑get и apt‑cache. Birincisi interaktiv iş üçün, sonuncu ikisi isə skriptlərdə istifadə üçün nəzərdə tutulub. Paket adları bir qədər fərqlidir və versiyanı ehtiva edir.

Tələb olunan paketlərin vəziyyətini yoxlayırıq (komanda birləşdirilir, nümunə çıxışı qısaldılır və 32 bitlik paketlər süzülür):

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]

Kvadrat mötərizələrin göstərdiyi paketlər installed/upgradable - quraşdırılmışdır. Mövcud, lakin quraşdırılmayıb ncurses5, əvəzinə curl quraşdırılıb wget. Çatışmayan paketləri quraşdırın:

sudo apt‑get install 
libncurses5 libtommath1

Simvolların yaradılması

Çünki libtommath.so.1 и libncurses.so.6 ilə geriyə doğru uyğun gəlir libtommath.so.0 и libncurses.so.5, onda Firebird üçün kitabxanaların mövcud versiyalarına simvolik bağlantılar yaratmaq kifayətdir.

Tapın libtommath.so.1 (libncurses.so.? eyni kataloqda yerləşir):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Biz simvolik əlaqələr yaradırıq.

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

Nəticəni yoxlayaq (komanda mürəkkəbdir, çıxış nümunələri qısaldılır):

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 paylama dəsti endirilir.

Firebird layihəsinin rəsmi veb-saytı (firebirdsql.org) “rəsmi” buraxılışların və “gündəlik” quruluşların (snapshot qurmalarının) paylanmasına keçidləri dərc edir.

Rəsmi Linux buraxılışları arxiv (tar.gz) və deb/rpm paketləri kimi mövcuddur, lakin qurmalar yalnız arxiv kimi mövcuddur. Biz "ümumi quraşdırıcı" (tar.gz-dən ümumi quraşdırıcı) nəzərdən keçirəcəyik.

Quraşdırma arxivi endirilməli və açılmalıdır, lakin biz hər iki prosesi birləşdirəcəyik. Qablaşdırmada aparılır /tmp,URL yüklənə bilən arxivə keçidi bildirir.

qıvrım:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Qiyabi curl endirilmiş məlumatları stdout-a göndərir, lakin yönləndirmələri idarə etmir və biz əlavə edirik "‑L", a wget, əksinə: yönləndirmələri idarə edir, lakin məlumatları fayla yazır və biz "‑O‑" üçün tar istifadəni göstərir gzip-filtr və qablaşdırmanın açılacağı kataloq. Proses başa çatdıqda, belə bir kataloq görünəcək Firebird‑3.0.5.33220‑0.amd64 üç fayl ilə: install.sh, buildroot.tar.gz и manifest.txt.

Firebird quraşdırılması

İlkin hazırlıq zamanı biz sistem parametrinin dəyərini tənzimlədik vm.max_map_count, mövcudluğu yoxladı və ICU, ncurses və tommath kitabxanalarını quraşdırdı. Ncurses və tommath versiyalarının düzgün olduğundan əmin olun (libncures.so.5 и libtommath.so.0) və lazımi simvolik əlaqələr yaratdı.

Faktiki quraşdırma çox sadədir. Firebird paylama arxivinin açıldığı qovluğa gedin, yoxlayın və lazım olduqda skript üçün “icra edilə bilən” bayrağı təyin edin. install.sh:

chmod +x install.sh

quraşdırma skriptini işə salın:

sudo ./install.sh

Enter düyməsini basaraq quraşdırmanın başlanğıcını təsdiqləyirik və sorğunu aldıqdan sonra sysdba parolunu daxil edin.

Quraşdırma skripti avtomatik olaraq başlayır systemd- vahid firebird-superserver (səssiz Firebird 3.0 arxitekturası). Firebird xidməti superserver üçün standart parametrlərlə işləyəcək: 2048 səhifəlik səhifə keşi (hər verilənlər bazası), 64 MB çeşidləmə buferi (paylaşılan) və yalnız versiya XNUMX müştərilərini birləşdirən. Seçimlərə baxın firebird.conf:

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

Nəzərə alın ki, yeni dəyərlər firebird.conf yalnız Firebird xidmətini yenidən işə saldıqdan sonra aktivləşdiriləcək.

Parametr dəyərlərini seçərkən nəzərə alınmalıdır ki, üç əsas “istehlakçı” var: səhifə keşi (verilənlər bazası üçün), çeşidləmə buferi (paylaşılan) və müştəri əlaqələri üçün server tərəfindən ayrılmış yaddaş. Siz yalnız ilk ikisini idarə edə bilərsiniz - müştəri əlaqələri üçün yaddaşın miqdarı keşlənmiş sorğuların sayı və mətnindən, onların planlarından və sorğularda iştirak edən verilənlər bazası obyektlərindən asılıdır. Müştəri əlaqə yaddaşı təxminləri yalnız empirik şəkildə aparılır və müştəri proqramları və/yaxud verilənlər bazası obyektləri dəyişdikcə dəyişə bilər.

Az miqdarda yaddaşa (12-16 GB-a qədər) sahib olan hostlarda bir superserver üçün səhifənin önbelleği və çeşidləmə buferi üçün ümumi RAM miqdarının üçdə birindən və ya dörddə birindən çoxunu ayırmamalısınız.

Verilənlər bazalarının sayı sabit deyilsə və dəyişə bilərsə, səhifənin keş yaddaşının ümumi həcmi serverdə ola biləcək verilənlər bazalarının maksimum sayına bölünməlidir. Səhifə önbelleğinin ölçüsü səhifələrdə müəyyən edilir və ayrıca baytlara çevrilməlidir.

Klassik arxitekturaya keçmək üçün, ən azı, açıq şəkildə qeyd etməlisiniz ServerMode в firebird.conf, oradakı səhifə önbelleğini azaldın (2K-dan çox olmayan), çeşidləmə buferini azaldın (bütün növlərin ümumi icazə verilən həcmi maksimum bağlantı sayına bölünür), bölməni söndürün və dayandırın firebird-superserver, cihazı işə salın və işə salın firebird-classic.socket.

Firebird 3.0-da superklassik arxitekturadan istifadə o qədər də məntiqli deyil: “etibarlılıq” superserver və eyni ümumi çeşidləmə buferi kimidir. Ümumi səhifə önbelleği yoxdur və müxtəlif əlaqələri bir-biri ilə sinxronlaşdırmaq üçün "itkilər" klassiklə eynidir.

Yadda saxlamaq lazımdır ki, Firebird 3.0-da bəzi parametrlər (səhifə önbelleği, kilid fayl ölçüləri, hash cədvəlləri və bəziləri) müəyyən edilə bilər. databases.conf hər bir verilənlər bazası üçün ayrıca. Bir superserver üçün, məsələn, kiçik bir dəyər təyin etmək faydalıdır DefaultDbCachePages в firebird.conf və tələb olunan verilənlər bazası üçün fərdi səhifə keşlərini quraşdırın databases.conf.

Şərhlərdə məqalə ilə bağlı suallar verin və ya dəstək ünvanımıza məktublar yazın [e-poçt qorunur].

Mənbə: www.habr.com

Добавить комментарий