الرئيسية
» مسؤول الشبكة
»
إصلاح خطأ قاعدة البيانات "فشل/تلف قاعدة البيانات" في سجلات البريد الإلكتروني في زيمبرا: التشخيص الآمن والاستعادة
إصلاح خطأ قاعدة البيانات "فشل/تلف قاعدة البيانات" في سجلات البريد الإلكتروني في زيمبرا: التشخيص الآمن والاستعادة
إنّ ظهور رسالة "خطأ في قاعدة البيانات: فشل قاعدة البيانات" في سجل بريد Zimbra هو عرضٌ وليس تشخيصًا. قد يشير إلى توقف قاعدة البيانات، أو انقطاع الاتصال، أو نفاد مساحة القرص، أو كثرة الاتصالات، أو تلف فعلي في الجدول أو قاعدة بيانات InnoDB. يعتمد الحل الآمن على سطور السجل المحيطة والخادم المتأثر. ابدأ بفحص البيانات للقراءة فقط، واحرص على حماية البيانات، ولا تُشغّل أمر إصلاح عام لمجرد ظهور كلمة "تلف".
يستخدم هذا الدليل مسارات وأوامر Zimbra الشائعة الموثقة في مركز Zimbra التقني. بعض صفحات ويكي ذات الصلة مؤرشفة أو غير مكتملة، لذا يُرجى التأكد من كل أمر وإجراء استعادة مُطابق لإصدار Zimbra الخاص بك باستخدام فهرس وثائق Zimbra الرسمي . الأمثلة أدناه لا تفترض إصدارًا مُحددًا.
ماذا يعني فشل قاعدة البيانات في ملف mailbox.log تحديداً؟
تخزن قاعدة بيانات صناديق البريد في زيمبرا بيانات تعريفية لصناديق البريد، مثل المجلدات والوسوم وحالة الرسائل ومؤشرات ملفات الرسائل. تُخزن فهارس البحث بشكل منفصل، ويُخزن محتوى الرسائل في مخزن الرسائل. لذا، لا يعني وجود خطأ في قاعدة البيانات بالضرورة تلف جميع ملفات البريد الإلكتروني، كما أن وجود خطأ في الفهرس بحد ذاته ليس دليلاً على تلف قاعدة البيانات. توضح زيمبرا هذه المخازن المنفصلة في مرجع بنية الخادم الخاص بها .
عادةً ما يكون الدليل الحاسم هو خطأ قاعدة البيانات الأساسي الذي يظهر بالقرب من استثناء صندوق البريد، خاصةً في [المكان الذي تم فيه تحديد الخطأ /opt/zimbra/log/mysql_error.log]. تُشير ملاحظات استكشاف الأخطاء وإصلاحها في Zimbra إلى [المكان الذي تم فيه تحديد الخطأ] mailbox.logو mysql_error.log[المكان الذي تم فيه تحديد الخطأ] كنقاط بداية مفيدة، مع zmmailboxd.outتوفير تفاصيل بدء تشغيل خدمة صندوق البريد. راجع مرجع استكشاف أخطاء سجلات Zimbra وإصلاحها .
ما الذي يجب عليك فعله قبل محاولة إصلاح المشكلة؟
سجّل وقت حدوث المشكلة لأول مرة، والمنطقة الزمنية، واسم مضيف الخادم، والحساب أو الحسابات المتأثرة، والاستثناء الكامل بالإضافة إلى الأسطر المجاورة. احجب كلمات المرور ومحتوى الرسائل والبيانات الشخصية قبل مشاركة السجلات.
حدد نطاق المشكلة: هل هي صندوق بريد واحد، أم صناديق بريد متعددة في مخزن واحد، أم مستخدمون في مخازن متعددة؟ لا يُبرر ظهور أعراض في حساب واحد إعادة تشغيل قاعدة البيانات على مستوى المجموعة.
تأكد من وجود نسخة احتياطية حديثة وقابلة للاستخدام، وحدد إجراء الاستعادة الخاص بالإصدار. إذا تكررت الأخطاء أو تأثر المستخدمون بشكل فعلي، فتجنب عمليات إعادة التشغيل والكتابة المتكررة حتى يتم فهم حالة قاعدة البيانات.
استخدم نافذة صيانة لإجراء عمليات فحص جداول قواعد البيانات. حتى فحص سلامة البيانات قد يزيد من عمليات الإدخال/الإخراج ويبطئ خدمة البريد الإلكتروني.
كيف يتم تشخيصها بأمان؟
1. تحقق من حالة الخدمة
على خادم البريد، انتقل إلى حساب Zimbra وتحقق من حالة الخدمة. نفّذ الأوامر باستخدام الحساب الظاهر في كل موجه أوامر؛ لا تقم بلصق رمز موجه $الأوامر كجزء من الأمر.
يعرض طرفية مفتاح تبديل الحساب zmcontrol statusوالأمر المستخدم للتحقق من حالة خدمة Zimbra؛ ولا يعرض أي نتائج للخادم.
su - zimbra
zmcontrol status
لاحظ ما إذا كان صندوق البريد قيد التشغيل وما إذا كانت المشكلة المبلغ عنها محصورة بخادم بريد واحد. لا يكفي توقف عملية صندوق البريد للاستنتاج بأن قاعدة البيانات تالفة. تعرض صفحة استكشاف أخطاء صندوق البريد في Zimbra أيضًا حالة الخدمة وتسجيل الدخول/التكوين لقاعدة البيانات كفحوصات منفصلة؛ هذه الصفحة مؤرشفة، لذا استخدمها كمرجع واتبع الوثائق الخاصة بإصدارك.
2. قارن سجلات صندوق البريد وسجلات قاعدة البيانات في نفس الوقت
اقرأ نفس الفترة الزمنية في كلا السجلين. غالبًا ما يكون الخطأ الأول في التسلسل أكثر فائدة من سطر "فشل النظام" الأخير.
يعرض الطرفية أوامر لقراءة أحدث الأسطر من mailbox.logو mysql_error.log، حيث يمكن مقارنة الأحداث ذات الصلة حسب الطابع الزمني.
ابحث عن رسالة قاعدة البيانات الأساسية، أو اسم قاعدة البيانات أو مجموعة صناديق البريد، أو الطوابع الزمنية المتكررة، أو حالات فشل بدء التشغيل، أو خطأ مطابق في نظام التشغيل. تعامل مع هذه العبارات كدلائل، وليس كحلول تلقائية.
دليل السجل
ما قد يشير إليه
الإجراء الآمن التالي
Too many connectionsأو خطأ MySQL رقم 1040
لقد استُنفدت سعة الاتصال؛ وهذا ليس دليلاً على وجود فساد.
تحقق من الحمل المتزامن وإعدادات الاتصال الخاصة بإصدار Zimbra قبل تغيير الحدود. تشير ملاحظة الخطأ 1040 في Zimbra إلى أن هذه حالة منفصلة.
Access deniedالمقبس غير متاح، أو لا يمكن الاتصال
قد تكون بيانات الاعتماد أو حالة الخدمة أو مسار المقبس أو التكوين خاطئة.
تحقق من خدمة قاعدة البيانات وتكوينها باستخدام الأدوات المدعومة لهذا الإصدار؛ لا تقم بإعادة تعيين كلمات المرور عن طريق تحرير الملفات من دليل إصدار غير ذي صلة.
No space leftنظام ملفات للقراءة فقط، أو أخطاء في الإدخال/الإخراج
قد تمنع مشاكل التخزين أو نظام الملفات عمليات الكتابة في قاعدة البيانات وبدء التشغيل.
تحقق من المساحة الحرة، وعدد العقد، وحالة التثبيت، وسجلات النظام قبل أي إعادة تشغيل أو إصلاح.
أخطاء متكررة في تأكيد InnoDB أو الصفحة أو مساحة الجدول أو المجموع الاختباري
احتمال وجود تلف في قاعدة البيانات الأساسية أو تلف في وحدة التخزين.
احتفظ بالبيانات الحالية وحالة النسخ الاحتياطي، ثم استخدم خطة استعادة مدعومة أو خطة استرداد بمساعدة البائع.
جدول مفقود أو عدم تطابق في المخطط/الإصدار
قد يكون السبب فشل عملية الترقية، أو وجود قاعدة بيانات مستهدفة خاطئة، أو مشكلة في المخطط.
قارن سجل إصدار الخادم وترقيته؛ لا تقم بإنشاء الجداول أو حذفها أو إعادة تسميتها يدويًا.
3. تحقق من سعة القرص وأخطاء نظام التشغيل
قد تبدو وحدات تخزين البيانات أو السجلات الممتلئة، أو استنفاد عدد العقد، أو تعطل وحدة التخزين، وكأنها عطل في قاعدة البيانات. قم بإجراء فحوصات غير تدميرية على مضيف التخزين.
يعرض الطرفية dfعمليات التحقق من مساحة نظام الملفات المتاحة وعدد العقد على مسار Zimbra؛ ولا يتم عرض أي نتائج تتعلق بالسعة.
df -h /opt/zimbra
df -i /opt/zimbra
تحقق من سجل نظام التشغيل أو سجل النظام بحثًا عن أخطاء إدخال/إخراج القرص، أو نظام الملفات، أو نفاد الذاكرة خلال نفس الفترة الزمنية. إذا كانت وحدة التخزين ممتلئة، فقم بتحرير مساحة أو إضافة مساحة باستخدام إجراءات التخزين المعتادة. لا تحذف ملفات قاعدة البيانات، أو سجلات InnoDB، أو سجلات Zimbra النشطة لتوفير مساحة؛ فقد يُصعّب ذلك عملية الاستعادة أو يُفقد الأدلة.
4. قم بإجراء فحص سلامة البيانات فقط بعد مراجعة تأثيرها
إذا كانت خدمة قاعدة بيانات Zimbra قابلة للوصول ولم تُظهر السجلات بالفعل مشكلة واضحة في الاتصال أو التخزين، فيمكن للمسؤول النظر في تقرير السلامة القياسي خلال فترة صيانة ذات حركة مرور منخفضة:
يعرض الجهاز الطرفي أمر تقرير السلامة القياسي، بدون خيار الإصلاح التلقائي؛ ولا يعرض نتيجة التقرير.
su - zimbra
/opt/zimbra/libexec/zmdbintegrityreport
يصف مرجع تقرير سلامة البيانات في Zimbra هذا الإجراء بأنه فحص لقاعدة البيانات، ويحذر من أنه قد يزيد من عمليات الإدخال/الإخراج ويؤدي إلى زيادة زمن استجابة صندوق البريد. كما يوثق خيارًا -rلمحاولة إصلاح الجدول تلقائيًا. لا تُضف هذا الإجراء -rكخطوة تالية روتينية: فالصفحة قيد التطوير، والإجراء الصحيح يعتمد على محرك قاعدة البيانات ونوع الجدول وإصدار المنتج وحالة النسخ الاحتياطي. يجب تفسير أي تقرير يذكر رسالة قفل جدول سجلات معروفة وغير ضارة وفقًا للملاحظة الواردة في تلك الصفحة؛ لا تتعامل مع جميع عناوين "تم العثور على أخطاء في قاعدة البيانات" على أنها متساوية.
أي حل يتوافق مع الأدلة؟
توقفت خدمة قاعدة البيانات، ولكن لم تظهر أي علامات تلف: عالج أولاً الخطأ المحدد في بدء التشغيل أو التكوين أو بيانات الاعتماد أو الموارد. بمجرد تصحيحه، استخدم إجراء استعادة الخدمة الخاص بإصدارك وبنية النشر لديك. تجنب إعادة التشغيل العشوائية المتكررة.
كثرة الاتصالات: تحقق من الحمل، والعملاء المتوقفين، وسعة الخدمة. لا تُعزِ ذلك إلى تلف قاعدة البيانات، ولا تنسخ توصية قديمة لرفع الحدود دون التحقق من إرشادات تحديد الحجم والإصدار الحالية.
مشكلة في القرص أو نظام الملفات: ثبّت التخزين وتأكد من سلامة نظام الملفات. إذا سجلت قاعدة البيانات عمليات كتابة فاشلة أو أخطاء في InnoDB، فتعامل مع هذا على أنه خلل محتمل في سلامة البيانات حتى بعد استعادة المساحة.
يُشير تقرير سلامة البيانات إلى الجداول: احفظ المخرجات كاملةً، بما في ذلك أسماء الجداول/قواعد البيانات، والطوابع الزمنية، والسجلات ذات الصلة. قم بعمل نسخة احتياطية أو لقطة لوحدة تخزين قاعدة البيانات باستخدام طريقة معتمدة قبل أي عملية كتابة. اطلب من المسؤول اتباع إجراءات الإصلاح أو الاستعادة المعتمدة من قِبل المورّد لإصدار Zimbra المُثبّت.
يبقى حساب واحد متأثرًا حتى مع سلامة محرك قاعدة البيانات: تحقق من بيانات تعريف صندوق البريد، أو مخزن الرسائل، أو الفهرس بشكل منفصل. تجنب تعديل صفوف SQL يدويًا أو حذف الملفات لإعادة بناء الحساب.
في حالة الاشتباه بتلف قاعدة بيانات InnoDB، فإنّ أفضل طريقة للإصلاح عادةً هي استعادة البيانات من نسخة احتياطية مُوثّقة، أو الاستعادة بمساعدة فريق الدعم، وليس REPAIR TABLEإعادة تهيئة قاعدة البيانات بشكل عام، أو نسخ تسلسل الأوامر. تتضمن بعض مقالات الاستعادة القديمة في ويكي Zimbra خطوات مُدمّرة، وهي مؤرشفة بشكل صريح؛ لذا لا تُطبّقها على نظامك الحالي دون تأكيد مباشر من دعم Zimbra ونسخة احتياطية مُختبرة.
كيف يمكنك التأكد من حل المشكلة؟
بعد الموافقة على الإجراء التصحيحي، تأكد من استمرار عمل خدمات قاعدة البيانات والبريد الإلكتروني، وأن الإدخالات الجديدة لا تُظهر نفس خطأ قاعدة البيانات الأساسي، وأن الحساب المتأثر قادر على إجراء عمليات البريد الإلكتروني المعتادة. أعد تشغيل تقرير سلامة النظام القياسي فقط إذا كان ذلك مناسبًا لفترة التحميل والإصدار لديك. تأكد من اكتمال عملية النسخ الاحتياطي واحتفظ بسجلات النظام وسجل الإصلاح. في حال عودة المشكلة، أبلغ مسؤول النظام أو فريق دعم Zimbra بالمعلومات التالية: إصدار/بنية Zimbra، تخطيط الخادم (خادم واحد أو عدة خوادم)، نطاق البريد الإلكتروني، وقت أول عطل، مقتطفات من السجلات ذات الصلة، حالة القرص، مخرجات تقرير سلامة النظام، والطابع الزمني للنسخ الاحتياطي.
نقطة أساسية: تشخيص خطأ قاعدة البيانات الكامن وراء استثناء صندوق البريد قبل تغيير البيانات. لا يمكن لرسالة "فشل قاعدة البيانات" وحدها تحديد ما إذا كان الحل هو تصحيح بيانات الاعتماد، أو تغيير السعة، أو إصلاح التخزين، أو استعادة قاعدة البيانات.