Instal·lació de Firebird 3 a les versions modernes de Linux: CentOS8 i Ubuntu 19

En aquest article descriurem el conjunt mínim d'accions necessàries per a una instal·lació òptima del SGBD Firebird versió 3.0 a les noves distribucions de Linux. CentOS 8 i Ubuntu 19 es seleccionen com a exemples.

Per "entregar" la distribució de Firebird al sistema de destinació, en aquesta guia, es selecciona l'opció de descarregar l'arxiu tar.gz mitjançant un enllaç del lloc web oficial del projecte (firebirdsql.org).

Per als més impacients, aneu directament a la batalla:

Instal·lació ràpida

Editant el fitxer /etc/sysctl.confafegint la línia:

vm.max_map_count = 256000

Deseu el fitxer i apliqueu la configuració:

sudo sysctl -p /etc/sysctl.conf

Les instruccions addicionals difereixen per a CentOS 8 i Ubuntu 19, però ССЫЛКА и КАТАЛОГ indiqueu un enllaç del lloc web oficial del projecte Firebird per descarregar la distribució i el directori al qual es desempaquetarà la distribució durant el procés de descàrrega.
Actualment (març de 2020) la versió actual és Firebird 3.0.5 (aquí hi ha l'enllaç a la versió de 64 bits).

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

La instal·lació real del SGBD Firebird:

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

Si voleu entendre millor què fan aquestes accions, continua llegint.

La part principal

Un breu preàmbul

Se suposa que el sistema operatiu ja està instal·lat en una versió mínima i està configurat l'accés als repositoris públics o les seves còpies locals.

Se suposa que el lector té coneixements bàsics de Linux i el SGBD Firebird.

Paleta

Al servidor DBMS es recomana assignar seccions separades per a fitxers temporals (/tmp), fitxers de bases de dades i còpies de seguretat locals.

Els temporals inclouen fitxers de bloqueig, fitxers d'ordenació, fitxers de "materialització" de taules temporals globals (GTT) i taules de seguiment. Els fitxers d'ordenació i les taules temporals globals es troben a /tmp, fitxers mon$-table i fitxers lock-in /tmp/firebird.

Els fitxers d'ordenació s'"eliminen" (unlink) immediatament després de la creació, de manera que no es poden "veure" a la llista de directoris, només a la llista de controladors de procés (marcats com a deleted):

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

A la llista de pseudo directoris /proc/…/fd/ es mostren enllaços simbòlics i la informació real sobre el fitxer ve donada per:

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

on НОМЕР – descriptor (descriptor) del fitxer d'interès.

En lloc de trucar "pgrep исполняемый-файл"Podeu substituir immediatament l'identificador del procés d'interès.

Els fitxers temporals poden ser molt grans, per tant /tmp Es recomana assignar almenys 20-30 GB. Cal tenir en compte que la mida dels fitxers d'ordenació depèn només de la quantitat de dades ordenades explícitament o implícitament a la sol·licitud, i un sol usuari pot "crear" gigabytes de fitxers temporals.

La secció de fitxers de base de dades ha d'acollir tots els fitxers de base de dades. a més, com a mínim, una còpia del fitxer de base de dades més gran. Cal tenir en compte el creixement dels fitxers de bases de dades en el futur durant diversos anys.

La secció de còpies de seguretat local ha de contenir almenys un arxiu de còpia de seguretat de totes les bases de dades més una còpia de seguretat de la base de dades més gran. És desitjable que aquesta secció també contingui espai per restaurar la base de dades més gran. S'ha de tenir en compte el creixement de còpies de seguretat i arxius de còpia de seguretat en el futur durant diversos anys.

Preparació preliminar

El servidor DBMS Firebird 3.0 assigna i allibera dinàmicament la memòria del sistema, cosa que pot provocar la seva fragmentació. Per exemple, després que un gran nombre d'usuaris es desconnectin del superservidor alhora, es poden produir errors en fer noves connexions.

La fragmentació de la memòria està controlada per un paràmetre del sistema vm.max_map_count, el valor predeterminat és 64K. Es recomana augmentar el seu valor quatre vegades:

sudo sysctl vm.max_map_count=256000

Per tal que el nou valor s'estableixi quan es reiniciï el sistema, afegiu-lo al fitxer /etc/sysctl.conf línia:

vm.max_map_count = 256000

S'aconsella fer un comentari perquè quedi clar el motiu del canvi d'aquest paràmetre. Primer podeu editar el fitxer i després aplicar la configuració desada en ell:

sudo sysctl -p /etc/sysctl.conf

Instal·lació dels paquets necessaris

Els fitxers executables del SGBD de Linux Firebird 3.0 depenen de les biblioteques ncurses (libncurses.so.5), UCI (no lligat a la versió i no es mostra a la sortida ldd) i Tommath (libtommath.so.0). Per descarregar i desempaquetar l'arxiu de muntatge, necessitareu utilitats gzip, tar и curl o wget. versions de la UCI, gzip, tar и curl/wget - són insignificants.

El treball amb paquets depèn del sistema i del gestor de paquets que s'utilitzi al sistema, de manera que els considerarem un per un.

CentOS 8

CentOS 8 utilitza un nou gestor de paquets: dnf i s'anomena "transparentment" per ordre yum. Com que per als nostres propòsits no hi ha cap diferència entre ells, en els exemples n'hi haurà yum.

Actualitzeu la memòria cau de metadades: sudo yum makecache

El paquet libtomath es troba en un dipòsit separat E(xtra)P(ackages for)E(nterprise)L(inux), de manera que comprovem que ja estigui inclòs:

yum -C repolist

Opció "només des de la memòria cau" (-C o --cache-only) s'utilitza per eliminar comprovacions i descàrregues innecessàries, fent yum més ràpid. Si no hi ha cap repositori epel a la llista, instal·leu-lo i actualitzeu la memòria cau de metadades:

sudo yum install epel-release &&
sudo yum makecache

Confirmem les sol·licituds, si cal, comprovant els valors de les claus pgp amb els ja coneguts d'una font de confiança.

Si hi ha problemes per carregar la metainformació del repositori dels recursos https, editeu el fitxer /etc/yum.repos.d/epel.repo, substituint https:// en http:// i repetiu l'ordre d'actualització de la memòria cau.

Comprovem l'estat dels paquets requerits (l'ordre és complicada, a la sortida de l'exemple es filtra el paquet de 32 bits):

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

Ho veiem curl, gzip и ncurses allotjat al pseudorepositori de l'instal·lador (anaconda), i tar – exclòs de la instal·lació mínima del sistema. Versions principals libncurses и libtommath més del necessari: 6 i 1 en lloc de 5 i 0, respectivament. Si el mateix paquet està instal·lat i disponible, s'ha publicat una actualització. Instal·leu els paquets que falten:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Les utilitats estan dissenyades per gestionar paquets apt, apt‑get и apt‑cache. El primer està dissenyat per al treball interactiu i els dos últims estan dissenyats per utilitzar-los en scripts. Els noms dels paquets són lleugerament diferents i inclouen la versió.

Comprovem l'estat dels paquets necessaris (l'ordre es combina, la sortida de l'exemple s'escurça i els paquets de 32 bits es filtren):

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]

Paquets per als quals indiquen els claudàtors installed/upgradable – instal·lat. Disponible però no instal·lat ncurses5, en lloc de curl instal·lat wget. Instal·leu els paquets que falten:

sudo apt‑get install 
libncurses5 libtommath1

Creació d'enllaços simbòlics

Des libtommath.so.1 и libncurses.so.6 compatible enrere amb libtommath.so.0 и libncurses.so.5, llavors per a Firebird n'hi ha prou amb crear enllaços simbòlics a les versions existents de les biblioteques.

Cerca libtommath.so.1 (libncurses.so.? situat al mateix directori):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Creem enllaços simbòlics.

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

Comprovem el resultat (l'ordre és complicada, els exemples de sortida s'escurcen):

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

Descàrrega del kit de distribució DBMS de Firebird.

El lloc web oficial del projecte Firebird (firebirdsql.org) publica enllaços a distribucions de versions "oficials" i versions "diàries" (builds d'instantània).

Les versions oficials de Linux estan disponibles com a arxius (tar.gz) i paquets deb/rpm, però les compilacions només estan disponibles com a arxius. Considerarem l'"instal·lador genèric" (instal·lador genèric de tar.gz).

L'arxiu de compilació s'ha de descarregar i desempaquetar, però combinarem els dos processos. El desembalatge es fa a /tmp,URL indica l'enllaç a l'arxiu que es pot descarregar.

rínxol:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

Per defecte curl envia les dades descarregades a stdout però no gestiona les redireccions i afegim "‑L", però wget, al contrari: gestiona les redireccions, però escriu dades en un fitxer i posem "‑O‑" Per tar indicar l'ús gzip-filtre i el directori on es realitzarà el desempaquetat. Quan s'hagi completat el procés, apareixerà un directori com aquest Firebird‑3.0.5.33220‑0.amd64 amb tres fitxers: install.sh, buildroot.tar.gz и manifest.txt.

Instal·lació de Firebird

Durant la preparació preliminar, vam ajustar el valor del paràmetre del sistema vm.max_map_count, va comprovar la disponibilitat i va instal·lar les biblioteques d'UCI, ncurses i tommath. Assegureu-vos que les versions de ncurses i tommath siguin correctes (libncures.so.5 и libtommath.so.0) i va crear els enllaços simbòlics necessaris.

La instal·lació real és molt senzilla. Aneu al directori on es va desempaquetar l'arxiu de distribució de Firebird, comproveu i, si cal, configureu la marca "executable" per a l'script. install.sh:

chmod +x install.sh

executeu l'script d'instal·lació:

sudo ./install.sh

En prémer la tecla Enter confirmem l'inici de la instal·lació i, en rebre la sol·licitud, introduïm la contrasenya sysdba.

L'script d'instal·lació s'inicia automàticament systemd-unitat firebird-superserver (arquitectura silenciosa Firebird 3.0). El servei Firebird funcionarà amb els paràmetres predeterminats per al superservidor: una memòria cau de pàgines de 2048 pàgines (per base de dades), una memòria intermèdia de classificació de 64 MB (compartida) i connectar només clients de la versió XNUMX. Veure opcions firebird.conf:

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

Tingueu en compte que els nous valors de firebird.conf s'activarà només després de reiniciar el servei Firebird.

A l'hora de seleccionar els valors dels paràmetres, cal tenir en compte que hi ha tres "consumidors" principals: la memòria cau de la pàgina (per a la base de dades), la memòria intermèdia (compartida) i la memòria assignada pel servidor per a les connexions de client. Només podeu gestionar els dos primers: la quantitat de memòria per a les connexions de client depèn del nombre i el text de les consultes a la memòria cau, dels seus plans i dels objectes de base de dades implicats en les consultes. Les estimacions de memòria de connexió del client es fan només de manera empírica i poden canviar a mesura que canvien les aplicacions del client i/o els objectes de la base de dades.

Per a un superservidor en amfitrions amb una petita quantitat de memòria (fins a 12-16 GB), no hauríeu d'assignar més d'un terç o una quarta part de la quantitat total de memòria RAM per a la memòria cau de la pàgina i la memòria intermèdia.

Si el nombre de bases de dades no està fixat i pot canviar, la quantitat total de memòria cau de pàgines s'ha de dividir pel nombre màxim de bases de dades que hi pot haver al servidor. La mida de la memòria cau de la pàgina s'especifica en pàgines i s'ha de convertir per separat en bytes.

Per canviar a l'arquitectura clàssica, cal que, com a mínim, especifiqueu-ho explícitament ServerMode в firebird.conf, reduïu la memòria cau de la pàgina allà (no més de 2K), reduïu el buffer d'ordenació (el volum total permès de tot tipus dividit pel nombre màxim de connexions), desactiveu i atureu la unitat firebird-superserver, habiliteu i engegueu la unitat firebird-classic.socket.

L'ús de l'arquitectura superclàssica a Firebird 3.0 no té gaire sentit: la "fiabilitat" és com un superservidor i el mateix buffer d'ordenació general. No hi ha una memòria cau de pàgines comuna i les "pèrdues" per sincronitzar diferents connexions entre si són les mateixes que a la clàssica.

Cal recordar que a Firebird 3.0 alguns paràmetres (caché de pàgines, mides de fitxer de bloqueig, taules hash i alguns altres) es poden configurar a databases.conf individualment per a cada base de dades. Per a un superservidor és útil, per exemple, establir un valor petit DefaultDbCachePages в firebird.conf i instal·leu memòria cau de pàgines individuals per a les bases de dades necessàries databases.conf.

Feu preguntes sobre l'article als comentaris o escriviu cartes a la nostra adreça d'assistència [protegit per correu electrònic].

Font: www.habr.com

Afegeix comentari