في هذه المقالة ، نصف المجموعة الدنيا من الخطوات المطلوبة لتثبيت الإصدار 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 8sudo 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
أوبونتو 19sudo 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.