محتويات الدورة

PostgreSQL / المتقدم: الأدلة والتشغيل الموثوق / الدرس 18

التشغيل والترحيل والموثوقية

اربط صحة الاستعلام بتغيير الخدمة المنضبط، وراجع التوافق واستثناءات DDL وميزانية الاتصالات ودليل التحويل القابل للرجوع.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تخطيط الترقية وتطور المخطط للإصدارات الدقيقة.
  • استخدام الدليل لتقييد مخاطر الأقفال والاتصالات والتعافي.

اقرأ إصدارك الفعلي

روجع المقرر بدليل 18 في 2026-10-25 وتعرف الصفحات الرسمية 18 حالياً و19 تطويرياً أو تمهيدياً. ليست ميزة دليل التطوير متاحة تلقائياً بالإنتاج. تحتاج الترقية الكبرى تفريغاً وإعادة تحميل أو pg_upgrade مدعومة مع مراجعة الإضافات والترتيب. للصغرى إجراء آخر وقد تلزم خطوات بالنشرة. لا تنسخ دليل البيانات بين الإصدارات الكبرى لأن البروتوكول مألوف.

افحص الإعداد الفعلي قبل التغيير

تقرأ SHOW الإعدادات المرئية. تتفاعل الحدود والمهل والمسارات مع مجمع التطبيق والترحيل فسجل القيم الفعلية لا ملف مثال. قد تتجاوز إعدادات الدور والقاعدة العامة. لا يثبت الفحص حجم مجمع مناسباً أو مهلة شاملة. تحتاج التغييرات مراجعة وتصنيف إعادة التشغيل أو التحميل، ولا يغير المقرر الخادم.

sql SQL توضيحي؛ النتائج المتوقعة مستنتجة وليست قياسات.
SHOW server_version;
SHOW max_connections;
SHOW statement_timeout;
SHOW lock_timeout;
SHOW search_path;

تعتمد القيم على الخادم والجلسة ولا تعني أرقام ضبط عامة موصى بها.

وسع وتحقق ثم قلص على مراحل

أضف تمثيلاً متوافقاً للحقل وانشر قبول الاثنين واملأ بدفعات ثم تحقق قبل تحويل القراءة. احذف القديم بعد استعداد المستدعين والرجوع. تدعم PostgreSQL DDL عادية معاملاتية، وتستثني CREATE INDEX CONCURRENTLY وأوامر أخرى الكتل. قد يترك فشل الإنشاء المتزامن فهرساً غير صالح، فافحص الاكتمال ولا تعد البدء نجاحاً.

افحص اتفاق الترحيل مع NULL

افترض اتفاق مقارنة old_label وnew_label. تكشف IS DISTINCT FROM الاختلاف ومنها NULL من طرف واحد. الصفر شرط لازم ولا يثبت تطابق البايتات إذا ساوت السياسة نصين مختلفين. صمم مقارنة أقوى للأثر عند اللزوم. يوضح الاستعلام القبول دون ملء أو حذف عمود.

sql SQL توضيحي؛ النتائج المتوقعة مستنتجة وليست قياسات.
SELECT COUNT(*) AS mismatches FROM quay_lab.customers
WHERE old_label IS DISTINCT FROM new_label;
SELECT customer_id, old_label, new_label FROM quay_lab.customers
WHERE old_label IS DISTINCT FROM new_label
ORDER BY customer_id LIMIT 20;

بعد ملء تدريبي صحيح: صفر اختلاف ولا صفوف وفق سياسة المساواة المذكورة.

حدد آخر نقطة رجوع آمنة

يقيد المجمع العمل وينظف الفشل ويحترم المهل. قد يضخم رفع max_connections الذاكرة والتنافس لا الإنتاجية. اختبر الاستعادة والاستعلام والمنح والإضافات والتوجيه قبل التحويل. بعد كتابات خاصة بالوجهة قد يفقد الرجوع دون مصالحة تاريخاً. امنع الكتابة وحدد الملكية واحفظ النسخ. تبنى الموثوقية بمعايير وتدريب لا أداة أو فحص أخضر يثبت كل ثابت.

الأخطاء الشائعة وإصلاحها

يوجد الفهرس المتزامن لكنه غير صالح

لماذا يحدث؟
فشل البناء قبل اكتمال مراحله.
كيف تصلحه؟
افحص الصلاحية واتبع التعافي أو الإعادة الموثقة.
كيف تتجنب تكراره؟
تحقق من الصلاحية بعد النشر لا الوجود فقط.

تجرب ترقية كبرى باستبدال البرامج فقط

لماذا يحدث؟
طُبقت افتراضات الصغرى على تخزين رئيسي غير متوافق.
كيف تصلحه؟
استخدم مساراً مدعوماً متدرباً عليه مع الإضافات والنسخ.
كيف تتجنب تكراره؟
سجل الإصدارين واقرأ نشرات الإصدارات الوسيطة.

يفقد الرجوع كتابات خاصة بالوجهة

لماذا يحدث؟
غيرت الخطة الوجهة دون مصالحة التاريخ.
كيف تصلحه؟
امنع الكتابة وصالح بمسار تعافٍ أو نقل عكسي مختبر.
كيف تتجنب تكراره؟
حدد أهلية الرجوع قبل أول كتابة في الوجهة.

اختبر فهمك

1. لماذا لا يبرر DDL المعاملاتي وضع CREATE INDEX CONCURRENTLY داخل BEGIN؟

اعرض الحل المشروح

الدعم خاص بالأمر. للبناء المتزامن تنفيذ متعدد المعاملات ولا يعمل في كتلة صريحة عادية. اتبع النشر الموثق وافحص الصلاحية بعد النجاح أو الفشل. لا تعمم من CREATE TABLE لكل إدارة لأنها تغير البنية.

2. يريد الفريق الرجوع للوجهة القديمة بعد يوم من الكتابات الجديدة. ماذا تتطلب المراجعة؟

اعرض الحل المشروح

احصر كل معاملة خاصة بالوجهة وأثبت حفظها أو مصالحتها دون كاتبين. حدد سلطة واحدة وحد رجوع وطريقة مختبرة. تغيير العنوان توجيه لا دليل سلامة البيانات. ضمّن توافق التطبيق وملكية التسلسل.

أهم ما تعلمته

  • يحتاج التوافق وقيود المعاملة والتعافي مراجعة صريحة.
  • يشمل التحويل الآمن التاريخ اللاحق لا العناوين فقط.

المراجع الرسمية