Installà Firebird 3 nantu à e versioni muderne Linux: CentOS8 è Ubuntu 19

In questu articulu, descriveremu u minimu di azzioni necessarie per una installazione ottimale di Firebird DBMS versione 3.0 nantu à e nuove distribuzioni. LinuxI seguenti esempi sò stati scelti: CentOS 8 è Ubuntu 19.

Per "furnisce" a distribuzione Firebird à u sistema di destinazione, in questa guida, l'opzione di scaricà l'archiviu tar.gz hè sceltu cù un ligame da u situ web ufficiale di u prugettu (firebirdsql.org).

Per i più impazienti, andate drittu in battaglia:

Installazione rapida

Edizione di u schedariu /etc/sysctl.confaghjunghjendu a linea:

vm.max_map_count = 256000

Salvà u schedariu è applicà u paràmetru:

sudo sysctl -p /etc/sysctl.conf

Ulteriori istruzioni varianu per CentOS 8 è Ubuntu 19, ma ССЫЛКА и КАТАЛОГ indicà un ligame da u situ web ufficiale di u prughjettu Firebird per scaricà a distribuzione è u repertoriu in quale a distribuzione serà sbulicata durante u prucessu di scaricamentu.
Attualmente (marzu 2020) a versione attuale hè Firebird 3.0.5 (quì hè u ligame à a versione 64-bit).

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

L'installazione attuale di u DBMS Firebird:

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

Se vulete capisce megliu ciò chì facenu sti azzioni, leghjite.

A parte principale

Un brevi preambulu

Si assume chì u SO hè digià stallatu in una versione minima è l'accessu à i repositori publichi o e so copie lucali sò cunfigurati.

Si suppone chì u lettore abbia cunniscenze di basa Linux è, SGBD Firebird.

Planning

Nant'à u servitore DBMS hè cunsigliatu di assignà sezioni separati per i schedarii tempuranee (/tmp), schedarii di basa di dati è backups lucali.

I pruvisorii includenu i schedarii di serratura, i schedarii di classificazione, i schedarii di "materializazione" di e tavule temporali glubale (GTT) è e tavule di monitoraghju. I schedarii per a classificazione è e tavule temporali glubale sò situati in /tmp, mon$-table files è lock-files - in /tmp/firebird.

I schedarii di sorte sò "sguassati" (unlink) immediatamente dopu a creazione, perchè ùn ponu micca esse "visi" in u listinu di u repertoriu - solu in a lista di manichi di prucessu (marcatu cum'è deleted):

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

In a lista di pseudo directory /proc/…/fd/ i ligami simbolichi sò affissati, è l'infurmazione attuale nantu à u schedariu hè datu da:

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

induve НОМЕР - descriptor (descriptor) di u schedariu di interessu.

Invece di chjamà "pgrep исполняемый-файл"Pudete immediatamente rimpiazzà l'identificatore di u prucessu di interessu.

I schedarii tempuranee ponu esse assai grande, cusì /tmp Hè cunsigliatu di attribuisce almenu 20-30 GB. Hè da esse cunsideratu chì a dimensione di i schedarii di classificazione dipende solu da a quantità di dati esplicitamente o implicitamente ordenati in a dumanda, è un unicu utilizatore pò "creà" gigabytes di schedarii tempuranee.

A sezione per i schedarii di basa di dati deve accoglie tutti i schedarii di basa di dati. plus, à u minimu, una copia di u più grande schedariu di basa di dati. Hè necessariu di piglià in contu a crescita di i schedarii di basa di dati in u futuru per parechji anni.

A sezione di salvezza locale deve cuntene almenu un archiviu di salvezza di tutte e basa di dati più una copia di salvezza di a basa di dati più grande. Hè desirabili chì sta sezione cuntene ancu spaziu per restaurà a basa di dati più grande. A crescita di salvezza è archivi di salvezza in u futuru per parechji anni deve esse cunsideratu.

Preparazione preliminare

U servitore DBMS Firebird 3.0 allocate dinamicamente è libera a memoria di u sistema, chì pò purtà à a so frammentazione. Per esempiu, dopu chì un gran numaru d'utilizatori sò disconnected from the superserver at once, errors may occur when making new connections.

A frammentazione di a memoria hè cuntrullata da un paràmetru di u sistema vm.max_map_count, predefinitu hè 64K. Hè cunsigliatu di aumentà u so valore per quattru volte:

sudo sysctl vm.max_map_count=256000

Cusì chì u novu valore hè stabilitu quandu u sistema reboots, aghjunghje à u schedariu /etc/sysctl.conf linea:

vm.max_map_count = 256000

Hè cunsigliatu di fà un cummentariu per chì u mutivu di cambià stu paràmetru hè chjaru. Pudete prima edità u schedariu è poi applicà i paràmetri salvati in questu:

sudo sysctl -p /etc/sysctl.conf

Installazione di i pacchetti necessarii

File eseguibili di u DBMS Firebird 3.0 Linux dipende da e biblioteche ncurses (libncurses.so.5), ICU (micca ligata à a versione è micca affissata in output ldd) è tommath (libtommath.so.0). Per scaricà è unpack l'archiviu di l'assemblea, avete bisognu di utilità gzip, tar и curl o wget. versioni ICU, gzip, tar и curl/wget - sò insignificanti.

U travagliu cù i pacchetti depende di u sistema è di u gestore di pacchetti utilizatu in u sistema, cusì li cunsideremu unu per unu.

CentOS 8

CentOS 8 usa un novu gestore di pacchetti – dnf è hè chjamatu "trasparentmente" per cumandamentu yum. Perchè per i nostri scopi ùn ci hè micca differenza trà elli - in l'esempii ci sarà yum.

Aghjurnate a cache di metadata: sudo yum makecache

U pacchettu libtomath hè situatu in un repository separatu E(xtra)P(ackages for)E(nterprise)L(inux), cusì cuntrollemu chì hè digià inclusu:

yum -C repolist

Opzione "solu da a cache" (-C o --cache-only) hè utilizatu per eliminà cuntrolli è scaricamenti innecessarii, rendenu yum più veloce. Se ùn ci hè micca un repository epel in a lista, installate è aghjurnà a cache di metadata:

sudo yum install epel-release &&
sudo yum makecache

Cunfirmemu e dumande, se necessariu, cuntrollà i valori di e chjave pgp cù quelli chì sò digià cunnisciuti da una fonte di fiducia.

Se ci sò prublemi di carica di metainformazioni di repository da risorse https, allora edità u schedariu /etc/yum.repos.d/epel.repo, rimpiazzà https:// nantu http:// è ripetite u cumandamentu di l'aghjurnamentu di cache.

Cuntrollamu u statutu di i pacchetti richiesti (u cumandimu hè cumplicatu, in l'esempiu output u pacchettu 32-bit hè filtratu):

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

Avemu vistu chì curl, gzip и ncurses ospitatu in u pseudo-repositoriu di l'installatore (anaconda), a tar - esclusu da a stallazione minima di u sistema. Versioni maiò libncurses и libtommath più di ciò chì hè necessariu: 6 è 1 invece di 5 è 0, rispettivamente. Se u listessu pacchettu hè stallatu è dispunibule, una aghjurnazione hè stata liberata per questu. Installa i pacchetti mancanti:

sudo yum install 
libicu libtommath tar

Ubuntu 19

L'utilità sò pensate per gestisce i pacchetti apt, apt‑get и apt‑cache. U primu hè pensatu per u travagliu interattivu, è l'ultimi dui sò pensati per l'usu in scripts. I nomi di i pacchetti sò un pocu diffirenti è includenu a versione.

Cuntrollamu u statutu di i pacchetti richiesti (u cumandamentu hè cumminatu, l'esempiu di output hè scurciatu, è i pacchetti 32-bit sò filtrati):

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]

Pacchetti per i quali indicanu i parentesi quadrate installed/upgradable - stallatu. Disponibile ma micca stallatu ncurses5, invece di curl stallatu wget. Installa i pacchetti mancanti:

sudo apt‑get install 
libncurses5 libtommath1

Creazione di ligami simbolichi

Dapoi u libtommath.so.1 и libncurses.so.6 retrocompatibile cù libtommath.so.0 и libncurses.so.5, allura per Firebird hè abbastanza per creà ligami simbolichi à e versioni esistenti di e librerie.

Truvà libtommath.so.1 (libncurses.so.? situatu in u listessu cartulare):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Creemu ligami simbolichi.

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

Cuntrollamu u risultatu (u cumandamentu hè cumplicatu, l'esempii di output sò scurciati):

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

Scaricatu u kit di distribuzione Firebird DBMS.

U situ web ufficiale di u prughjettu Firebird (firebirdsql.org) publica ligami à distribuzioni di versioni "ufficiali" è di custruzzioni "di ogni ghjornu" (snapshot builds).

E versioni ufficiali di Linux sò dispunibuli cum'è archivi (tar.gz) è pacchetti deb/rpm, ma e custruzzioni sò dispunibuli solu cum'è archivi. Avemu da cunsiderà u "installatore genericu" (installatore genericu da tar.gz).

L'archiviu di custruzzione deve esse scaricatu è sbulicatu, ma combineremu i dui prucessi. U disimballamentu hè fattu in /tmp,URL denota u ligame à l'archiviu scaricabile.

curl:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

automaticamente curl manda i dati scaricati à stdout ma ùn gestisce micca e redirezzione è aghjunghjemu "‑L", a wget, à u cuntrariu: gestisce i redirections, ma scrive dati à un schedariu è mettemu "‑O‑" Per tar indicà l'usu gzip-filtru è u repertoriu in u quale serà realizatu u dispacking. Quandu u prucessu hè cumpletu, apparirà un cartulare cum'è questu Firebird‑3.0.5.33220‑0.amd64 cù trè schedari: install.sh, buildroot.tar.gz и manifest.txt.

Installazione di Firebird

Durante a preparazione preliminare, avemu aghjustatu u valore di u paràmetru di u sistema vm.max_map_count, verificatu a dispunibilità è installatu l'UCI, ncurses è biblioteche tommath. Assicuratevi chì e versioni di ncurses è tommath sò currette (libncures.so.5 и libtommath.so.0) è hà creatu i ligami simbolici necessarii.

L'installazione attuale hè assai simplice. Andate à u repertoriu induve l'archiviu di distribuzione Firebird hè statu sbulicatu, verificate è, se ne necessariu, stabilisce a bandiera "eseguibile" per u script. install.sh:

chmod +x install.sh

eseguite u script d'installazione:

sudo ./install.sh

Pressendu a chjave Enter cunfirmemu l'iniziu di a stallazione, è dopu avè ricevutu a dumanda, inserite a password sysdba.

U script d'installazione principia automaticamente systemd- unità firebird-superserver (architettura silenciosa Firebird 3.0). U serviziu Firebird hà da travaglià cù i paràmetri predeterminati per u superserver: un cache di pagina di 2048 pagine (per basa di dati), un buffer di sorte di 64 MB (spartitu) è cunnette solu i clienti di a versione XNUMX. Vede l'opzioni firebird.conf:

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

Per piacè nutate chì i novi valori da firebird.conf serà attivatu solu dopu à ripiglià u serviziu Firebird.

Quandu selezziunate i valori di i paràmetri, deve esse cunsideratu chì ci sò trè "consumatori" principali: a cache di pagina (per a basa di dati), u buffer di sorte (spartitu) è a memoria attribuita da u servitore per e cunnessione di u cliente. Pudete solu gestisce i primi dui - a quantità di memoria per e cunnessione di u cliente dipende da u numeru è u testu di e dumande in cache, i so piani è l'uggetti di basa di dati implicati in e dumande. L'estimazioni di memoria di cunnessione di u cliente sò fatte empiricamente solu è ponu cambià cum'è l'applicazioni di u cliente è / o l'uggetti di basa di dati cambianu.

Per un superserver nantu à l'ospiti cù una piccula quantità di memoria (finu à 12-16 GB), ùn deve micca assignà più di un terzu o un quartu di a quantità totale di RAM per a cache di pagina è sorte buffer.

Se u numeru di basa di dati ùn hè micca fissu è pò cambià, a quantità totale di memoria di cache di pagina deve esse divisa da u numeru massimu di basa di dati chì ponu esse in u servitore. A dimensione di a cache di a pagina hè specificata in pagine è deve esse cunvertita separatamente in byte.

Per passà à l'architettura classica, duvete, à u minimu, specificà esplicitamente ServerMode в firebird.conf, riduce a cache di a pagina quì (micca più di 2K), riduce u buffer di sorta (u voluminu tutale permessu di tutti i tipi divisu da u numeru massimu di cunnessione), disattivà è ferma l'unità firebird-superserver, attivate è inizià l'unità firebird-classic.socket.

Utilizà l'architettura superclassica in Firebird 3.0 ùn hà micca assai sensu: "affidabilità" hè cum'è un superserver è u listessu buffer di ordinamentu generale. Ùn ci hè micca un cache di pagina cumuna è e "perdite" per sincronizà e diverse cunnessione cù l'altri sò listessi in u classicu.

Ci vole à ricurdà chì in Firebird 3.0 certi paràmetri (cache di pagina, dimensioni di file di bloccu, tabelle di hash è altri) ponu esse stabiliti in databases.conf individualmente per ogni basa di dati. Per un superserver hè utile, per esempiu, per stabilisce un picculu valore DefaultDbCachePages в firebird.conf è installate cache di pagine individuali per e basa di dati necessarie in databases.conf.

Fate dumande nantu à l'articulu in i cumenti, o scrivite lettere à u nostru indirizzu di supportu support@ibase.ru.

Source: www.habr.com

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster