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 (
Ən səbirsizlər üçün birbaşa döyüşə keçin:
Sürətli quraşdırma
Faylın redaktə edilməsi /etc/sysctl.conf
xə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 (
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