I den hÀr artikeln beskriver vi den minimi uppsÀttning ÄtgÀrder som krÀvs för att optimalt installera databasystemet Firebird version 3.0 pÄ nya Linux-distributioner. För exemplen valdes CentOS 8 och Ubuntu 19.
För att "leverera" Firebird-distributionen till det mÄl systemet vÀljer vi i denna handledning alternativet att ladda ner tar.gz-arkivet frÄn lÀnken pÄ den officiella projektwebbplatsen ().
För de mest otĂ„liga â direkt in i strid:
Snabb installation
Redigera filen /etc/sysctl.conf, lÀgg till raden:
vm.max_map_count = 256000
Spara filen och tillÀmpa instÀllningen:
sudo sysctl -p /etc/sysctl.conf
Fortsatta instruktioner skiljer sig Ă„t för CentOS 8 och Ubuntu 19, men LĂNK och KATALOG avser lĂ€nken till den officiella projektwebbplatsen för Firebird för nedladdning av distributionen och katalogen som distributionen kommer att packas upp i under nedladdningen.
För nÀrvarande (mars 2020) Àr version Firebird 3.0.5 relevant ( till 64-bitarsversionen).
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 LĂNK|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- LĂNK|tar -zxC /tmp
SjÀlva installationen av databasystemet Firebird:
cd /tmp/KATALOG
sudo ./install.sh
Om du vill förstĂ„ bĂ€ttre vad dessa Ă„tgĂ€rder gör â lĂ€s vidare.
Huvuddel
En kort inledning
Det antas att operativsystemet redan Àr installerat i minimal version och att tillgÄngen till publika repon eller deras lokala kopior Àr instÀlld.
Det antas att lÀsaren har grundlÀggande kunskaper om Linux och databasystemet Firebird.
Planering
PÄ databasservern rekommenderas det att avsÀtta separata partitioner för temporÀra filer (/tmp), databasfiler och lokala sÀkerhetskopior.
De temporÀra filerna inkluderar lÄs-filer, sorteringsfiler, filer för "materialisering" av globala temporÀra tabeller (GTT) och övervakningstabeller. Sorteringsfilerna och de globala temporÀra tabellerna ligger i /tmp, mon$-tabellerna och lÄs-filer ligger i /tmp/firebird.
Sorteringsfiler "tas bort" (unlink) omedelbart efter skapande, sĂ„ de kan inte "ses" i kataloglistan â endast i beskrivarlĂ€get (handles) av processen (mĂ€rks som borttagen):
sudo ls -lhF /proc/`pgrep firebird`/fd
I listningen av pseudokatalogen /proc/âŠ/fd/ visas symlĂ€nkar, och den faktiska informationen om filen ges av:
sudo stat -L /proc/`pgrep firebird`/fd/NUMMER
w NUMMER â Ă€r descriptorn för den fil som Ă€r av intresse.
IstÀllet för att kalla "pgrep körbar-fil" kan man direkt sÀtta in identifieraren för den intressanta processen.
TillfÀlliga filer kan bli mycket stora, sÄ det rekommenderas att avsÀtta minst 20-30 GB. Det bör beaktas att storleken pÄ sorteringsfiler beror endast pÄ mÀngden data som sorteras, antingen uttryckligen eller implicit i frÄgan, och en enda anvÀndare kan "skapa" gigabyte av tillfÀlliga filer. /tmp Avsnittet för databaser bör rymma filer för alla databaser, plus minst en backup av den största databasen. Det Àr viktigt att beakta tillvÀxten av databaserna under flera Är framöver.
Avsnittet för lokala backuper bör rymma minst en backuparkiv för alla databaser plus en backup av den största databasen. Det Àr önskvÀrt att detta avsnitt Àven har plats för att ÄterstÀlla den största databasen. Det Àr viktigt att beakta tillvÀxten av backuper och backuparkiv de kommande Ären.
Förberedande ÄtgÀrder
Servern för databashanterare Firebird 3.0 allokerar och frigör dynamiskt systemminne, vilket kan leda till fragmentering. Till exempel kan det uppstÄ fel vid nya anslutningar efter att ett stort antal anvÀndare har kopplats bort frÄn superservern.
Fragmenteringen av minnet kontrolleras av systemparametern
vm.max_map_count , standardvÀrdet Àr 64K. Det rekommenderas att öka dess vÀrde fyrfaldigt:sudo sysctl vm.max_map_count=256000
För att det nya vÀrdet ska gÀlla vid omstart av systemet lÀgger vi till raden i filen
Kommentar anbefalls för att klargöra varför denna parameter Àndras. Man kan först redigera filen och sedan tillÀmpa de sparade instÀllningarna: /etc/sysctl.conf Installation av nödvÀndiga paket
vm.max_map_count = 256000
De körbara filerna för databashanteraren Firebird 3.0 för Linux Àr beroende av ncurses-biblioteken (
sudo sysctl -p /etc/sysctl.conf
libncurses.so.5
), ICU (utan versionsbindning och utan att visas i utdataldd) och tommath ( libtommath.so.0). För att ladda ner och packa upp byggarkivet krĂ€vs verktyg.Versionerna av ICU Ă€r inte kritiska.Arbetet med paketen beror pĂ„ systemet och den paketchef som anvĂ€nds, sĂ„ vi ska gĂ„ igenom dem en i taget. gzip, tar och curl eller wgetCentOS 8 anvĂ€nder den nya paketchefen â gzip, tar och curl/wget dnf
och den kan "transparent" kallas med kommandot
CentOS 8
yum. Eftersom det inte finns nÄgot praktiskt skillnad mellan dem för vÄra syften kommer vi att anvÀnda Uppdatera metadata-cachen: sudo yum makecachePaketet libtomath finns i ett separat E(xtra)P(ackages for)E(nterprise)L(inux)-repo, sÄ vi kontrollerar att det redan Àr anslutet: sudo yum makecache.
yum -C repolist Alternativet "endast frÄn cachen" (
Paketet libtomath finns i ett separat E(xtra)P(ackages for)E(nterprise)L(inux) repository, sÄ vi kontrollerar att det redan Àr anslutet:
yum -C repolist
Alternativet "endast frĂ„n cache" (-C eller --cache-only) anvĂ€nds för att utesluta onödiga kontroller och nedladdningar, vilket snabbar upp yum. Om epel-repositoriet inte finns i listan â installerar vi det och uppdaterar cache för metadata:
sudo yum install epel-release &&
sudo yum makecache
Vi bekrÀftar förfrÄgningar, och kontrollerar vid behov vÀrdena pÄ pgp-nycklarna med de som redan Àr kÀnda frÄn en pÄlitlig kÀlla.
Om det uppstÄr problem med att hÀmta metadata frÄn https-resurser, redigerar vi filen /etc/yum.repos.d/epel.repo, och ersÀtter https:// till http:// och upprepar kommandot för att uppdatera cachen.
Vi kontrollerar statusen för nödvÀndiga paket (kommandot Àr ihopstÀllt, i exemplet Àr den 32-bitars paketfiltret borttaget):
yum -C list
ncurses libicu libtommath
gzip tar curl wget |
grep -v i686
Installerade paket
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
TillgÀngliga paket
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
Vi ser att curl, gzip och ncurses de Ă€r placerade i pseudo-repositoriet för installatören (anaconda), och tar â utesluten frĂ„n mininstallation av systemet. Stora versioner libncurses och libtommath Ă€r högre Ă€n vad som krĂ€vs: 6 och 1 istĂ€llet för 5 och 0, respektive. Om samma paket Ă€r installerat och tillgĂ€ngligt â sĂ„ har en uppdatering slĂ€ppts för det. Vi installerar de saknade paketen:
sudo yum install
libicu libtommath tar
Ubuntu 19
För pakethantering Ă€r verktygen avsedda apt, aptâget och aptâcache. Den första Ă€r avsedd för interaktiv anvĂ€ndning, medan de senaste tvĂ„ â för att anvĂ€ndas i skript. Paketnamnen Ă€r nĂ„got annorlunda och inkluderar version.
Vi kontrollerar statusen för nödvÀndiga paket (kommandot Àr ihopstÀllt, exemplet Àr kortat och 32-bitars paket Àr filtrerade):
apt list libncurses? libicu?? libtommath?
gzip tar curl wget |
grep -v i386
curl 7.65.3-1
gzip 1.10-0 [uppgraderbartâŠ]
libicu63 63.2-2 [installerat]
libncurses5 6.1
libncurses6 6.1 [installerat, automatiskt]
libtommath1 1.1.0
tar 1.30 [installerat]
wget 1.20.3 [installerat]
Paket som har i hakparenteser angivet installerat/uppgraderbart â Ă€r installerade. TillgĂ€ngligt, men inte installerat ncurses5, istĂ€llet för curl Ă€r installerad wget. Vi installerar de saknade paketen:
sudo aptâget install
libncurses5 libtommath1
Skapa symboliska lÀnkar
Eftersom libtommath.so.1 och libncurses.so.6 Àr bakÄtkompatibla med Versionerna av ICU Àr inte kritiska. och ldd, sÄ för Firebird rÀcker det med att skapa symboliska lÀnkar till de existerande versionerna av biblioteken.
Vi hittar libtommath.so.1 (libncurses.so.? finns i samma katalog):
find /usr -name libtommath.so.1
CentOS:
/usr/lib64/libtommath.so.1
Ubuntu:
/usr/lib/x86_64-linux-gnu/libtommath.so.1
Skapa symboliska lÀnkar.
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
Kontrollera resultatet (kommandot Àr ihopstÀllt, exempelutsikterna Àr kortade):
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
Nedladdning av databashanterarens distribution Firebird.
PÄ den officiella webbplatsen för projektet Firebird (firebirdsql.org) publiceras lÀnkar till distributioner av "officiella" versioner (releases) och "dagliga" byggen (snapshot build).
Officiella versioner för Linux Àr tillgÀngliga som arkiv (tar.gz) och deb/rpm-paket, medan byggen endast finns som arkiv. Vi kommer att titta pÄ "den generella installationsprogrammet" (generic installer frÄn tar.gz).
Arkivet frÄn bygget mÄste laddas ner och packas upp, men vi kan kombinera dessa tvÄ processer. UppsÀttning görs i /tmp, URL innebÀr lÀnken till det nedladdade arkivet.
curl:
curl -L URL | tar -zxC /tmp
wget:
wget -Oâ URL | tar -zxC /tmp
Som standard curl skickar nedladdade data till standardutmatning, men hanterar inte omdirigeringar och vi lĂ€gger till "âL", Ă„ sin sida hanterar omdirigeringar, men skriver data till en fil sĂ„ vi anvĂ€nder " wgetâOâFöranger vi anvĂ€ndning av tar -filter och katalogen dit uppackning kommer att ske. NĂ€r processen Ă€r klar kommer en katalog med följande format att dyka upp: gzipFirebirdâ3.0.5.33220â0.amd64 med tre filer: install.sh buildroot.tar.gz, manifest.txt och Installation av Firebird.
Under den inledande förberedelsen har vi justerat vÀrdet pÄ systemparametern
, kontrollerat för att se om biblioteken ICU, ncurses och tommath finns och installerat dem. Vi har Àven kontrollerat versionerna av ncurses och tommath ( , standardvÀrdet Àr 64K. Det rekommenderas att öka dess vÀrde fyrfaldigt:libncures.so.5) och skapat nödvÀndiga symboliska lÀnkar. och Versionerna av ICU Àr inte kritiska.SjÀlva installationen görs vÀldigt enkelt. Vi gÄr till katalogen dÀr distributionsarkivet av Firebird har packats upp, kontrollerar och, om det behövs, stÀller in flaggan "exekverbara" för skriptet
chmod +x install.sh buildroot.tar.gz:
startar installationsskriptet:
genom att trycka pĂ„ Enter bekrĂ€ftar vi starten av installationen, och nĂ€r vi fĂ„r en förfrĂ„gan â anger vi lösenordet sysdba.
sudo ./install.sh
Installationsskriptet startar automatiskt
-enhet systemdfirebird-superserver (standardarkitekturen för Firebird 3.0). TjÀnsten Firebird kommer att köras med standardparametrar för superservern: en sidcache pÄ 2048 sidor (per databas), en sorteringsbuffert pÄ 64 MB (gemensam) och anslutning endast för klienter av version tre. Titta pÄ parametrar i firebird.conf grep -v ^# firebird.conf | grep -v ^$:
Det bör noteras att de nya vÀrdena frÄn
kommer endast att aktiveras efter omstart av Firebird-tjÀnsten. grep -v ^# firebird.conf | grep -v ^$ kan endast aktiveras efter att Firebird-tjÀnsten har startats om.
Vid val av parametrars vĂ€rden bör man ta hĂ€nsyn till att det finns tre huvudsakliga "anvĂ€ndare": sidcache (för databasen), sorteringsbuffert (gemensam) och minnet som servern tilldelar för klientanslutningar. Man kan endast hantera de tvĂ„ första â mĂ€ngden minne för klientanslutningar beror pĂ„ antalet och texten av cachade förfrĂ„gningar, deras planer och de databobjects som anvĂ€nds i förfrĂ„gningarna. Bedömningen av minnet för klientanslutningar görs endast empiriskt och kan Ă€ndras vid förĂ€ndringar i klientapplikationer och/eller databobjects.
För superservern pÄ vÀrdar med liten mÀngd minne (upp till 12-16 GB) bör man inte avsÀtta mer Àn en tredjedel till en fjÀrdedel av det totala RAM-minnet för sidcache och sorteringsbuffert.
Om antalet databaser Ă€r obestĂ€mt och kan förĂ€ndras â bör den totala mĂ€ngden minne för sidcache delas upp pĂ„ det maximala antalet databaser som kan finnas pĂ„ servern. Storleken pĂ„ sidcache anges i sidor och den mĂ„ste rĂ€knas om till byte.
För att vÀxla till klassisk arkitektur krÀvs Ätminstone att tydligt ange ServerMode pÄ grep -v ^# firebird.conf | grep -v ^$, minska sidcache dÀr (högst 2K), minska sorteringsbuffert (den totala tillÄtna volymen för alla sorteringar delad med det maximala antalet anslutningar), förbjuda och stoppa en enhet (standardarkitekturen för Firebird 3.0). TjÀnsten Firebird kommer att köras med standardparametrar för superservern: en sidcache pÄ 2048 sidor (per databas), en sorteringsbuffert pÄ 64 MB (gemensam) och anslutning endast för klienter av version tre. Titta pÄ parametrar i, tillÄta och starta en enhet firebird-classic.socket.
AnvĂ€ndningen av superklassisk arkitektur i Firebird 3.0 har ingen sĂ€rskild mening: "tillförlitlighet" â som hos superservern och samma gemensamma sorteringsbuffert. Det finns ingen gemensam sidcache och "förlusterna" för synkronisering av olika anslutningar Ă€r desamma som hos klassikern.
Man bör komma ihÄg att i Firebird 3.0 kan vissa parametrar (sidcache, storlekar pÄ lokala filer, hash-tabeller och nÄgra andra) anges i databases.conf individuellt för varje databas. För superservern Àr det bra, till exempel, att ange ett litet vÀrde DefaultDbCachePages pÄ grep -v ^# firebird.conf | grep -v ^$ och stÀlla in individuella sidcache för de nödvÀndiga databaserna i databases.conf.
FrÄgor om artikeln kan stÀllas i kommentarerna, eller skriv till vÄr supportadress support@ibase.ru.
KĂ€lla: habr.com
