بالأمس فقط ، اشتكى أحد عملائنا من أنه كان يقوم بعمل نسخ احتياطية في قاعدة بيانات 1C على أساس PostgreSQL. نظرًا لحقيقة أننا نوفر لهم VPS فقط وليس أكثر ، لم نكن نعرف ما يجري بداخلهم. وكما اتضح ، لم تتم كتابة النسخ الاحتياطية منذ فترة طويلة ، لأنه ليس لديهم أيضًا مشرف خاص بهم ولا أحد يشاهد هذا.
أرسلوا إلينا استئنافًا ، ونظروا في ما كان يحدث هناك وراجعوا ما يلي عند محاولة عمل نسخة احتياطية:
خطأ: صفحة غير صالحة في الكتلة 2196 من قاعدة العلاقة / 349583/364737
بعد قضاء ما يصل إلى 15 دقيقة ، اتضح أنه ليس من السهل أخذ الزر "جيد" والضغط عليه ، ولا يوجد حل منتظم من كلمة "على الإطلاق". لا توجد نصوص جاهزة أيضًا. نتيجة لذلك ، بعد أن قررت أنه سيكون من الضروري نشر الحل الذي تم العثور عليه لأولئك الذين يستخدمون PostgreSQL على Windows.
- نبدأ pgAdmin.
- قم بتشغيل أداة الاستعلام و:
- المسار إلى قاعدة البيانات ، أعتقد أنه لن يشك أحد في قاعدة البيانات التي نشأت بها المشكلة ، لذلك سنحذف طريقة العثور على اسم قاعدة البيانات بمعرفة فقط القاعدة / 349583
- بعد ذلك ، لإدراج نص:
حدد pg_filenode_relation (0 ، 364737) ؛ - نتيجة لذلك حصلنا على اسم الجدول. كان لدينا جدول "_document143_vt2652" - الآن نحن بحاجة إلى بدء التعافي:
تعيين zero_damaged_pages = تشغيل ؛
VACUUM FULL _document144 ؛
- في نهاية التنفيذ ، تحتاج إلى إعادة فهرسة قاعدة البيانات بأكملها!
وتجدر الإشارة إلى أن بعض البيانات قد تفقد من الجدول!