لینکس کے جدید ورژن: CentOS3 اور Ubuntu 8 پر Firebird 19 انسٹال کرنا

اس آرٹیکل میں ہم نئی لینکس ڈسٹری بیوشنز پر Firebird DBMS ورژن 3.0 کی بہترین انسٹالیشن کے لیے ضروری اقدامات کے کم از کم سیٹ کی وضاحت کریں گے۔ CentOS 8 اور Ubuntu 19 کو مثالوں کے لیے منتخب کیا گیا ہے۔

فائر برڈ ڈسٹری بیوشن کو ٹارگٹ سسٹم میں "ڈیلیور" کرنے کے لیے، اس گائیڈ میں، tar.gz آرکائیو کو ڈاؤن لوڈ کرنے کا آپشن آفیشل پروجیکٹ ویب سائٹ سے ایک لنک کا استعمال کرتے ہوئے منتخب کیا گیا ہے۔firebirdsql.org).

سب سے زیادہ بے صبری کے لیے، سیدھے جنگ میں جائیں:

تیز تنصیب

فائل میں ترمیم کرنا /etc/sysctl.confلائن شامل کرکے:

vm.max_map_count = 256000

فائل کو محفوظ کریں اور ترتیب کو لاگو کریں:

sudo sysctl -p /etc/sysctl.conf

مزید ہدایات CentOS 8 اور Ubuntu 19 کے لیے مختلف ہیں، لیکن ССЫЛКА и КАТАЛОГ ڈسٹری بیوشن اور ڈائرکٹری کو ڈاؤن لوڈ کرنے کے لیے فائر برڈ پروجیکٹ کی آفیشل ویب سائٹ سے ایک لنک کی نشاندہی کریں جس میں ڈسٹری بیوشن کو ڈاؤن لوڈ کے عمل کے دوران پیک کیا جائے گا۔
فی الحال (مارچ 2020) موجودہ ریلیز Firebird 3.0.5 ہے (لنک یہ ہے۔ 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

اوبنٹو 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 پہلے سے ہی کم سے کم ورژن میں انسٹال ہے اور عوامی ذخیروں تک رسائی یا ان کی مقامی کاپیاں ترتیب دی گئی ہیں۔

یہ فرض کیا جاتا ہے کہ قاری کو لینکس اور فائر برڈ ڈی بی ایم ایس کا بنیادی علم ہے۔

منصوبہ بندی

DBMS سرور پر یہ تجویز کیا جاتا ہے کہ عارضی فائلوں کے لیے الگ الگ حصے مختص کیے جائیں (/tmp)، ڈیٹا بیس فائلیں اور مقامی بیک اپ۔

عارضی میں لاک فائلیں، فائلوں کو چھانٹنا، عالمی عارضی میزوں (GTT) کی "مٹیریلائزیشن" فائلیں اور مانیٹرنگ ٹیبلز شامل ہیں۔ چھانٹنے اور عالمی عارضی جدولوں کے لیے فائلیں اس میں موجود ہیں۔ /tmpmon$-table فائلیں اور لاک فائلز - میں /tmp/firebird.

چھانٹنے والی فائلیں "حذف" ہیں (unlink) تخلیق کے فوراً بعد، اس لیے انہیں ڈائرکٹری کی فہرست میں "دیکھا" نہیں جا سکتا - صرف پروسیس ہینڈلز کی فہرست میں (اس کے بطور نشان زد deleted):

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

چھدم ڈائریکٹری کی فہرست میں /proc/…/fd/ symlinks دکھائے جاتے ہیں، اور فائل کے بارے میں اصل معلومات بذریعہ دی جاتی ہیں:

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

جہاں НОМЕР - دلچسپی کی فائل کا وضاحت کنندہ (ڈسکرپٹر)۔

بلانے کے بجائے"pgrep исполняемый-файл"آپ دلچسپی کے عمل کے شناخت کنندہ کو فوری طور پر تبدیل کر سکتے ہیں۔

عارضی فائلیں بہت بڑی ہو سکتی ہیں۔ /tmp کم از کم 20-30 GB مختص کرنے کی سفارش کی جاتی ہے۔ اس بات کو مدنظر رکھا جانا چاہیے کہ فائلوں کو چھانٹنے کا سائز صرف ڈیٹا کی مقدار پر منحصر ہے جو درخواست میں واضح طور پر یا واضح طور پر ترتیب دیا گیا ہے، اور ایک صارف عارضی فائلوں کی گیگا بائٹس "تخلیق" کر سکتا ہے۔

ڈیٹا بیس فائلوں کے سیکشن میں تمام ڈیٹا بیس فائلوں کو ایڈجسٹ کرنا ضروری ہے۔ اس کے علاوہ، کم از کم، سب سے بڑی ڈیٹا بیس فائل کی ایک کاپی۔ مستقبل میں آنے والے کئی سالوں تک ڈیٹا بیس فائلوں کی ترقی کو مدنظر رکھنا ضروری ہے۔

مقامی بیک اپ سیکشن میں تمام ڈیٹا بیسز کا کم از کم ایک بیک اپ آرکائیو اور سب سے بڑے ڈیٹا بیس کا بیک اپ ہونا ضروری ہے۔ یہ ضروری ہے کہ اس حصے میں سب سے بڑے ڈیٹا بیس کو بحال کرنے کی جگہ بھی موجود ہو۔ مستقبل میں کئی سالوں تک بیک اپ اور بیک اپ آرکائیوز کی ترقی کو مدنظر رکھا جانا چاہیے۔

ابتدائی تیاری۔

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. آئی سی یو ورژن، 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 تیز تر ہوتا ہے۔ اگر فہرست میں ایپل ذخیرہ نہیں ہے تو اسے انسٹال کریں اور میٹا ڈیٹا کیش کو اپ ڈیٹ کریں:

sudo yum install epel-release &&
sudo yum makecache

ہم درخواستوں کی تصدیق کرتے ہیں، اگر ضروری ہو تو، پی جی پی کیز کی قدروں کو ان کے ساتھ چیک کرتے ہیں جو پہلے سے قابل اعتماد ذریعہ سے معلوم ہوتے ہیں۔

اگر 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

اوبنٹو 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 کے لیے لائبریریوں کے موجودہ ورژن کے لیے Symlinks بنانا کافی ہے۔

ہم ڈھونڈتے ہیں۔ 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

فائر برڈ ڈی بی ایم ایس ڈسٹری بیوشن کٹ ڈاؤن لوڈ کرنا۔

فائر برڈ پروجیکٹ کی آفیشل ویب سائٹ (firebirdsql.org) "آفیشل" ریلیز اور "ڈیلی" بلڈز (اسنیپ شاٹ بلڈز) کی تقسیم کے لنکس شائع کرتی ہے۔

لینکس کی آفیشل ریلیز آرکائیوز (tar.gz) اور deb/rpm پیکجز کے طور پر دستیاب ہیں، لیکن بلڈز صرف آرکائیوز کے طور پر دستیاب ہیں۔ ہم "عام انسٹالر" (tar.gz سے عام انسٹالر) پر غور کریں گے۔

بلڈ آرکائیو کو ڈاؤن لوڈ اور پیک کھولنے کی ضرورت ہے، لیکن ہم دونوں عمل کو یکجا کریں گے۔ پیک کھولنے میں کیا جاتا ہے۔ /tmp,URL ڈاؤن لوڈ کے قابل محفوظ شدہ دستاویزات کے لنک کو ظاہر کرتا ہے۔

curl:

curl -L URL | tar -zxC /tmp

ویجٹ:

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.

فائر برڈ انسٹال کرنا

ابتدائی تیاری کے دوران، ہم نے سسٹم پیرامیٹر کی قدر کو ایڈجسٹ کیا۔ vm.max_map_count، دستیابی کی جانچ پڑتال کی اور ICU، ncurses اور tommath لائبریریوں کو انسٹال کیا۔ یقینی بنائیں کہ ncurses اور tommath کے ورژن درست ہیں (libncures.so.5 и libtommath.so.0) اور ضروری سملنک بنائے۔

اصل تنصیب بہت آسان ہے۔ اس ڈائریکٹری میں جائیں جہاں فائر برڈ ڈسٹری بیوشن آرکائیو کو پیک کیا گیا تھا، چیک کریں اور اگر ضروری ہو تو "قابل عمل" اسکرپٹ فلیگ سیٹ کریں۔ install.sh:

chmod +x install.sh

انسٹالیشن اسکرپٹ چلائیں:

sudo ./install.sh

Enter کلید کو دبانے سے ہم انسٹالیشن کے آغاز کی تصدیق کرتے ہیں، اور درخواست موصول ہونے پر، sysdba پاس ورڈ درج کریں۔

انسٹالیشن اسکرپٹ خود بخود شروع ہو جاتی ہے۔ systemd-یونٹ firebird-superserver (خاموش فائر برڈ 3.0 فن تعمیر)۔ فائر برڈ سروس سپرسرور کے لیے پہلے سے طے شدہ پیرامیٹرز کے ساتھ کام کرے گی: 2048 صفحات کا صفحہ کیش (فی ڈیٹا بیس)، 64 ایم بی (مشترکہ) کا ایک ترتیب دینے والا بفر اور صرف ورژن XNUMX کلائنٹس کو جوڑنا۔ اختیارات دیکھیں firebird.conf:

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

براہ کرم نوٹ کریں کہ نئی اقدار سے firebird.conf فائر برڈ سروس کو دوبارہ شروع کرنے کے بعد ہی فعال کیا جائے گا۔

پیرامیٹر کی قدروں کا انتخاب کرتے وقت، اس بات کو مدنظر رکھنا چاہیے کہ تین اہم "صارفین" ہیں: صفحہ کیش (ڈیٹا بیس کے لیے)، ترتیب دینے والا بفر (مشترکہ) اور کلائنٹ کنکشنز کے لیے سرور کی طرف سے مختص کردہ میموری۔ آپ صرف پہلے دو کا انتظام کر سکتے ہیں - کلائنٹ کنکشن کے لیے میموری کی مقدار کیش شدہ سوالات کی تعداد اور متن، ان کے منصوبوں اور سوالات میں شامل ڈیٹابیس اشیاء پر منحصر ہے۔ کلائنٹ کنکشن میموری کے تخمینے صرف تجرباتی طور پر بنائے جاتے ہیں اور کلائنٹ کی ایپلی کیشنز اور/یا ڈیٹابیس اشیاء کی تبدیلی کے ساتھ تبدیل ہو سکتے ہیں۔

تھوڑی مقدار میں میموری (12-16 GB تک) والے میزبانوں پر سپرسرور کے لیے، آپ کو صفحہ کیش اور ترتیب والے بفر کے لیے RAM کی کل رقم کے ایک تہائی یا چوتھائی سے زیادہ مختص نہیں کرنا چاہیے۔

اگر ڈیٹا بیس کی تعداد مقرر نہیں ہے اور تبدیل ہو سکتی ہے، تو صفحہ کی کیش میموری کی کل رقم کو سرور پر موجود ڈیٹا بیس کی زیادہ سے زیادہ تعداد سے تقسیم کیا جانا چاہیے۔ صفحہ کیشے کا سائز صفحات میں بیان کیا گیا ہے اور اسے الگ سے بائٹس میں تبدیل کیا جانا چاہیے۔

کلاسک فن تعمیر پر جانے کے لیے، آپ کو، کم از کم، واضح طور پر بتانا ضروری ہے ServerMode в firebird.conf، وہاں صفحہ کی کیش کو کم کریں (2K سے زیادہ نہیں)، ترتیب والے بفر کو کم کریں (تمام قسم کے کل قابل اجازت حجم کو کنکشنز کی زیادہ سے زیادہ تعداد سے تقسیم کیا جاتا ہے)، یونٹ کو غیر فعال اور روک دیں۔ firebird-superserver، یونٹ کو فعال اور شروع کریں۔ firebird-classic.socket.

فائر برڈ 3.0 میں سپر کلاسک فن تعمیر کا استعمال زیادہ معنی نہیں رکھتا: "قابل اعتماد" ایک سپرسرور کی طرح ہے اور وہی عام چھانٹنے والا بفر ہے۔ صفحہ کا کوئی عام ذخیرہ نہیں ہے اور ایک دوسرے کے ساتھ مختلف رابطوں کو ہم آہنگ کرنے کے "نقصانات" وہی ہیں جیسے کلاسک میں۔

یاد رہے کہ Firebird 3.0 میں کچھ پیرامیٹرز (صفحہ کیش، لاک فائل سائز، ہیش ٹیبلز اور کچھ دیگر) سیٹ کیے جا سکتے ہیں۔ databases.conf ہر ڈیٹا بیس کے لیے انفرادی طور پر۔ ایک سپرسرور کے لیے یہ مفید ہے، مثال کے طور پر، ایک چھوٹی سی قیمت مقرر کرنا DefaultDbCachePages в firebird.conf اور میں مطلوبہ ڈیٹا بیس کے لیے انفرادی صفحہ کیشز انسٹال کریں۔ databases.conf.

تبصرے میں مضمون کے بارے میں سوالات پوچھیں، یا ہمارے سپورٹ ایڈریس پر خط لکھیں۔ [ای میل محفوظ].

ماخذ: www.habr.com

نیا تبصرہ شامل کریں