Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Инсталација Firebird 3 на савременим Linux верзијама: CentOS 8 и Ubuntu 19

(C) Basil Sidorov, IBSurgeon, 22-May-2020

Овај чланак је посвећен брзој инсталацији Firebird 3.0 на нове Linux дистрибуције: CentOS 8 и Ubuntu 19 (такође ради и за 18).

Први део је брзи водич за инсталацију Firebird 3.0 што је брже могуће, без детаља. Други део описује детаље.

Брза инсталација Firebird 3 на CentOS 8 и Ubuntu 19

  1. Додајте у датотеку /etc/sysctl.conf следећу линију:

vm.max_map_count = 256000

  1. Сачувајте sysctl.conf и примените нова подешавања:

sudo sysctl -p /etc/sysctl.conf

Следећа упутства се мало разликују за CentOS 8 и Ubuntu 19.

Имајте на уму да смо користили експлицитну везу до најновијег издања дистрибуције Firebird 3.0 са FirebirdSQL.org, тренутно (мај 2020), то је 3.0.5, а ево и линка за 64-битну верзију:

https://github.com/FirebirdSQL/firebird/releases/download/R3.0.5/Firebird-3.0.5.33220-0.amd64.tar.gz

У будућности, када се појаве 3.0.6, итд., мораћете да користите исправан линк до новог издања - биће објављен на www.firebirdsql.org.

  1. Инсталирајте пакете

CentOS8

sudo yum -y install epel-release sudo yum -y makecache sudo yum -y install libicu libtommath tar sudo ln -s libncurses.so.6 /usr/lib64/libncurses.so.5 sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0

sudo ln -s ln -s libncurses.so.5 /usr/lib64/libncurses.so.5

curl -L https://github.com/FirebirdSQL/firebird/releases/download/R3_0_5/Firebird-3.0.5.33220-0.amd64.tar.gz|tar -zxC /tmp

Ubuntu 19

sudo apt-get -y install libncurses5 libtommath1 sudo ln -s libtommath.so.1 /usr/lib/x86_64-linux-gnu/libtommath.so.0 wget -O- https://github.com/FirebirdSQL/firebird/releases/download/R3_0_5/Firebird-3.0.5.33220-0.amd64.tar.gz|tar -zxC /tmp

Као резултат, имаћете све Firebird датотеке за инсталацију спремне у /tmp/firebird:

Code
/tmp/Firebird-3.0.5.33220-0.amd64# ll
total 8484
drwxr-xr-x  2 root root    4096 Jan  9 13:13 ./
drwxrwxrwt 28 root root    4096 May 22 17:20 ../
-rw-r--r--  1 root root 8615663 Jan  9 13:13 buildroot.tar.gz
-rwxr-xr-x  1 root root   44096 Jan  9 13:13 install.sh*
-rw-r--r--  1 root root   14967 Jan  9 13:13 manifest.txt
  1. А затим, инсталирајте Firebird:

cd /tmp/Firebird-3.0.5.33220-0.amd64 sudo ./install.sh

затим, проверите да Firebird ради - команда испод ће приказати све процесе повезане са Firebird-ом или оне који раде под корисником firebird:

ps aux | grep firebird

То је све ако вам је потребно само да инсталирате Firebird 3.0.

Ако желите да знате шта значе горње команде, наставите са читањем!

Главни део: детаљи инсталације Firebird 3 на Linux

У овом чланку претпостављамо да је оперативни систем инсталиран у минималној верзији и да већ имате приступ јавним репозиторијумима или њиховим локалним копијама.

Планирање алокације простора

На серверу намењеном за сервисирање Firebird база података, препоручујемо издвајање засебних волумена за привремене датотеке (/tmp), датотеке база података и локалне резервне копије.

Волумен за привремене датотеке

Firebird привремене датотеке укључују lock-датотеке, датотеке за сортирање, датотеке за „материјализацију“ глобалних привремених табела (GTT) и табеле за праћење. Датотеке за сортирање и GTT датотеке се налазе у /tmp, mon$- и lock-датотеке су у /tmp/firebird.

Датотеке за сортирање се одмах након креирања одвајају, зато их не можете видети у фолдеру (за разлику од Windows-а) помоћу ls команде.

Да бисте видели ове датотеке, потребно је да затражите дескрипторе датотека Firebird процеса (а они су означени као обрисани):

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

Да бисте добили детаље о одређеној датотеци за сортирање, покрените команду

sudo stat -L /proc/`pgrep firebird`/fd/NUMBER

где је NUMBER дескриптор датотеке.

Привремене датотеке могу бити велике, па се препоручује издвајање 20-30Gb за /tmp.

Имајте на уму да величина сортирања не зависи од величине базе података: неки погрешни упити са директним производом лако могу произвести 100Gb датотеку за сортирање од 3Mb базе података.

Волумен за датотеке база података

Волумен за датотеке база података треба да буде довољно велик да садржи све датотеке база података плус, као минимум, величину највеће базе података, за могуће манипулације на месту.

Такође, имајте на уму да базе података расту током времена, па резервишите и слободан простор за њих.

Веома се препоручује да волумен за датотеке база података ставите на најбржи диск/SAN/хардвер који имате, са највећим могућностима насумичног I/O-а.

Волумен за локалне резервне датотеке

Волумен за локалне резервне датотеке треба да буде довољно велик да има резервне копије за све базе података плус величину највеће датотеке базе података (не резервне копије - то је за могуће тестно враћање). Наравно, имајте на уму раст резервних копија база података. Волумен за локалне резервне датотеке може бити на релативно споријим дисковима. Firebird резервне датотеке имају линеарну структуру, па је за резервни диск довољно да има високу секвенцијалну брзину.

Припрема

Firebird мотор динамички алоцира и деалоцира меморију, што може довести до фрагментације меморије.

На пример, то се може десити након искључивања многих корисника са Firebird SuperServer инстанце. Фрагментација меморије је контролисана системским параметром v m.max_map_count, који има подразумевану вредност 65K. Препоручује се да га повећате најмање 4 пута и да ово подешавање учините трајним.

Додајте следећу линију у /etc/sysctl.conf:

vm.max_map_count = 256000

и примените је

sudo sysctl -p /etc/sysctl.conf

Инсталација потребних пакета

Firebird 3 зависи од неколико Linux пакета: ncurses, ICU, tommath. Такође, потребни су нам алати gzip, tar и curl или wget.

CentOS 8

CentOS користи нови менаџер пакета dnf, који се транспарентно позива преко yum-а. Волимо yum, па хајде да користимо yum. Прво, обновите кеш метаподатака:

sudo yum makecache

Пакет libtommath се налази у засебном репозиторијуму EPEL (E(xtra)P(ackages for)E(nterprise)L(inux)), па морамо проверити да ли је омогућен:

yum -C repolist

Опција -C (–cache-only) чини да yum користи само кеш.

Ако не видите epel-репозиторијум у резултату yum -C repolist, инсталирајте га:

sudo yum install epel-release && sudo yum makecache

У случају проблема, уредите датотеку /etc/yum.repos.d/epel.repo и замените https:// са http://, па покушајте yum makecache поново.

Затим, проверимо да имамо све потребне пакете (64-битни у примеру):

Code
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

Инсталирање недостајућих пакета на CentOS 8

sudo yum install libicu libtommath tar

Ubuntu 19

Code
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]

Инсталирање недостајућих пакета на Ubuntu 19:

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

На CentOS8 налази се у:

Code
/usr/lib64/libtommath.so.1

На Ubuntu 19:

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

Хајде да креирамо симболичке линкове

CentOS8

sudo ln -s libtommath.so.1 /usr/lib64/libtommath.so.0 sudo ln -s libncurses.so.6 /usr/lib64/libncurses.so.5

Ubuntu 19

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\."

на CentOS8 даје:

Code
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 даје:

Code
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 3.0 издања

Firebird Linux издања су доступна на www.firebirdsql.org као tar.gz архиве. Претпоставимо да је URL линк за преузимање Firebird tar.gz архиве. Треба да преузмемо и распакујемо архиву, за ово можемо користити curl или wget.

curl

curl -L URL | tar -zxC /tmp

wget

wget -O- URL | tar -zxC /tmp

Као резултат, биће креиран фолдер /tmp/Firebird‑3.0.5.33220‑0.amd64 са 3 датотеке: install.sh, buildroot.tar.gz и manifest.txt.

Инсталација Firebird-а

Као предуслове, поставили смо vm.max_map_count, проверили и инсталирали ICU, ncurses и tommath, и креирали симболичке линкове.

Након тога, последњи корак је једноставан - покрените

sudo ./install.sh

Овај скрипт покреће системску јединицу firebird-superserver и Firebird је спреман за рад.

Конфигурациони фајл и његова оптимизација

Имајте на уму да је подразумевани Firebird конфигурациони фајл firebird.conf конфигурисан на веома скроман начин. Можете проверити садржај firebird.conf (некоментарисане линије) командом:

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

За подразумевани firebird.conf, горња команда неће вратити ништа, што значи да су све вредности подразумеване.

Ако конфигуришете продукциони систем, размотрите коришћење оптимизованих Firebird конфигурационих фајлова: /sr/optimized-firebird-configuration/

Често постављано питање #1

Често питање је „зашто једноставно не користити репозиторијум и инсталирати Firebird помоћу yum или apt?". Наравно, то је могуће, али постоје 2 велика разлога:

  1. репозиторијум може садржати стару верзију (тј. претходно мање издање),

  2. волимо да контролишемо окружење како бисмо осигурали да је све исправно инсталирано и конфигурисано.

Такође, преферирамо инсталацију у /opt, лакше је за међуплатформске скрипте и добру административну праксу.

Контакти

Слободно шаљите питања, сугестије и могуће грешке на [email protected]