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 ().
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 ( à 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
