اس آرٹیکل میں ہم نئی لینکس ڈسٹری بیوشنز پر Firebird DBMS ورژن 3.0 کی بہترین انسٹالیشن کے لیے ضروری اقدامات کے کم از کم سیٹ کی وضاحت کریں گے۔ CentOS 8 اور Ubuntu 19 کو مثالوں کے لیے منتخب کیا گیا ہے۔
فائر برڈ ڈسٹری بیوشن کو ٹارگٹ سسٹم میں "ڈیلیور" کرنے کے لیے، اس گائیڈ میں، tar.gz آرکائیو کو ڈاؤن لوڈ کرنے کا آپشن آفیشل پروجیکٹ ویب سائٹ سے ایک لنک کا استعمال کرتے ہوئے منتخب کیا گیا ہے۔
سب سے زیادہ بے صبری کے لیے، سیدھے جنگ میں جائیں:
تیز تنصیب
فائل میں ترمیم کرنا /etc/sysctl.conf
لائن شامل کرکے:
vm.max_map_count = 256000
فائل کو محفوظ کریں اور ترتیب کو لاگو کریں:
sudo sysctl -p /etc/sysctl.conf
مزید ہدایات CentOS 8 اور Ubuntu 19 کے لیے مختلف ہیں، لیکن ССЫЛКА
и КАТАЛОГ
ڈسٹری بیوشن اور ڈائرکٹری کو ڈاؤن لوڈ کرنے کے لیے فائر برڈ پروجیکٹ کی آفیشل ویب سائٹ سے ایک لنک کی نشاندہی کریں جس میں ڈسٹری بیوشن کو ڈاؤن لوڈ کے عمل کے دوران پیک کیا جائے گا۔
فی الحال (مارچ 2020) موجودہ ریلیز Firebird 3.0.5 ہے (
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) کی "مٹیریلائزیشن" فائلیں اور مانیٹرنگ ٹیبلز شامل ہیں۔ چھانٹنے اور عالمی عارضی جدولوں کے لیے فائلیں اس میں موجود ہیں۔ /tmp
mon$-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