Firebird 3-ийг орчин үеийн Linux хувилбарууд дээр суулгаж байна: CentOS8 болон Ubuntu 19

Энэ нийтлэлд бид Firebird DBMS 3.0 хувилбарыг шинэ Linux түгээлтүүд дээр оновчтой суулгахад шаардагдах хамгийн бага алхмуудыг тайлбарлах болно. Жишээ болгон CentOS 8 болон Ubuntu 19-ийг сонгосон.

Firebird түгээлтийг зорилтот системд "хүргэх" тулд энэхүү гарын авлагад төслийн албан ёсны вэбсайтаас tar.gz архивыг татаж авах боломжтой (firebirdsql.org).

Хамгийн тэвчээргүй хүмүүсийн хувьд - шууд тулалдаанд:

Хурдан суурилуулалт

Файлыг засварлаж байна /etc/sysctl.confмөрийг нэмж:

vm.max_map_count = 256000

Файлыг хадгалаад тохиргоог хийнэ үү:

sudo sysctl -p /etc/sysctl.conf

Цаашдын заавар нь CentOS 8 болон Ubuntu 19-ийн хувьд өөр боловч ССЫЛКА и КАТАЛОГ Firebird төслийн албан ёсны сайтаас түгээлтийг татаж авах линк болон татаж авах явцад түгээлтийг задлах лавлахыг заана уу.
Одоогийн байдлаар (2020 оны 3.0.5-р сар) Firebird XNUMX хувилбар хамааралтай байна (энд холбоос байна 64 битийн хувилбарын хувьд).

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

Firebird DBMS-ийн бодит суурилуулалт:

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

Хэрэв та эдгээр үйлдлүүд юу болохыг илүү сайн ойлгохыг хүсвэл цааш уншина уу.

Үндсэн хэсэг

Жижиг оршил

Үйлдлийн системийг аль хэдийн хамгийн бага хувилбарт суулгасан бөгөөд нийтийн хадгалах газар эсвэл тэдгээрийн локал хуулбар руу хандах хандалтыг тохируулсан гэж үзэж байна.

Уншигч нь Linux болон Firebird DBMS-ийн талаар анхан шатны мэдлэгтэй гэж үздэг.

Төлөвлөлт

DBMS сервер дээр түр зуурын файлуудад тусдаа хэсгүүдийг хуваарилахыг зөвлөж байна (/tmp), мэдээллийн сангийн файлууд болон дотоод нөөцлөлтүүд.

Түр зуурын тоонд түгжих файлууд, эрэмбэлэх файлууд, дэлхийн түр зуурын хүснэгтүүдийн (GTT) "материалжуулах" файлууд болон хяналтын хүснэгтүүд орно. Эрэмбэлэх болон глобал түр зуурын хүснэгтийн файлууд энд байрладаг /tmp, mon$-хүснэгтийн файлууд болон түгжих файлууд - дотор /tmp/firebird.

Файлуудыг эрэмбэлэх нь "устгагдсан" (unlink) үүсгэсний дараа нэн даруй, тиймээс тэдгээрийг лавлах жагсаалтад "харагдах" боломжгүй - зөвхөн процессын бариулуудын жагсаалтад (гэж шошготой) deleted):

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

Хуурамч лавлах жагсаалтад /proc/…/fd/ тэмдэгт холбоосууд гарч ирэх бөгөөд файлын талаарх бодит мэдээллийг дараах байдлаар өгнө.

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

хаана НОМЕР – сонирхсон файлын тодорхойлогч (тодорхойлогч).

Дуудахын оронд "pgrep исполняемый-файл» та сонирхож буй үйл явцын танигчийг нэн даруй сольж болно.

Түр зуурын файлууд нь маш том хэмжээтэй байж болно /tmp дор хаяж 20-30 ГБ-ыг хуваарилахыг зөвлөж байна. Эрэмбэлэх файлын хэмжээ нь зөвхөн хүсэлтэд тодорхой болон далд байдлаар эрэмблэгдсэн өгөгдлийн хэмжээнээс хамаардаг бөгөөд нэг хэрэглэгч гигабайт түр зуурын файлыг "бүтээж" чадна гэдгийг санаарай.

Өгөгдлийн сангийн файлуудын хэсэг нь бүх мэдээллийн сангийн файлуудыг агуулсан байх ёстой. наад зах нь хамгийн том мэдээллийн сангийн файлын хуулбар. Ирээдүйд хэдэн жилийн турш мэдээллийн сангийн файлуудын өсөлтийг харгалзан үзэх шаардлагатай.

Орон нутгийн нөөцлөх хэсэг нь бүх мэдээллийн сангийн хамгийн багадаа нэг нөөц архив, мөн хамгийн том мэдээллийн сангийн нөөцлөлтийг агуулсан байх ёстой. Энэ хэсэгт хамгийн том мэдээллийн санг сэргээх газар байгаа нь зүйтэй юм. Ирээдүйд хэдэн жилийн турш нөөцлөлт, архивын өсөлтийг анхаарч үзэх хэрэгтэй.

Урьдчилсан бэлтгэл

Firebird 3.0 DBMS сервер нь системийн санах ойг динамик байдлаар хуваарилж, чөлөөлдөг бөгөөд энэ нь түүнийг хуваагдахад хүргэдэг. Жишээлбэл, олон тооны хэрэглэгчид суперсерверээс нэгэн зэрэг салсны дараа шинэ холболт хийх үед алдаа гарч болзошгүй.

Санах ойн хуваагдал нь системийн параметрээр хянагддаг vm.max_map_count, анхдагч нь 64K. Үүний утгыг дөрөв дахин нэмэгдүүлэхийг зөвлөж байна:

sudo sysctl vm.max_map_count=256000

Системийг дахин ачаалах үед шинэ утгыг тохируулахын тулд файлд нэмнэ үү /etc/sysctl.conf мөр:

vm.max_map_count = 256000

Энэ параметрийг өөрчлөх шалтгааныг тодорхой болгохын тулд тайлбар хийхийг зөвлөж байна. Та эхлээд файлыг засварлаж, дараа нь түүнд хадгалагдсан тохиргоог ашиглаж болно:

sudo sysctl -p /etc/sysctl.conf

Шаардлагатай багцуудыг суулгаж байна

Firebird 3.0 Linux DBMS-ийн гүйцэтгэх файлууд нь ncurses номын сангаас хамаардаг (libncurses.so.5), ICU (хувилбарын лавлагаагүйгээр, гаралтад харуулахгүйгээр). ldd) ба томмат (libtommath.so.0). Угсралтын архивыг татаж аваад задлахад хэрэгслүүд шаардлагатай gzip, tar и curl буюу wget. ICU хувилбарууд, gzip, tar и curl/wget - ач холбогдол багатай.

Багцуудтай ажиллах нь систем болон системд ашиглагдаж буй багц менежерээс хамаардаг тул бид тэдгээрийг нэг нэгээр нь авч үзэх болно.

CentOS 8

CentOS 8 нь шинэ багц менежерийг ашигладаг dnf бөгөөд энэ нь тушаалаар "ил тод" дуудагддаг yum. Бидний зорилгын хувьд тэдгээрийн хооронд ямар ч ялгаа байхгүй тул жишээн дээр байх болно yum.

Мета өгөгдлийн кэшийг шинэчлэх: sudo yum makecache

Libtomath багц нь тусдаа E(xtra)P(ackages for)E(nterprise)L(inux) репозиторт байгаа тул аль хэдийн орсон эсэхийг шалгана уу:

yum -C repolist

Зөвхөн кэш сонголт (-C буюу --cache-only) нь шаардлагагүй шалгалт, татан авалтыг арилгахад ашиглагддаг бөгөөд yum илүү хурдан ажилладаг. Жагсаалтад epel хадгалах газар байхгүй бол түүнийг суулгаад мета өгөгдлийн кэшийг шинэчилнэ үү.

sudo yum install epel-release &&
sudo yum makecache

Шаардлагатай бол бид итгэмжлэгдсэн эх сурвалжаас мэдэгдэж байгаа pgp түлхүүрүүдийн утгыг шалгах хүсэлтийг баталгаажуулдаг.

Хэрэв https-нөөцөөс хадгалах мета-мэдээлэл ачаалахад асуудал гарвал файлыг засварлана уу. /etc/yum.repos.d/epel.repo, солих https:// тухай http:// мөн кэш шинэчлэх командыг давтана уу.

Шаардлагатай багцуудын статусыг шалгана уу (тушаал нь нарийн төвөгтэй, жишээн дээр 32 битийн багцыг шүүсэн):

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

Бид үүнийг харж байна curl, gzip и ncurses суулгагчийн псевдо репозиторт байрлуулсан (anaconda), ба tar – Системийн хамгийн бага суурилуулалтаас хасагдсан. Гол хувилбарууд libncurses и libtommath шаардлагатай хэмжээнээс илүү: 6 ба 1-ийн оронд 5 ба 0. Хэрэв ижил багц суулгасан бөгөөд ашиглах боломжтой бол түүнд зориулсан шинэчлэлт гарсан байна. Алга болсон багцуудыг суулгана уу:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Багц удирдлагын хэрэгслүүд apt, apt‑get и apt‑cache. Эхнийх нь интерактив ажилд зориулагдсан бөгөөд сүүлийн хоёр нь скриптэд ашиглах зориулалттай. Багцын нэр нь арай өөр бөгөөд хувилбарыг агуулсан.

Шаардлагатай багцуудын статусыг шалгана уу (командыг нугалж, дээжийн гаралтыг богиносгож, 32 битийн багцуудыг шүүсэн):

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]

Дөрвөлжин хаалт бүхий багцууд installed/upgradable - суулгасан. Боломжтой боловч суулгаагүй байна ncurses5, оронд нь curl суулгасан wget. Алга болсон багцуудыг суулгана уу:

sudo apt‑get install 
libncurses5 libtommath1

Симлингийн холбоос үүсгэх

Учир нь libtommath.so.1 и libncurses.so.6 хоцрогдсон нийцтэй libtommath.so.0 и libncurses.so.5, дараа нь Firebird-ийн хувьд номын сангийн боломжит хувилбарууд руу сим холбоос үүсгэхэд хангалттай.

Олох libtommath.so.1 (libncurses.so.? ижил директорт байрладаг):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

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

Бид симболын холбоос үүсгэдэг.

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

Бид үр дүнг шалгана (команд нь нарийн төвөгтэй, гаралтын жишээг богиносгосон):

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

Firebird DBMS-ийн түгээлтийн хэрэгслийг ачаалж байна.

Firebird төслийн албан ёсны вэб сайт (firebirdsql.org) нь "албан ёсны" хувилбарууд болон "өдөр тутмын" бүтээцүүдийн тархалтын холбоосыг нийтэлдэг.

Linux-д зориулсан албан ёсны хувилбаруудыг архив (tar.gz) болон deb/rpm багц хэлбэрээр авах боломжтой бол бүтээцийг зөвхөн архив хэлбэрээр авах боломжтой. Бид "ерөнхий суулгагч" (tar.gz-ийн ерөнхий суулгагч) -ийг авч үзэх болно.

Угсралтын архивыг татаж аваад задлах шаардлагатай боловч бид эдгээр хоёр процессыг хослуулах болно. Савыг задлах нь дотор хийгддэг /tmp, URL нь татаж авсан архивын холбоосыг илэрхийлнэ.

буржгар:

curl -L URL | tar -zxC /tmp

wget:

wget -O– URL | tar -zxC /tmp

анхдагчаар curl татаж авсан өгөгдлийг stdout руу илгээдэг боловч дахин чиглүүлэлт хийхгүй тул бид "‑L", а wget, эсрэгээр: дахин чиглүүлэлтүүдийг зохицуулдаг боловч файл руу өгөгдөл бичдэг бөгөөд бид "‑O‑". Учир нь tar хэрэглээг зааж өгнө gzip-шүүлтүүр болон задлах үйлдлийг гүйцэтгэх лавлах. Процесс дууссаны дараа маягтын лавлах гарч ирнэ Firebird‑3.0.5.33220‑0.amd64 гурван файлтай: install.sh, buildroot.tar.gz и manifest.txt.

Firebird суулгаж байна

Урьдчилсан бэлтгэлийн явцад бид системийн параметрийн утгыг тохируулсан vm.max_map_count, ICU, ncurses болон tommath номын сангуудыг шалгаж суулгасан. ncurses болон tommath хувилбарууд зөв эсэхийг шалгана уу (libncures.so.5 и libtommath.so.0) болон шаардлагатай тэмдэгт холбоосуудыг үүсгэсэн.

Бодит суурилуулалт нь маш энгийн. Firebird түгээлтийн архивыг задалсан лавлах руу очиж, шалгаж, шаардлагатай бол скриптийн "гүйцэтгэх" тугийг тохируулна уу. install.sh:

chmod +x install.sh

суулгах скриптийг ажиллуулах:

sudo ./install.sh

Enter товчийг дарснаар бид суулгацын эхлэлийг баталгаажуулж, хүсэлтийг хүлээн авсны дараа бид sysdba нууц үгээ оруулна.

Суулгах скрипт автоматаар ажиллана systemd-нэгж firebird-superserver (өгөгдмөл Firebird 3.0 архитектур). Firebird үйлчилгээ нь суперсерверийн өгөгдмөл тохиргоотой ажиллах болно: 2048 хуудасны кэш (нэг суурь), 64 МБ эрэмбэлэх буфер (хуваалцсан), зөвхөн XNUMX-р хувилбарын үйлчлүүлэгчдэд зориулсан холболт. Тохиргоог харах firebird.conf:

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

-аас шинэ утгууд байгааг анхаарна уу firebird.conf Firebird үйлчилгээг дахин эхлүүлсний дараа л идэвхжих болно.

Параметрийн утгыг сонгохдоо хуудасны кэш (өгөгдлийн сангийн хувьд), эрэмбэлэх буфер (хуваалцсан) болон үйлчлүүлэгчийн холболтод зориулж серверээс хуваарилсан санах ой гэсэн гурван үндсэн "хэрэглэгч" байгааг анхаарч үзэх хэрэгтэй. Та зөвхөн эхний хоёрыг удирдах боломжтой - үйлчлүүлэгчийн холболтод зориулсан санах ойн хэмжээ нь кэштэй хүсэлтийн тоо, текст, тэдгээрийн төлөвлөгөө, хүсэлтэд хамрагдсан мэдээллийн сангийн объектуудаас хамаарна. Үйлчлүүлэгчийн холболтын санах ойн тооцоог зөвхөн эмпирик байдлаар хийдэг бөгөөд үйлчлүүлэгчийн програмууд болон/эсвэл мэдээллийн сангийн объектууд өөрчлөгдөх үед өөрчлөгдөж болно.

Бага хэмжээний санах ойтой (12-16 ГБ хүртэл) хостууд дээрх суперсерверийн хувьд хуудасны кэш, эрэмбэлэх буферт нийт RAM-ийн гуравны нэгээс дөрөвний нэгээс илүүг хуваарилж болохгүй.

Хэрэв суурийн тоо тогтмол биш бөгөөд өөрчлөгдөх боломжтой бол хуудасны кэш санах ойн нийт хэмжээг сервер дээр байж болох суурийн дээд тоонд хуваах хэрэгтэй. Хуудасны кэшийн хэмжээг хуудсаар зааж өгсөн бөгөөд тусад нь байт болгон хөрвүүлэх ёстой.

Сонгодог архитектурт шилжихийн тулд та дор хаяж тодорхой зааж өгөх ёстой ServerMode в firebird.conf, хуудасны кэшийг нэг газар багасгах (2К-аас ихгүй), эрэмбэлэх буферийг багасгах (бүх төрлийн зөвшөөрөгдөх нийт хэмжээг холболтын хамгийн их тоонд хуваасан), нэгжийг идэвхгүй болгох, зогсоох firebird-superserver, нэгжийг идэвхжүүлж, ажиллуулна уу firebird-classic.socket.

Firebird 3.0-д супер сонгодог архитектурыг ашиглах нь тийм ч утгагүй юм: "найдвартай байдал" нь суперсервер болон ижил төрлийн буфертэй адил юм. Нийтлэг хуудасны кэш байхгүй бөгөөд өөр өөр холболтыг өөр хоорондоо синхрончлох "алдагдлууд" нь сонгодог хувилбартай ижил байна.

Firebird 3.0-д зарим параметрүүдийг (хуудасны кэш, түгжих файлын хэмжээ, хэш хүснэгт болон бусад) тохируулж болно гэдгийг санах нь зүйтэй. databases.conf суурь тус бүрийн хувьд тус тусад нь. Суперсерверийн хувьд жишээлбэл, жижиг утгыг тохируулах нь ашигтай байдаг DefaultDbCachePages в firebird.conf шаардлагатай мэдээллийн санд зориулсан хуудасны кэшийг суулгана databases.conf.

Сэтгэгдэл хэсэгт нийтлэлийн талаар асуулт асуух эсвэл манай дэмжлэгийн хаяг руу захидал бичээрэй [имэйлээр хамгаалагдсан].

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх