Firebird 3-ի տեղադրում Linux-ի ժամանակակից տարբերակներում՝ CentOS8 և Ubuntu 19

Այս հոդվածում մենք նկարագրելու ենք գործողությունների նվազագույն փաթեթը, որն անհրաժեշտ է Linux-ի նոր բաշխումների վրա Firebird DBMS 3.0 տարբերակի օպտիմալ տեղադրման համար: Օրինակների համար ընտրված են 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 DBMS-ի իրական տեղադրումը.

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

Եթե ​​ցանկանում եք ավելի լավ հասկանալ, թե ինչ են անում այս գործողությունները, կարդացեք շարունակությունը:

Հիմնական մասը

Կարճ նախաբան

Ենթադրվում է, որ ՕՀ-ն արդեն տեղադրված է նվազագույն տարբերակով, և մուտքը հանրային պահեստներ կամ դրանց տեղական պատճենները կազմաձևված է:

Ենթադրվում է, որ ընթերցողը հիմնարար գիտելիքներ ունի Linux-ի և Firebird DBMS-ի մասին:

Պլանավորում

DBMS սերվերի վրա խորհուրդ է տրվում հատկացնել առանձին բաժիններ ժամանակավոր ֆայլերի համար (/tmp), տվյալների բազայի ֆայլերը և տեղական կրկնօրինակները:

Ժամանակավորները ներառում են կողպեքի ֆայլերը, ֆայլերի տեսակավորումը, գլոբալ ժամանակավոր աղյուսակների (GTT) «նյութականացման» ֆայլերը և մոնիտորինգի աղյուսակները: Տեսակավորման և գլոբալ ժամանակավոր աղյուսակների ֆայլերը գտնվում են /tmp, mon$-table ֆայլեր և lock-files – in /tmp/firebird.

Տեսակավորող ֆայլերը «ջնջվում են» (unlink) անմիջապես ստեղծելուց հետո, այնպես որ դրանք չեն կարող «տեսնել» գրացուցակում, միայն գործընթացի բռնակների ցանկում (նշված է որպես deleted):

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

Կեղծ գրացուցակի ցանկում /proc/…/fd/ ցուցադրվում են սիմհղումներ, և ֆայլի մասին փաստացի տեղեկատվությունը տրվում է հետևյալով.

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

որտեղ НОМЕР – հետաքրքրություն ներկայացնող ֆայլի նկարագրիչ (նկարագրիչ):

Զանգելու փոխարեն»pgrep исполняемый-файл«Դուք կարող եք անմիջապես փոխարինել շահագրգիռ գործընթացի նույնացուցիչը:

Ժամանակավոր ֆայլերը կարող են լինել շատ մեծ, ուստի /tmp Խորհուրդ է տրվում հատկացնել առնվազն 20-30 ԳԲ։ Պետք է հաշվի առնել, որ ֆայլերի տեսակավորման չափը կախված է միայն հարցումում բացահայտ կամ անուղղակի տեսակավորված տվյալների քանակից, և մեկ օգտվող կարող է «ստեղծել» գիգաբայթ ժամանակավոր ֆայլեր:

Տվյալների բազայի ֆայլերի բաժինը պետք է տեղավորի տվյալների բազայի բոլոր ֆայլերը: գումարած, նվազագույնը, տվյալների բազայի ամենամեծ ֆայլի պատճենը: Անհրաժեշտ է հաշվի առնել տվյալների բազայի ֆայլերի աճը ապագայում մի քանի տարի:

Տեղական կրկնօրինակների բաժինը պետք է պարունակի բոլոր տվյալների բազաների առնվազն մեկ պահուստային արխիվ, գումարած ամենամեծ տվյալների բազայի կրկնօրինակը: Ցանկալի է, որ այս բաժինը պարունակի նաև ամենամեծ տվյալների բազան վերականգնելու տարածք։ Պետք է հաշվի առնել ապագայում մի քանի տարիների կրկնօրինակների և պահուստային արխիվների աճը։

Նախնական նախապատրաստում

Firebird 3.0 DBMS սերվերը դինամիկ կերպով տեղաբաշխում և ազատում է համակարգի հիշողությունը, ինչը կարող է հանգեցնել դրա մասնատման: Օրինակ, այն բանից հետո, երբ մեծ թվով օգտատերեր միանգամից անջատվեն սուպերսերվերից, կարող են սխալներ առաջանալ նոր կապեր հաստատելիս:

Հիշողության մասնատումը վերահսկվում է համակարգի պարամետրով 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 DBMS-ի գործարկվող ֆայլերը կախված են ncurses գրադարաններից (libncurses.so.5), ICU (կապված չէ տարբերակի հետ և չի ցուցադրվում ելքում ldd) և տոմատ (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
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

Մենք դա տեսնում ենք 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]

Փաթեթներ, որոնց համար նշված են քառակուսի փակագծերը 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 DBMS բաշխման փաթեթի ներբեռնում:

Firebird նախագծի պաշտոնական կայքէջը (firebirdsql.org) հրապարակում է հղումներ դեպի «պաշտոնական» թողարկումների և «ամենօրյա» բլոկների բաշխումները (պատկերապատկերային կառուցումներ):

Պաշտոնական Linux թողարկումները հասանելի են որպես արխիվներ (tar.gz) և deb/rpm փաթեթներ, բայց build-ները հասանելի են միայն որպես արխիվներ: Մենք կդիտարկենք «ընդհանուր տեղադրիչը» (ընդհանուր տեղադրիչը tar.gz-ից):

Ստեղծման արխիվը պետք է ներբեռնվի և ապափաթեթավորվի, բայց մենք կհամատեղենք երկու գործընթացները: Ապափաթեթավորումը կատարվում է /tmp,URL-ը նշանակում է ներբեռնվող արխիվի հղումը:

գանգուր:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

By default curl ուղարկում է ներբեռնված տվյալները stdout-ին, բայց չի կառավարում վերահղումները, և մենք ավելացնում ենք «‑L», Ա wget, ընդհակառակը. կարգավորում է վերահղումները, բայց տվյալները գրում է ֆայլում և մենք դնում ենք «‑O‑« Համար tar նշեք օգտագործումը gzip- զտիչը և գրացուցակը, որտեղ կկատարվի ապափաթեթավորումը: Երբ գործընթացը ավարտվի, կհայտնվի այսպիսի գրացուցակ Firebird‑3.0.5.33220‑0.amd64 երեք ֆայլերով. install.sh, buildroot.tar.gz и manifest.txt.

Firebird-ի տեղադրում

Նախնական պատրաստման ընթացքում մենք ճշգրտեցինք համակարգի պարամետրի արժեքը vm.max_map_count, ստուգեց հասանելիությունը և տեղադրեց ՄԿՈՒ, 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 ՄԲ տեսակավորման բուֆեր (համօգտագործվող) և միացնելով միայն XNUMX-րդ տարբերակի հաճախորդներին: Դիտել ընտրանքները 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.

Հոդվածի վերաբերյալ հարցեր տվեք մեկնաբանություններում կամ նամակ գրեք մեր աջակցության հասցեին [էլեկտրոնային փոստով պաշտպանված].

Source: www.habr.com

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