دليل تقني
PostgreSQL PITR: التحقق من أرشفة WAL ومسارات الاسترداد
إعداد أرشفة WAL، وإدارة احتفاظ pgBackRest، والتحقق من مسارات الاسترداد في نقطة زمنية محددة لـ PostgreSQL. دليل عملي لمديري قواعد البيانات مبني على الرسمي...

إعداد أرشفة WAL، وإدارة احتفاظ pgBackRest، والتحقق من مسارات الاسترداد في نقطة زمنية محددة لمديري قواعد بيانات PostgreSQL.
متطلبات إعداد أرشفة WAL
يتطلب الاسترداد في نقطة زمنية محددة (PITR) تسلسلاً متصلاً من ملفات سجل الكتابة المسبق (WAL) المؤرشفة. يخزّن PostgreSQL سجل WAL في مجلد الفرعي pg_wal/ ويسجّل كل تغيير في ملفات بيانات قاعدة البيانات. يجب على النظام التقاط كل ملف قسم WAL بمجرد امتلائه وحفظ تلك البيانات قبل إعادة تدوير القسم لإعادة الاستخدام.
اضبط معاملات محددة في postgresql.conf لتفعيل هذا الآلية. يجب أن يكون معامل wal_level بقيمة replica أو أعلى، ويجب أن يكون archive_mode بقيمة on. حدد أمر shell في معامل archive_command أو المكتبة في معامل archive_library. يدعم archive_command وجهات تخزين مرنة، مثل مجلد مُركّب عبر NFS أو محرك شريط. استخدم %p لمسار الملف و %f لاسم الملف.
اضبط wal_level على replica أو أعلى لتفعيل قدرات أرشفة WAL.
اضبط archive_mode على on لتفعيل عملية الأرشفة.
عرّف archive_command باستخدام %p لمسار الملف و %f لاسم الملف.
تأكد من أن وجهة الأرشفة قابلة للوصول ومختلفة عن المجلد الرئيسي للبيانات.
أنواع النسخ الاحتياطي في pgBackRest ومنطق الاحتفاظ
يدير pgBackRest النسخ الاحتياطية لـ PostgreSQL باستخدام الأنواع الكاملة والتفاضلية والتراكمية. ينسخ النسخ الاحتياطي الكامل مجموعة قاعدة البيانات بأكملها وهو النوع الوحيد الذي يستعيد بشكل مستقل. أول نسخة احتياطية لمجموعة في pgBackRest تكون دائماً نسخة احتياطية كاملة.
تنسخ النسخ الاحتياطية التفاضلية فقط الملفات التي تغيّرت منذ آخر نسخة احتياطية كاملة. تستخدم مساحة قرص أقل من النسخ الاحتياطية الكاملة لكنها تتطلب بقاء النسخة الاحتياطية الكاملة المقابلة صالحة للاستعادة. تنسخ النسخ الاحتياطية التراكمية فقط الملفات التي تغيّرت منذ آخر نسخة احتياطية من أي نوع. تكون هذه أصغر بكثير عموماً لكنها تعتمد على سلسلة كاملة من النسخ الاحتياطية السابقة حتى أحدث نسخة احتياطية كاملة. إذا كانت أي نسخة احتياطية في السلسلة غير صالحة، فلا يمكن استعادة النسخة الاحتياطية التراكمية.
النسخ الاحتياطية الكاملة مكتفية ذاتياً ولا تعتمد على ملفات خارجية للسلامة.
النسخ الاحتياطية التفاضلية تعتمد على صلاحية النسخة الاحتياطية الكاملة السابقة.
النسخ الاحتياطية التراكمية تعتمد على جميع النسخ الاحتياطية السابقة حتى آخر نسخة احتياطية كاملة.
يجب أن تراعي سياسات الاحتفاظ هذه الاعتماديات لضمان قابلية الاستعادة.
آليات الاسترداد والانسجام
يتضمن الاسترداد من نسخة احتياطية مؤرشفة بشكل متصل استعادة نسخة نظام الملفات وإعادة تشغيل ملفات WAL المؤرشفة للوصول إلى حالة حالية. لا تتطلب هذه الطريقة نسخة نظام ملفات متسقة تماماً كنقطة انطلاق. تصحح إعادة تشغيل السجل أي عدم اتساق داخلي في النسخة الاحتياطية، بشكل مشابه لاسترداد الأعطال.
تسمح لك هذه الطريقة بإيقاف إعادة تشغيل WAL في أي نقطة زمنية محددة. يمكن لمدير قاعدة البيانات استعادة قاعدة البيانات إلى حالتها في أي وقت منذ النسخة الاحتياطية الأساسية، بشرط توفر أقسام WAL اللازمة. تدعم هذه القدرة الاسترداد الدقيق في نقطة زمنية محددة، وهو أمر حاسم للتخفيف من الأخطاء المنطقية أو تلف البيانات الذي يحدث بعد التزامن.
تصحح إعادة تشغيل السجل عدم الاتساق الداخلي في النسخة الاحتياطية الأساسية.
يمكن إيقاف إعادة التشغيل عند أي طابع زمني محدد لتحقيق لقطة متسقة.
يتطلب PITR تسلسلاً متصلاً من ملفات WAL يمتد حتى وقت بدء النسخة الاحتياطية الأساسية.
توافق الإصدارات وسلامة البروتوكول
توافق الإصدارات بين المكونات المحلية والبعيدة أمر حاسم لاستقرار التشغيل عند استخدام pgBackRest. يجب أن تتطابق إصدارات pgBackRest المحلية والبعيدة تماماً. لن تعمل أرشفة WAL والنسخ الاحتياطية حتى يتم مواءمة الإصدارات في حال وجود عدم تطابق.
تبلغ رسالة خطأ بروتوكول محددة عن عدم التطابق، مما يشير إلى أن قيمة الإصدار المتوقعة لا تتطابق مع القيمة المستلمة. تمنع هذه الخطأ النظام من المتابعة في عمليات الأرشفة أو النسخ الاحتياطي، مما يضمن عدم تعرض سلامة البيانات للخطر بسبب إصدارات بروتوكول غير متوافقة. قم بترقية الثنائيات المحلية والبعيدة معاً للحفاظ على هذه السلامة.
يجب أن تتطابق إصدارات pgBackRest المحلية والبعيدة تماماً.
تؤدي عدم تطابق الإصدارات إلى حدوث ProtocolError وتوقف عمليات الأرشفة.
قم بترقية الثنائيات المحلية والبعيدة في نفس الوقت لتجنب أخطاء البروتوكول.
ملاحظات تشغيلية واعتبارات التخزين
تتطلب الأرشفة المستمرة تخزيناً أرشيفياً كبيراً. قد تكون النسخة الاحتياطية الأساسية ضخمة، وستنتج الأنظمة النشطة ميغابايتات كثيرة من حركة WAL التي يجب أرشفتها. تُفضل هذه الطريقة في المواقف التي تكون فيها الموثوقية العالية مطلوبة، لكنها تتطلب تخطيطاً دقيقاً للسعة.
لا تنتج pg_dump و pg_dumpall نسخاً احتياطية على مستوى نظام الملفات ولا يمكن استخدامها كجزء من حل الأرشفة المستمرة. تنشئ هذه الأدوات إطلاقات منطقية لا تحتوي على معلومات كافية لاستخدامها في إعادة تشغيل WAL. تدعم الأرشفة المستمرة استعادة مجموعة قاعدة البيانات بأكملها، وليس مجموعة فرعية من قواعد البيانات. خطط للتكلفة التخزينية المرتبطة بصيانة تسلسل متصل من أقسام WAL.
تتطلب الأرشفة المستمرة تخزيناً كبيراً للنسخ الاحتياطية الأساسية وأقسام WAL.
لا يمكن استخدام الإطلاقات المنطقية من pg_dump في إعادة تشغيل WAL في PITR.
يستعيد PITR مجموعة قاعدة البيانات بأكملها، وليس قواعد البيانات الفردية.
تحدث مع Worlber
تخطط لهجرة PostgreSQL، أو نشر PGEE، أو منصة قاعدة بيانات إنتاجية؟ تحدث مع خدمات قواعد بيانات Worlber.
أرسل بريدًا إلى contactus@worlber.com
استخدم نموذج التواصل الخاص بـ Worlber
المصادر
PostgreSQL: Documentation: 18: Chapter 25. Backup and Restore
الخطوة التالية
تحدث مع مهندسي Worlber
أرسل لنا بيئتك وهدفك. سنوضح لك ما يصلح، وما لا يصلح، والخطوة الآمنة التالية.