صيانة قاعدة البيانات

الصيانة التلقائية اليومية

بشكل افتراضي، تتولى إحدى المهام المجدولة المثبتة للمستخدم eranger مسؤولية إدارة قاعدة البيانات:

$ crontab -l | grep expire
0 4 * * * /opt/eranger/bin/eranger-server-expire

وهي تعيد تنظيم البيانات يوميًا عن طريق تشغيل وظيفة PostgreSLQ autovacuum بحيث يمكن الوصول إلى البيانات بشكل أسرع.

يتم التكوين في تكوين خادم SKOOR:

/etc/opt/eranger/eranger-server.cfg

المعلمات ذات القيم الافتراضية:

# Expire script config values
expire_days_long = 366
expire_days_short = 31
expire_row_limit=

اسم المعلمة

الوصف

expire_days_long

يحدد عدد الأيام التي يتم فيها الاحتفاظ بمدخلات قاعدة البيانات التالية:

  • سجل الحالة

  • سجل القيم

  • رسائل الإنذار

  • رسائل الإنذار المرسلة

  • الإنذارات

  • سجل التغييرات

  • الصيانة (وقت الانتهاء)

  • المستخدمون (آخر وصول)

  • بيانات توقعات العتبة

expire_days_short

يحدد عدد الأيام التي يتم خلالها الاحتفاظ برسائل أخطاء المهام في قاعدة البيانات. إذا تم حذفه، فسيتم تعيينه على عدد الأيام

expire_row_limit

الحد الأقصى لعدد الصفوف التي يمكن حذفها دفعة واحدة من قاعدة البيانات للمدخلات التالية. إذا تم حذفها، فسيتم حذف الصفوف دون حدود:

  • رسائل الإنذار

  • رسائل الإنذار المرسلة

  • الإنذارات

  • سجل التغييرات

  • الصيانة

  • المستخدمون

إعادة كتابة الجدول بالكامل يدويًا

ومع ذلك، لا يقوم autovacuum بعد بحذف بيانات الجدول التي تم حذفها من قبل المستخدمين. لحذف البيانات غير المستخدمة وإعادة كتابة جميع الجداول، يجب استخدام وظيفة vacuum full. لا يمكن تشغيل vacuum full إلا عند إيقاف خدمة eranger-server.

لتشغيل وظيفة التنظيف الكامل، قم بتشغيل البرنامج النصي التالي:

/opt/eranger/bin/eranger-db-housekeeping.sh
 *** ATTENTION! This script will block eranger-server for a very long time!
 *** Do you really want to execute this script on database "ng" ? Yy/[Nn]: n

أجب بـ y على السؤال أعلاه. ستستمر العملية لعدة ساعات، اعتمادًا على كمية البيانات المخزنة في قاعدة البيانات.

يوصى بتشغيل هذه الوظيفة مرة واحدة على الأقل كل عام.