تثبيت Firebird 3 على إصدارات Linux الحديثة: CentOS8 و Ubuntu 19

في هذه المقالة ، نصف المجموعة الدنيا من الخطوات المطلوبة لتثبيت الإصدار 3.0 من Firebird على النحو الأمثل في توزيعات 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) إصدار 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

إذا كنت تريد أن تفهم بشكل أفضل الغرض من هذه الإجراءات ، فتابع القراءة.

الجزء الرئيسي من

الديباجة الصغيرة من

المفترض أن نظام التشغيل مثبت بالفعل في الحد الأدنى من الإصدار وتم تكوين الوصول إلى المستودعات العامة أو نسخها المحلية.

من المفترض أن القارئ لديه معرفة أساسية بنظام Linux و Firebird DBMS.

التخطيط

يوصى بتخصيص أقسام منفصلة للملفات المؤقتة ( /tmp) ، وملفات قواعد البيانات ، والنسخ الاحتياطية المحلية على خادم DBMS .

تشمل المؤقتة ملفات القفل ، وفرز الملفات ، وملفات "التجسيد" للجداول المؤقتة العالمية (GTTs) وجداول المراقبة. توجد ملفات الفرز والجداول المؤقتة العامة ، وتقع /tmpملفات mon $ table وملفات القفل /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، بشكل افتراضي - 64 كيلو. يوصى بزيادة قيمته أربع مرات:

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) ومكتبات tommath ( libtommath.so.0). لتنزيل وفك أرشيف التجميع ، تكون هناك حاجة إلى أدوات مساعدة gzip، tarو / curlأو wget. إصدار وحدة العناية المركزة gzip، tarو curl/ wget- غير ذات أهمية.

يعتمد العمل مع الحزم على النظام وعلى مدير الحزم المستخدم في النظام ، لذلك سننظر فيها واحدة تلو الأخرى.

CentOS 8

يستخدم مدير الحزم الجديد - dnfويتم استدعاء الأمر "بشفافية" yum. نظرًا لعدم وجود فرق بينهما لأغراضنا ، فستكون هناك أمثلة yum.

تحديث ذاكرة التخزين المؤقت لبيانات التعريف:sudo yum makecache

توجد حزمة libtomath في مستودعات منفصلة E (xtra) P (حزم) 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

أوبونتو 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، وهو ما يكفي لفايربيرد لخلق روابط الرمزية الإصدارات الحالية من المكتبات.

نجد libtommath.so.1( libncurses.so.?الموجود في نفس الدليل):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

أوبونتو:

/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

أوبونتو:

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*

أوبونتو:

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يرسل البيانات المحملة إلى الإخراج القياسي ، لكنه لا يتعامل مع عمليات إعادة التوجيه ونضيف " ‑L" ، ولكن wgetعلى العكس: فهو يعالج عمليات إعادة التوجيه ، ولكنه يكتب البيانات في ملف ونضعها " ‑O‑". لل tarإشارة إلى استخدام gzipفلتر والدليل الذي سيتم تنفيذ تفريغ. وعند الانتهاء من هذه العملية سوف يكون نوع من الدليل Firebird‑3.0.5.33220‑0.amd64مع ثلاثة ملفات: install.sh، buildroot.tar.gzو manifest.txt.

تثبيت Firebird

أثناء الإعداد الأولي ، قمنا بتعديل قيمة معلمة النظام vm.max_map_count، والتحقق من التوفر وتثبيت وحدة العناية المركزة ، والمكتبات والمكتبات. تأكدنا من أن إصدارات 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 ميجابايت (مشترك) ، وتوصيل عملاء الإصدار الثالث فقط. خيارات العرض firebird.conf:

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

يرجى ملاحظة أن القيم الجديدة من firebird.confسيتم تنشيطها فقط بعد إعادة تشغيل خدمة Firebird.

عند تحديد قيم المعلمات ، يجب أن يؤخذ في الاعتبار أن هناك ثلاثة "مستهلكين" رئيسيين: ذاكرة التخزين المؤقت للصفحة (لقاعدة البيانات) ، والفرز المؤقت (المشترك) ، والذاكرة المخصصة من قبل الخادم لاتصالات العميل. يمكنك إدارة الأولين فقط - يعتمد مقدار الذاكرة لاتصالات العميل على عدد ونص الطلبات المخزنة مؤقتًا وخططها وكائنات قاعدة البيانات المتضمنة في الطلبات. يتم تقييم ذاكرة اتصالات العملاء تجريبيا فقط ويمكن أن تتغير عندما تتغير تطبيقات العميل و / أو كائنات قاعدة البيانات.

بالنسبة للخادم المتميز على الأجهزة المضيفة التي تحتوي على قدر صغير من الذاكرة (حتى 12-16 جيجابايت) ، يجب ألا تخصص أكثر من ثلث أو ربع إجمالي ذاكرة الوصول العشوائي لذاكرة التخزين المؤقت للصفحة والفرز المؤقت.

إذا لم يكن عدد قواعد البيانات ثابتًا ويمكن تغييره ، فيجب تقسيم إجمالي ذاكرة ذاكرة التخزين المؤقت للصفحة على الحد الأقصى لعدد قواعد البيانات التي يمكن أن تكون على الخادم. يتم تعيين حجم ذاكرة التخزين المؤقت للصفحة في الصفحات ويجب تحويلها بشكل منفصل إلى وحدات البايت.

للتبديل إلى البنية الكلاسيكية ، يجب على الأقل أن تحدد صراحة ServerModeفي firebird.confذاكرة التخزين المؤقت للصفحة في نفس المكان (لا تزيد عن 2 كيلوبايت) ، وتقليل ذاكرة التخزين المؤقت للفرز (إجمالي الكمية المسموح بها لجميع الأنواع ، مقسومة على الحد الأقصى لعدد الاتصالات) ، وتعطيل الوحدة وإيقافها firebird-superserver، وتمكينها وتشغيلها الوحدة firebird-classic.socket.

إن استخدام بنية superclassics في Firebird 3.0 لا معنى له: "الموثوقية" - مثل الخادم الفائق ، له نفس المخزن المؤقت العام للفرز. لا توجد ذاكرة تخزين مؤقت عامة للصفحات و "الفقد" لمزامنة الاتصالات المختلفة فيما بينها هو نفس ذاكرة التخزين المؤقت للصفحات الكلاسيكية.

يجب أن نتذكر أنه في Firebird 3.0 يمكن تعيين بعض المعلمات (ذاكرة التخزين المؤقت للصفحة ، أحجام ملفات القفل ، جداول التجزئة ، وبعضها الآخر) بشكل databases.confفردي لكل قاعدة بيانات. بالنسبة للخادم الفائق ، من المفيد ، على سبيل المثال ، تعيين قيمة صغيرة DefaultDbCachePagesفي firebird.confوتعيين ذاكرة التخزين المؤقت للصفحة الفردية لقواعد البيانات الضرورية في databases.conf.

اطرح أسئلة حول المقالة في التعليقات ، أو اكتب رسائل إلى عنوان الدعم الخاص بنا support@ibase.ru.

All Articles