最新の Linux バヌゞョン: CentOS3 および Ubuntu 8 ぞの Firebird 19 のむンストヌル

この蚘事では、新しい Linux ディストリビュヌションに Firebird DBMS バヌゞョン 3.0 を最適にむンストヌルするために必芁な最小限のアクションに぀いお説明したす。 䟋ずしお、CentOS 8 ず Ubuntu 19 が遞択されおいたす。

Firebird ディストリビュヌションをタヌゲット システムに「配信」するには、このガむドでは、プロゞェクトの公匏 Web サむトからのリンクを䜿甚しお tar.gz アヌカむブをダりンロヌドするオプションを遞択したす (ファむアバヌドSQL.org).

最もせっかちな人は、すぐに戊闘に参加しおください。

クむックむンストヌル

ファむルの線集 /etc/sysctl.conf次の行を远加したす。

vm.max_map_count = 256000

ファむルを保存し、蚭定を適甚したす。

sudo sysctl -p /etc/sysctl.conf

CentOS 8 ず Ubuntu 19 では詳现な手順が異なりたすが、 ССЫЛКА О КАТАЛОГ ディストリビュヌションをダりンロヌドするための公匏 Firebird プロゞェクト Web サむトからのリンクず、ダりンロヌド プロセス䞭にディストリビュヌションが解凍されるディレクトリを瀺したす。
珟圚 (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

これらのアクションが䜕を行うのかをさらに理解したい堎合は、読み続けおください。

メむン

短い前文

OS がすでに最小バヌゞョンでむンストヌルされおおり、パブリック リポゞトリたたはそのロヌカル コピヌぞのアクセスが構成されおいるこずが前提ずなっおいたす。

読者は Linux ず Firebird DBMS の基本的な知識を持っおいるこずを前提ずしおいたす。

蚈画

DBMS サヌバヌでは、䞀時ファむルに別のセクションを割り圓おるこずをお勧めしたす (/tmp)、デヌタベヌス ファむル、ロヌカル バックアップ。

䞀時的なものには、ロック ファむル、゜ヌト ファむル、グロヌバル䞀時テヌブル (GTT) の「実䜓化」ファむル、および監芖テヌブルが含たれたす。 ゜ヌト甚のファむルずグロヌバル䞀時テヌブルは次の堎所にありたす。 /tmp、mon$-table ファむルず lock-file – で /tmp/firebird.

仕分けファむルが「削陀」されたすunlink䜜成盎埌なので、ディレクトリリストには「衚瀺」できたせん。プロセスハンドルのリスト「 deleted):

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

疑䌌ディレクトリのリスト内 /proc/
/fd/ シンボリックリンクが衚瀺され、ファむルに関する実際の情報が次のように衚瀺されたす。

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

どこ НОМЕР – 察象ファむルの蚘述子蚘述子。

「」ず呌ぶ代わりにpgrep ОспПлМяеЌый-файл「察象のプロセスの識別子をすぐに眮き換えるこずができたす。

䞀時ファむルは非垞に倧きくなる可胜性があるため、 /tmp 少なくずも 20  30 GB を割り圓おるこずをお勧めしたす。 ゜ヌト ファむルのサむズは、リク゚スト内で明瀺的たたは暗黙的に゜ヌトされたデヌタの量にのみ䟝存し、XNUMX 人のナヌザヌがギガバむトの䞀時ファむルを「䜜成」できるこずを考慮する必芁がありたす。

デヌタベヌス ファむルのセクションには、すべおのデヌタベヌス ファむルを含める必芁がありたす。 さらに、少なくずも最倧のデヌタベヌス ファむルのコピヌが必芁です。 今埌数幎間のデヌタベヌス ファむルの増倧を考慮する必芁がありたす。

ロヌカル バックアップ セクションには、すべおのデヌタベヌスのバックアップ アヌカむブが少なくずも XNUMX ぀ず、最倧のデヌタベヌスのバックアップが含たれおいる必芁がありたす。 このセクションには、最倧のデヌタベヌスを埩元するためのスペヌスも含たれるこずが望たしいです。 将来数幎間にわたるバックアップずバックアップ アヌカむブの増加を考慮する必芁がありたす。

予備準備

Firebird 3.0 DBMS サヌバヌはシステム メモリを動的に割り圓おたり解攟したりするため、断片化が発生する可胜性がありたす。 たずえば、倚数のナヌザヌが䞀床にスヌパヌサヌバヌから切断された埌、新しい接続を確立するずきに゚ラヌが発生する可胜性がありたす。

メモリの断片化はシステムパラメヌタによっお制埡されたす vm.max_map_count、デフォルトは 64K です。 その倀を XNUMX 倍に増やすこずをお勧めしたす。

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 – 重芁ではありたせん。

パッケヌゞの操䜜はシステムずシステムで䜿甚されるパッケヌゞ マネヌゞャヌに䟝存するため、それらを XNUMX ぀ず぀怜蚎しおいきたす。

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。 最初の XNUMX ぀はむンタラクティブな䜜業甚に蚭蚈されおおり、最埌の XNUMX ぀はスクリプトで䜿甚するために蚭蚈されおいたす。 パッケヌゞ名は若干異なり、バヌゞョンが含たれおいたす。

必芁なパッケヌゞのステヌタスを確認したす (コマンドが結合され、出力䟋が短瞮され、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 プロゞェクトの公匏 Web サむト (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 ダりンロヌドされたデヌタを暙準出力に送信したすが、リダむレクトは凊理しないため、「」を远加したす。‑L"、A wget逆に、リダむレクトを凊理したすが、デヌタをファむルに曞き蟌みたす。‑O‑」 のために tar 䜿甚を瀺す gzip-filter ず解凍が実行されるディレクトリ。 凊理が完了するず、このようなディレクトリが衚瀺されたす Firebird‑3.0.5.33220‑0.amd64 XNUMX ぀のファむル: install.sh, buildroot.tar.gz О manifest.txt.

ファむアバヌドのむンストヌル

事前準備䞭にシステムパラメヌタの倀を調敎したした 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 MB の゜ヌト バッファ (共有)、およびバヌゞョン XNUMX クラむアントのみの接続で動䜜したす。 オプションを衚瀺する firebird.conf:

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

からの新しい倀に泚意しおください。 firebird.conf Firebird サヌビスを再起動した埌にのみアクティブ化されたす。

パラメヌタ倀を遞択するずきは、ペヌゞ キャッシュ (デヌタベヌス甚)、䞊べ替えバッファ (共有)、およびクラむアント接続甚にサヌバヌによっお割り圓おられたメモリずいう XNUMX ぀の䞻芁な「コンシュヌマ」が存圚するこずを考慮する必芁がありたす。 最初の XNUMX ぀だけを管理できたす。クラむアント接続のメモリ量は、キャッシュされたク゚リの数ずテキスト、そのプラン、ク゚リに含たれるデヌタベヌス オブゞェクトによっお異なりたす。 クラむアント接続メモリの芋積もりは経隓的にのみ行われおおり、クラむアント アプリケヌションやデヌタベヌス オブゞェクトの倉曎に応じお倉曎される可胜性がありたす。

少量のメモリ (最倧 12  16 GB) を備えたホスト䞊のスヌパヌサヌバヌの堎合、ペヌゞ キャッシュず゜ヌト バッファに RAM の合蚈量の XNUMX 分の XNUMX たたは XNUMX 分の XNUMX を超える量を割り圓おないでください。

デヌタベヌスの数が固定されおおらず、倉曎される可胜性がある堎合は、ペヌゞ キャッシュ メモリの総量をサヌバヌ䞊に存圚できるデヌタベヌスの最倧数で割る必芁がありたす。 ペヌゞ キャッシュのサむズはペヌゞ単䜍で指定され、別途バむトに倉換する必芁がありたす。

クラシック アヌキテクチャに切り替えるには、少なくずも明瀺的に指定する必芁がありたす。 ServerMode в firebird.conf、そこにあるペヌゞキャッシュを枛らし2K以䞋、゜ヌトバッファすべおの皮類の合蚈蚱容量を最倧接続数で割った倀を枛らし、ナニットを無効にしお停止したす。 firebird-superserver、ナニットを有効にしお起動したす firebird-classic.socket.

Firebird 3.0 でスヌパヌクラシック アヌキテクチャを䜿甚するこずはあたり意味がありたせん。「信頌性」はスヌパヌサヌバヌず同じ䞀般的な䞊べ替えバッファのようなものです。 共通のペヌゞ キャッシュはなく、異なる接続を盞互に同期するこずによる「損倱」は埓来の接続ず同じです。

Firebird 3.0 では、䞀郚のパラメヌタ (ペヌゞ キャッシュ、ロック ファむル サむズ、ハッシュ テヌブルなど) を次のように蚭定できるこずに泚意しおください。 databases.conf デヌタベヌスごずに個別に。 スヌパヌサヌバヌの堎合、たずえば小さな倀を蚭定するず䟿利です。 DefaultDbCachePages в firebird.conf 必芁なデヌタベヌスに個別のペヌゞ キャッシュをむンストヌルしたす。 databases.conf.

コメントで蚘事に぀いお質問するか、サポヌト アドレスに手玙を曞いおください。 [メヌル保護].

出所 habr.com

コメントを远加したす