Englishworlber.sa
علم المملكة العربية السعوديةشركة سعودية · الرياض

دليل تقني

PostgreSQL 19 Beta 3: تغييرات SQL والاستعداد للترحيل

مراجعة تغييرات PostgreSQL 19 Beta 3 بما في ذلك property graphs وREPACK وانكسارات التوافق الحرجة. دليل عملي للمطورين ومديري قواعد البيانات.

١٧ سبتمبر ٢٠٢٦ · 3 دقيقة قراءة

تحليل ملاحظات الإصدار الخاصة بـ PostgreSQL 19 Beta 3 لميزات SQL الجديدة مثل property graphs وREPACK، بالإضافة إلى انكسارات التوافق الحرجة للمطورين.

قدرات SQL الجديدة في Beta 3

يضيف PostgreSQL 19 Beta 3 دعمًا لاستعلامات property graphs (SQL/PGQ)، مما يتيح للمطورين نمذجة واستعلام هياكل البيانات الشبيهة بالرسوم البيانية مباشرة داخل محرك العلاقات. وهذا ذو صلة للتطبيقات في منطقة دول مجلس التعاون الخليجي التي تتجه نحو نماذج البيانات الهجينة دون اعتماد قاعدة بيانات رسوم بيانية منفصلة.

أمر REPACK الجديد يستعيد مساحة القرص ويعيد تنظيم محتويات الجداول، مما يجمع بين وظائف VACUUM FULL وCLUSTER. يتيح خيار CONCURRENTLY إعادة التعبئة دون حجب عمليات القراءة والكتابة، مما يقلل من متطلبات نوافذ الصيانة للجداول الكبيرة. يدعم أمر WAIT FOR الجديد أنماط 'read-your-writes' على خوادم النسخ الاحتياطي (standbys) من خلال الانتظار حتى يعيد خادم النسخ الاحتياطي تشغيل التغييرات حتى نقطة محددة.

  • يتم الآن دعم استعلامات property graphs (SQL/PGQ) لنمذجة بيانات الرسوم البيانية.

  • أمر REPACK يستعيد المساحة ويعيد تنظيم الجداول، مع خيار CONCURRENTLY للعمليات غير الحادة.

  • أمر WAIT FOR يتيح اتساق read-your-writes على خوادم النسخ الاحتياطي.

انكسارات التوافق الحرجة

يجب على المطورين معالجة عدة تغييرات كاسرة قبل الترحيل إلى PostgreSQL 19. التغيير الأكثر تأثيرًا هو تفعيل standard_conforming_strings إجباريًا. لن يتم تحميل النسخ الاحتياطية (Dumps) المُنشأة بإصدارات pg_dump أو pg_dumpall السابقة عن 19 باستخدام standard_conforming_strings = off بشكل صحيح في PostgreSQL 19. يجب على الفرق إعادة توليد النسخ الاحتياطية باستخدام أدوات PostgreSQL 19 أو التأكد من تفعيل الإعداد أثناء عملية النسخ الاحتياطي.

تغيرت فئات المؤشرات الافتراضية (opclasses) لأنواع البيانات inet وcidr من btree_gist إلى GiST. كانت فئات btree_gist لهذه الأنواع معطلة وقد تستبعد صفوفًا صالحة. سيمنع pg_upgrade ترحيل العناقيد التي تستخدم فهارس btree_gist inet/cidr. يجب على المطورين حذف هذه الفهارس وإعادة إنشائها باستخدام فئات GiST الجديدة قبل الترحيل.

  • يتم إجبار standard_conforming_strings على التفعيل؛ النسخ الاحتياطية القديمة مع تعطيله ستفشل في التحميل.

  • تغيرت فئات المؤشرات الافتراضية لـ inet/cidr إلى GiST؛ يجب إعادة إنشاء فهارس btree_gist.

  • يُمنع استخدام عائدات السطر (Carriage returns) ورموز تبديل السطر (line feeds) في أسماء قواعد البيانات والأدوار ومساحات الأقراص.

تغييرات السلوك في المعاملات والقفل

تغير سلوك المعاملات (Transactions) لجلسات postgres_fdw. يتم الآن تمرير حالة READ ONLY وDEFERRABLE إلى جلسات postgres_fdw، مما يعني أن معاملات READ ONLY لم تعد قادرة على تعديل الصفوف التي يعالجها postgres_fdw. قد يكسر هذا التطبيقات التي اعتمدت على السلوك المتسامح السابق.

زاد الافتراضي لـ max_locks_per_transaction من 64 إلى 128. ومع ذلك، تغيّر تخصيص حجم القفل، لذا يجب مضاعفة الإعدادات لمطابقة سعة الإصدارات السابقة. بالإضافة إلى ذلك، تم تعطيل JIT (Just-in-Time Compilation) افتراضيًا. يجب على المواقع التي تنفذ العديد من الاستعلامات التحليلية الكبيرة تمكين JIT يدويًا، حيث اعتُبر التكلفة التلقائية السابقة غير موثوقة.

  • لا يمكن لمعاملات READ ONLY تعديل الصفوف عبر postgres_fdw.

  • زاد الافتراضي لـ max_locks_per_transaction إلى 128؛ اضبط الإعدادات للحفاظ على السعة السابقة.

  • تم تعطيل JIT افتراضيًا؛ فعّله يدويًا لأحمال العمل التحليلية.

قائمة التحقق من الترحيل والاختبار

قبل الترحيل إلى PostgreSQL 19، يجب على الفرق تنفيذ مرحلة اختبار منظمة. أولاً، تدقيق جميع عمليات النسخ الاحتياطي والاستعادة للتأكد من استخدامها لأدوات PostgreSQL 19 أو تفعيل standard_conforming_strings. ثانيًا، تحديد فهارس btree_gist على أعمدة inet أو cidr وإعادة إنشائها. ثالثًا، مراجعة كود التطبيق للاعتماد على معاملات READ ONLY التي تعدل البيانات عبر postgres_fdw.

اختبر أمر REPACK الجديد في بيئة تجريبية (staging) للتحقق من مكاسب الأداء والتأكد من أن خيار CONCURRENTLY يلبي متطلبات التوفر. أخيرًا، تحقق من ترحيل أي تطبيقات تستخدم ترميز MULE_INTERNAL، حيث تم إزالة هذا الترميز. يجب أخذ نسخة احتياطية من قواعد البيانات التي تستخدمه واستعادتها بترميز مختلف.

  • أعد توليد النسخ الاحتياطية باستخدام أدوات PostgreSQL 19 أو تأكد من standard_conforming_strings = on.

  • أعد إنشاء فهارس btree_gist inet/cidr باستخدام فئات GiST.

  • اختبر REPACK CONCURRENTLY في بيئة تجريبية للتحقق من السلوك غير الحاد.

  • أرحِل أي قواعد بيانات تستخدم ترميز MULE_INTERNAL المُزال.

تحدث مع Worlber

تخطط لترحيل PostgreSQL، أو نشر PGEE، أو منصة قواعد بيانات إنتاجية؟ تحدث مع خدمات قواعد بيانات Worlber.

اتصل بـ +966 59 925 2224

أرسل بريدًا إلى contactus@worlber.com

استخدم نموذج التواصل الخاص بـ Worlber

المصادر

PostgreSQL: ملاحظات الإصدار

PostgreSQL: أرشيف الأخبار - الأمان

أخبار PostgreSQL

توثيق PostgreSQL الحالي

معلومات أمان PostgreSQL

الخطوة التالية

تحدث مع مهندسي Worlber

أرسل لنا بيئتك وهدفك. سنوضح لك ما يصلح، وما لا يصلح، والخطوة الآمنة التالية.

contactus@worlber.com

PostgreSQL 19 Beta 3: تغييرات SQL والاستعداد للترحيل | Worlber Insights