Masang Firebird 3 dina vérsi modern Linux: CentOS8 sareng Ubuntu 19

Dina artikel ieu kami bakal ngajelaskeun set tindakan minimum anu diperyogikeun pikeun pamasangan optimal Firebird DBMS versi 3.0 dina distribusi Linux anyar. CentOS 8 sareng Ubuntu 19 dipilih pikeun conto.

Pikeun "nganteurkeun" distribusi Firebird ka sistem target, dina pituduh ieu, pilihan pikeun ngaunduh arsip tar.gz dipilih nganggo tautan tina situs wéb resmi (firebirdsql.org).

Pikeun anu teu sabar, langsung ka perang:

Pamasangan gancang

Ngédit file /etc/sysctl.confku nambahkeun garis:

vm.max_map_count = 256000

Simpen file sareng nerapkeun setélan:

sudo sysctl -p /etc/sysctl.conf

Parentah salajengna béda pikeun CentOS 8 jeung Ubuntu 19, tapi ССЫЛКА и КАТАЛОГ nunjukkeun tautan ti situs wéb resmi Firebird pikeun ngunduh distribusi sareng diréktori dimana distribusina bakal dibongkar salami prosés undeuran.
Ayeuna (Maret 2020) pelepasan ayeuna nyaéta Firebird 3.0.5 (ieu link kana versi 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

Pamasangan sabenerna tina DBMS Firebird:

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

Upami anjeun hoyong langkung ngartos naon lampah ieu, baca terus.

utama

Mukadimah pondok

Dianggap yén OS parantos dipasang dina versi minimal sareng aksés ka repositori umum atanapi salinan lokalna dikonpigurasi.

Dianggap yén pamaca gaduh pangaweruh dasar ngeunaan Linux sareng Firebird DBMS.

Perencanaan

Dina server DBMS disarankeun pikeun ngalokasikeun bagian anu misah pikeun file samentawis (/tmp), file database sareng cadangan lokal.

Anu samentara kalebet file konci, asihan file, file "materialisasi" tabel samentara global (GTT) sareng tabel monitoring. File pikeun asihan sareng tabel samentawis global aya di /tmp, mon$ -table file jeung konci-file - in /tmp/firebird.

Nyortir file "dihapus" (unlink) langsung saatos nyiptakeun, ku kituna aranjeunna henteu tiasa "ditingali" dina daptar diréktori - ngan ukur dina daptar panangan prosés (ditandaan salaku deleted):

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

Dina daptar diréktori pseudo /proc/…/fd/ symlinks dipintonkeun, sareng inpormasi saleresna ngeunaan file dirumuskeun ku:

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

di mana НОМЕР – deskriptor (deskriptor) tina file dipikaresep.

Daripada nelepon"pgrep исполняемый-файл"Anjeun tiasa langsung ngagantikeun identifier tina prosés dipikaresep.

File samentara tiasa ageung pisan, janten /tmp Disarankeun alokasi sahenteuna 20-30 GB. Perlu diperhatoskeun yén ukuran asihan file ngan ukur gumantung kana jumlah data anu diurutkeun sacara eksplisit atanapi implisit dina pamundut, sareng hiji pangguna tiasa "nyieun" gigabyte file samentawis.

Bagian pikeun file database kedah nampung sadaya file database. tambah, sahenteuna, salinan tina file database pangbadagna. Perlu tumut kana akun tumuwuhna file database dina mangsa nu bakal datang pikeun sababaraha taun datang.

Bagian cadangan lokal kedah ngandung sahenteuna hiji arsip cadangan sadaya pangkalan data ditambah cadangan pangkalan data panggedéna. Éta desirable yén bagian ieu ogé ngandung rohangan pikeun mulangkeun database pangbadagna. Tumuwuhna cadangan sareng arsip cadangan dina mangsa nu bakal datang pikeun sababaraha taun kedah dipertimbangkeun.

Persiapan awal

Server DBMS Firebird 3.0 sacara dinamis nyayogikeun sareng ngabebaskeun mémori sistem, anu tiasa nyababkeun fragméntasina. Contona, sanggeus sajumlah badag pamaké dipegatkeun tina superserver sakaligus, kasalahan bisa lumangsung nalika nyieun sambungan anyar.

Fragméntasi mémori dikawasa ku parameter sistem vm.max_map_count, standar nyaéta 64K. Disarankeun ningkatkeun nilaina ku opat kali:

sudo sysctl vm.max_map_count=256000

Sangkan nilai anyar disetel nalika sistem reboots, tambahkeun ka file /etc/sysctl.conf garis:

vm.max_map_count = 256000

Disarankeun ngadamel koméntar supados alesan pikeun ngarobih parameter ieu jelas. Anjeun mimiti tiasa ngédit file teras nerapkeun setélan anu disimpen di dinya:

sudo sysctl -p /etc/sysctl.conf

Masang pakét anu diperyogikeun

File laksana tina Firebird 3.0 Linux DBMS gumantung kana perpustakaan ncurses (libncurses.so.5), ICU (henteu dihijikeun kana versi sareng henteu ditampilkeun dina kaluaran ldd) jeung tommath (libtommath.so.0). Pikeun ngundeur sareng ngabongkar arsip rakitan, anjeun peryogi utilitas gzip, tar и curl atawa wget. Vérsi ICU, gzip, tar и curl/wget – teu penting.

Gawe sareng bungkusan gumantung kana sistem sareng manajer pakét anu dianggo dina sistem, ku kituna urang bakal nganggap aranjeunna hiji-hiji.

CentOS 8

CentOS 8 nganggo manajer pakét énggal - dnf sarta disebut "transparan" ku paréntah yum. Kusabab pikeun tujuan urang teu aya bédana antara aranjeunna - dina conto bakal aya yum.

Apdet cache metadata: sudo yum makecache

Paket libtomath aya dina gudang E (xtra) P (ackages pikeun) E (nterprise) L (inux) anu misah, ku kituna urang pariksa yén éta parantos kalebet:

yum -C repolist

Pilihan "ngan tina cache" (-C atawa --cache-only) dipaké pikeun ngaleungitkeun cék sareng undeuran anu teu perlu, ngajantenkeun yum langkung gancang. Upami teu aya gudang epel dina daptar, pasang sareng ngapdet cache metadata:

sudo yum install epel-release &&
sudo yum makecache

Kami mastikeun pamundut, upami diperyogikeun, pariksa nilai konci pgp sareng anu parantos dipikanyaho ti sumber anu dipercaya.

Upami aya masalah ngamuat metainformasi gudang tina sumber https, teras édit filena /etc/yum.repos.d/epel.repo, ngagantikeun https:// dina http:// jeung ngulang paréntah update cache.

Kami pariksa status bungkusan anu diperyogikeun (paréntahna rumit, dina conto kaluaran pakét 32-bit disaring):

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

Kami ningali éta curl, gzip и ncurses hosted dina installer pseudo-Repository (anaconda), Jeung tar – teu kaasup ti instalasi sistem minimum. Vérsi utama libncurses и libtommath leuwih ti diperlukeun: 6 jeung 1 tibatan 5 jeung 0, tuturutan. Upami pakét anu sami dipasang sareng sayogi, pembaruan parantos dileupaskeun pikeun éta. Pasang pakét anu leungit:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Utiliti dirancang pikeun ngatur bungkusan apt, apt‑get и apt‑cache. Kahiji dirancang pikeun karya interaktif, sarta dua panungtungan dirancang pikeun pamakéan dina naskah. Ngaran pakét rada béda sareng kalebet versina.

Kami pariksa status bungkusan anu diperyogikeun (paréntahna digabungkeun, conto kaluaran disingget, sareng pakét 32-bit disaring):

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]

Bungkusan anu nunjukkeun tanda kurung installed/upgradable – dipasang. Sadia tapi teu dipasang ncurses5, sabalikna curl dipasang wget. Pasang paket anu leungit:

sudo apt‑get install 
libncurses5 libtommath1

Nyieun symlinks

siga libtommath.so.1 и libncurses.so.6 mundur cocog sareng libtommath.so.0 и libncurses.so.5, teras pikeun Firebird cukup pikeun nyiptakeun symlink kana vérsi perpustakaan anu tos aya.

Kami mendakan libtommath.so.1 (libncurses.so.? ayana dina diréktori anu sarua):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Urang nyieun symlinks.

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

Hayu urang parios hasilna (paréntahna rumit, conto kaluaran disingget):

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

Ngundeur kit distribusi Firebird DBMS.

Situs wéb resmi proyék Firebird (firebirdsql.org) nyebarkeun tautan kana distribusi sékrési "resmi" sareng ngawangun "harian" (snapshot ngawangun).

Kaluaran Linux resmi sayogi salaku arsip (tar.gz) sareng bungkusan deb/rpm, tapi gedongna ngan sayogi salaku arsip. Urang bakal mertimbangkeun "generic installer" (generic installer ti tar.gz).

Arsip ngawangun kedah diunduh sareng dibongkar, tapi urang bakal ngagabungkeun duanana prosés. Unpacking geus rengse di /tmp,URL nunjukkeun tautan kana arsip anu tiasa diunduh.

ngagulung:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

sacara standar curl ngirimkeun data anu diunduh ka stdout tapi henteu nanganan alihan sareng kami tambahkeun "‑L", a wget, Sabalikna: nanganan alihan, tapi nyerat data kana file sareng kami nempatkeun "‑O‑" Pikeun tar nunjukkeun pamakéan gzip-filter sareng diréktori dimana unpacking bakal dilaksanakeun. Nalika prosés parantos réngsé, diréktori sapertos kieu bakal muncul Firebird‑3.0.5.33220‑0.amd64 kalawan tilu file: install.sh, buildroot.tar.gz и manifest.txt.

Masang Firebird

Salila persiapan awal, urang nyaluyukeun nilai parameter sistem vm.max_map_count, dipariksa pikeun kasadiaan sarta dipasang ICU, ncurses na perpustakaan tommath. Pastikeun versi ncurses sareng tommath leres (libncures.so.5 и libtommath.so.0) sareng nyiptakeun symlink anu diperyogikeun.

Pamasangan sabenerna basajan pisan. Pindah ka diréktori dimana arsip distribusi Firebird dibongkar, parios sareng, upami diperyogikeun, setel bendera "eksekusi" pikeun naskah. install.sh:

chmod +x install.sh

ngajalankeun skrip instalasi:

sudo ./install.sh

Ku mencét tombol Lebetkeun kami mastikeun ngamimitian pamasangan, sareng saatos nampi pamundut, lebetkeun sandi sysdba.

Skrip pamasangan otomatis dimimitian systemd-unit firebird-superserver (arsitéktur Firebird 3.0 jempé). Ladenan Firebird bakal tiasa dianggo sareng parameter standar pikeun superserver: cache halaman 2048 halaman (per database), panyangga asihan 64 MB (dibagikeun) sareng ngan ukur nyambungkeun vérsi XNUMX klien. Témbongkeun pilihan firebird.conf:

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

Punten dicatet yén nilai anyar tina firebird.conf bakal diaktipkeun ngan saatos ngamimitian deui jasa Firebird.

Lamun milih nilai parameter, kudu tumut kana akun nu aya tilu utama "konsumen": kaca cache (pikeun database), asihan panyangga (dibagikeun) jeung memori disadiakeun ku server pikeun sambungan klien. Anjeun ngan bisa ngatur dua kahiji - jumlah memori pikeun sambungan klien gumantung kana jumlah jeung téks queries sindangan, rencana maranéhanana sarta objék database aub dina queries. Perkiraan mémori sambungan klien ngan ukur dilakukeun sacara émpiris sareng tiasa robih nalika aplikasi klien sareng / atanapi objék database robih.

Pikeun superserver on host kalawan jumlah leutik memori (nepi ka 12-16 GB), anjeun teu kudu allocate leuwih ti sapertilu atawa saparapat tina total jumlah RAM pikeun kaca cache sarta nyortir panyangga.

Lamun jumlah database teu dibereskeun sarta bisa ngarobah, jumlah total kaca cache memori kudu dibagi ku jumlah maksimum database nu bisa jadi dina server. Ukuran kaca cache dieusian dina kaca sarta kudu misah dirobah jadi bait.

Pikeun pindah ka arsitéktur klasik, anjeun kedah, sahenteuna, sacara eksplisit netepkeun ServerMode в firebird.conf, Ngurangan cache halaman di dinya (henteu langkung ti 2K), ngirangan panyangga diurutkeun (total volume anu diidinan sadaya jinis dibagi ku jumlah maksimum sambungan), mareuman sareng ngeureunkeun unit. firebird-superserver, aktipkeun tur mimitian unit firebird-classic.socket.

Ngagunakeun arsitektur superclassic di Firebird 3.0 teu make akal pikiran: "reliabilitas" kawas superserver jeung panyangga asihan umum sami. Henteu aya cache halaman umum sareng "karugian" pikeun nyingkronkeun sambungan anu béda-béda sami sareng anu klasik.

Perlu diinget yén dina Firebird 3.0 sababaraha parameter (cache halaman, ukuran file konci, tabel hash sareng sababaraha anu sanésna) tiasa disetél dina databases.conf individual pikeun tiap database. Pikeun superserver mangpaat, contona, pikeun set hiji nilai leutik DefaultDbCachePages в firebird.conf tur masang cache kaca individu pikeun database diperlukeun dina databases.conf.

Tanya patarosan ngeunaan artikel dina komentar, atawa nulis surat ka alamat rojongan kami [email dijaga].

sumber: www.habr.com

Tambahkeun komentar