Firebird 3-ті Linux жүйесінің заманауи нұсқаларында орнату: CentOS8 және Ubuntu 19

Бұл мақалада біз Firebird DBMS 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 DBMS туралы базалық білім бар деп болжанады.

Жоспарлау

ДҚБЖ серверінде уақытша файлдар үшін бөлек бөлімдерді бөлу ұсынылады (/tmp), дерекқор файлдары және жергілікті сақтық көшірмелер.

Уақытшаларға құлыптау файлдары, сұрыптау файлдары, жаһандық уақытша кестелердің (GTT) «материализациясы» файлдары және бақылау кестелері жатады. Сұрыптауға арналған файлдар және жаһандық уақытша кестелер мына жерде орналасқан /tmp, mon$-кесте файлдары және lock-файлдары – ішінде /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 ДҚБЖ сервері жүйелік жадты динамикалық түрде бөледі және босатады, бұл оның фрагментациясына әкелуі мүмкін. Мысалы, көптеген пайдаланушылар суперсерверден бірден ажыратылғаннан кейін жаңа қосылымдарды жасау кезінде қателер орын алуы мүмкін.

Жадты фрагментациялау жүйе параметрімен басқарылады 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) және томмат (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 бумалары ретінде қолжетімді, бірақ құрастырулар тек мұрағат ретінде қол жетімді. Біз «жалпы орнатушыны» (tar.gz сайтындағы жалпы орнатушы) қарастырамыз.

Құрастыру мұрағатын жүктеп алу және орамнан шығару керек, бірақ біз екі процесті біріктіреміз. Қаптаманы ашу орындалады /tmp,URL жүктеп алынатын мұрағатқа сілтемені білдіреді.

бұйралау:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Әдепкі бойынша 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, қолжетімділігін тексеріп, 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 Мбайт сұрыптау буфері (ортақ) және тек XNUMX-нұсқа клиенттерін қосу. Опцияларды көру firebird.conf:

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

Жаңа мәндерден келетінін ескеріңіз firebird.conf Firebird қызметін қайта іске қосқаннан кейін ғана іске қосылады.

Параметр мәндерін таңдау кезінде үш негізгі «тұтынушы» бар екенін ескеру керек: бет кэші (деректер базасы үшін), сұрыптау буфері (ортақ) және клиенттік қосылымдар үшін сервер бөлген жады. Сіз тек алғашқы екеуін басқара аласыз – клиент қосылымдары үшін жад көлемі кэштелген сұраулардың саны мен мәтініне, олардың жоспарларына және сұрауларға қатысатын дерекқор нысандарына байланысты. Клиенттік қосылым жады бағалаулары тек эмпирикалық түрде жасалады және клиент қолданбалары және/немесе дерекқор нысандары өзгерген сайын өзгеруі мүмкін.

Жад көлемі аз (12-16 ГБ дейін) хосттардағы суперсервер үшін бет кэші мен сұрыптау буфері үшін ЖЖҚ жалпы көлемінің үштен бірінен немесе төрттен астамын бөлмеу керек.

Дерекқорлардың саны бекітілмеген болса және өзгеруі мүмкін болса, бет кэш жадының жалпы көлемін серверде болуы мүмкін деректер қорының максималды санына бөлу керек. Бет кэшінің өлшемі беттерде көрсетіледі және оны байттарға бөлек түрлендіру керек.

Классикалық архитектураға ауысу үшін, кем дегенде, нақты көрсету керек ServerMode в firebird.conf, онда бет кэшін азайтыңыз (2K аспайды), сұрыптау буферін азайтыңыз (барлық түрлердің жалпы рұқсат етілген көлемі қосылымдардың ең көп санына бөлінген), құрылғыны өшіріңіз және тоқтатыңыз. firebird-superserver, құрылғыны қосыңыз және іске қосыңыз firebird-classic.socket.

Firebird 3.0-де суперклассикалық архитектураны пайдаланудың мағынасы жоқ: «сенімділік» суперсерверге және бірдей сұрыптау буферіне ұқсайды. Жалпы бет кэші жоқ және әртүрлі қосылымдарды бір-бірімен синхрондау үшін «шығындар» классикалық сияқты бірдей.

Firebird 3.0-де кейбір параметрлерді (бет кэші, құлыптау файл өлшемдері, хэш кестелері және басқалары) орнатуға болатынын есте ұстаған жөн. databases.conf әр дерекқор үшін жеке. Суперсервер үшін, мысалы, шағын мәнді орнату пайдалы DefaultDbCachePages в firebird.conf және қажетті дерекқорлар үшін жеке бет кэштерін орнатыңыз databases.conf.

Түсініктемелерде мақала туралы сұрақтар қойыңыз немесе қолдау көрсету мекенжайымызға хат жазыңыз [электрондық пошта қорғалған].

Ақпарат көзі: www.habr.com

пікір қалдыру