مشاركة عبر


ترقيات الإصدار الرئيسي في قاعدة بيانات Azure ل PostgreSQL

قاعدة بيانات Azure الخاصة بك لخادم PostgreSQL المرن تدعم إصدارات PostgreSQL 18، 17، 16، 15، 14، 13، 12، 11. يصدر مجتمع Postgres إصدارا رئيسيا جديدا يحتوي على ميزات جديدة مرة واحدة في السنة تقريبا. بالإضافة إلى ذلك، يتلقى كل إصدار رئيسي إصلاحات دورية للأخطاء في شكل إصدارات ثانوية. تتضمن ترقيات الإصدار الثانوي تغييرات متوافقة مع الإصدارات السابقة مع التطبيقات الموجودة. يقوم مثيل الخادم المرن Azure Database for PostgreSQL بتحديث الإصدارات الثانوية بشكل دوري أثناء نافذة صيانة العميل.

ترقيات الإصدار الرئيسي أكثر تعقيدا من ترقيات الإصدار الثانوي. يمكن أن تتضمن تغييرات داخلية وميزات جديدة قد لا تكون متوافقة مع الإصدارات السابقة مع التطبيقات الموجودة.

يحتوي مثيل الخادم المرن Azure Database for PostgreSQL على ميزة تقوم بترقية الإصدار الرئيسي الموضعي للخادم بنقرة واحدة فقط. تعمل هذه الميزة على تبسيط عملية الترقية عن طريق تقليل التعطيل للمستخدمين والتطبيقات التي تصل إلى الخادم.

تحتفظ الترقيات الموضعية باسم الخادم والإعدادات الأخرى للخادم الحالي بعد ترقية إصدار رئيسي. لا تتطلب ترحيل البيانات أو تغييرات على سلسلة الاتصال التطبيق. الترقيات الموضعية أسرع وتتضمن وقت تعطل أقصر من ترحيل البيانات.

Note

تدعم قاعدة بيانات Azure ل PostgreSQL ترقيات الإصدار الرئيسي الموضعي فقط لإصدارات PostgreSQL المدعومة حاليا. على سبيل المثال، يمكنك ترقية الإصدار الحالي نظرا لأن الإصدار الهدف مدعوم رسميا من قبل Azure في وقت الترقية. لا يمكن تحديد الإصدارات غير المدعومة كأهداف ترقية، وقد تؤدي محاولة الترقية إلى إصدار مهمل إلى فشل أو انقطاع الخدمة. راجع دائما نهج تعيين إصدار Azure PostgreSQLووثائق الترقية قبل بدء ترقية الإصدار الرئيسي.

Note

يتم تفعيل ترقيات الإصدارات الرئيسية ل PostgreSQL 18 على مراحل. في الوقت الحالي، يتوفر MVU إلى PostgreSQL 18 في مناطق أستراليا الجنوبية الشرقية، كندا الوسطى، وسط الهند، وسط الولايات المتحدة، شرق آسيا، شرق الولايات المتحدة، شرق الولايات المتحدة، شرق الولايات المتحدة 2، شمال وسط الولايات المتحدة، جنوب أفريقيا الشمالية، جنوب وسط الولايات المتحدة، السويد الوسطى، غرب وسط الولايات المتحدة، غرب الولايات المتحدة 2، وغرب الولايات المتحدة 3.

عملية الترقية

فيما يلي بعض الاعتبارات المهمة مع ترقيات الإصدار الرئيسي الموضعي:

  • قبل بدء الترقية، تأكد من أن الخادم الخاص بك يحتوي على ما لا يقل عن 10-20% مساحة تخزين مجانية متوفرة. أثناء عملية الترقية، قد تزيد ملفات السجل المؤقتة وعمليات بيانات التعريف من استخدام القرص. قد تؤدي المساحة الفارغة غير الكافية إلى فشل الترقية أو حدوث مشكلات في العودة إلى الحالة السابقة.
  • أثناء عملية ترقية الإصدار الرئيسي الموضعي، يقوم مثيل الخادم المرن Azure Database for PostgreSQL بتشغيل إجراء فحص مسبق لتحديد أي مشكلات محتملة قد تتسبب في فشل الترقية.
    • إذا عثر الفحص المسبق على أي حالات عدم توافق، فإنه ينشئ حدث سجل يظهر فشل التحقق المسبق للترقية، إلى جانب رسالة خطأ.
    • إذا نجح الفحص المسبق، يوقف مثيل الخادم المرن Azure Database for PostgreSQL الخدمة ويأخذ نسخة احتياطية ضمنية قبل بدء الترقية مباشرة. يمكن للخدمة استخدام هذه النسخة الاحتياطية لاستعادة مثيل قاعدة البيانات إلى إصدارها السابق إذا كان هناك خطأ في الترقية.
  • يستخدم مثيل الخادم المرن Azure Database for PostgreSQL أداة pg_upgrade لإجراء ترقيات الإصدار الرئيسي في المكان. توفر الخدمة المرونة لتخطي الإصدارات والترقية مباشرة إلى الإصدارات الأحدث.
  • أثناء ترقية الإصدار الرئيسي الموضعي للخادم الذي تم تمكينه للحصول على قابلية وصول عالية (HA)، تقوم الخدمة بتعطيل قابلية الوصول العالية، وإجراء الترقية على الخادم الأساسي، ثم إعادة تمكين قابلية الوصول العالية بعد اكتمال الترقية.
  • تتم ترقية معظم الملحقات تلقائيا إلى إصدارات أحدث أثناء ترقية الإصدار الرئيسي الموضعي، مع بعض الاستثناءات.
  • تقوم عملية ترقية الإصدار الرئيسي الموضعي لمثيل خادم Azure Database for PostgreSQL المرن تلقائيا بنشر أحدث إصدار ثانوي مدعوم.
  • ترقية الإصدار الرئيسي الموضعي هي عملية غير متصلة بالإنترنت، ما يعني أن الخادم لن يكون متوفرا أثناء العملية. بينما تكتمل معظم الترقيات في أقل من 15 دقيقة، تعتمد المدة الفعلية على حجم قاعدة البيانات وتعقيدها. على وجه التحديد، الوقت المطلوب يتناسب مباشرة مع عدد الكائنات (الجداول والفهارس والمخططات) في مثيل PostgreSQL الخاص بك. قد تواجه المخططات الأكبر أو الأكثر تعقيدا أوقات ترقية أطول.
  • قد تزيد المعاملات طويلة الأمد أو حمل العمل العالي قبل الترقية من الوقت المستغرق لإيقاف تشغيل قاعدة البيانات وزيادة وقت الترقية.
  • بعد نجاح ترقية الإصدار الرئيسي الموضعي، لا توجد طرق تلقائية للعودة إلى الإصدار السابق. ومع ذلك، يمكنك إجراء استرداد نقطة زمنية (PITR) إلى وقت قبل الترقية لاستعادة الإصدار السابق من مثيل قاعدة البيانات.
  • يأخذ مثيل الخادم المرن Azure Database for PostgreSQL لقطة من قاعدة البيانات أثناء الترقية. يتم أخذ اللقطة قبل بدء الترقية. إذا فشلت الترقية، يقوم النظام تلقائيا باستعادة قاعدة البيانات الخاصة بك إلى حالتها من اللقطة.
  • يقدم PostgreSQL 16 تدابير أمنية مستندة إلى الأدوار. بعد ترقية إصدار رئيسي على قاعدة بيانات Azure لمثيل خادم مرن PostgreSQL، سيتمتع المستخدم الأول الذي تم إنشاؤه على الخادم - الذي تم منحه خيار المسؤول - الآن بامتيازات إدارية على الأدوار الأخرى لعمليات الصيانة الأساسية.

اعتبارات الترقية وقيودها

إذا فشلت عملية فحص مسبق أثناء ترقية إصدار رئيسي موضعي، يتم حظر الترقية برسالة خطأ مفصلة. فيما يلي القيود المعروفة التي يمكن أن تتسبب في فشل الترقية أو التصرف بشكل غير متوقع:

تكوينات الخادم غير المدعومة

  • النسخ المتماثلة للقراءة غير مدعومة أثناء الترقيات الموضعية. يجب حذف النسخة المتماثلة للقراءة (بما في ذلك أي نسخة متماثلة متتالية للقراءة) قبل ترقية الخادم الأساسي. بعد الترقية، يمكنك إعادة إنشاء النسخة المتماثلة.
  • قد تمنع قواعد حركة مرور الشبكة عمليات الترقية.
    • تأكد من أن مثيل الخادم المرن يمكنه إرسال/استقبال نسبة استخدام الشبكة على المنفذين 5432 و6432 داخل شبكته الظاهرية وإلى Azure Storage (لأرشفة السجل).
    • إذا تقيد مجموعات أمان الشبكة (NSGs) نسبة استخدام الشبكة هذه، فلن تعيد HA تمكينها تلقائيا بعد الترقية. قد تحتاج إلى تحديث قواعد NSG يدويا وإعادة تمكين قابلية الوصول العالية.
  • فتحات النسخ المتماثل المنطقية غير مدعومة أثناء ترقيات الإصدار الرئيسي الموضعي.
  • الخوادم التي تستخدم تخزين SSDv2 غير مؤهلة لترقيات الإصدار الرئيسي.
  • طرق العرض التي تعتمد على pg_stat_activity غير معتمدة أثناء ترقيات الإصدار الرئيسي.
  • إذا كنت تقوم بالترقية من PG11 إلى إصدار أعلى، فيجب عليك أولا تكوين الخادم المرن الخاص بك لاستخدام مصادقة SCRAM عن طريق تمكين SCRAM وإعادة تعيين جميع كلمات مرور دور تسجيل الدخول.

قيود التمديد

لا تدعم ترقيات الإصدار الرئيسي الموضعي جميع ملحقات PostgreSQL. ستفشل الترقية أثناء الفحص المسبق إذا تم العثور على ملحقات غير معتمدة.

  • يتم دعم الملحقات التالية للاستخدام المنتظم، ولكنها ستمنع ترقية الإصدار الرئيسي الموضعي إذا كانت موجودة. قم بإزالتها قبل الترقية وأعد تمكينها بعد ذلك، إذا كانت مدعومة على الإصدار الهدف: timescaledb، dblink، orafce، postgres_fdw.
  • الملحقات التالية هي ملحقات أداة مساعدة غير ثابتة وستحتاج إلى إسقاطها وإعادة إنشائها بعد الترقية حسب التصميم: pg_repack، hypopg.
  • عند الترقية إلى PostgreSQL 17، لا يتم دعم الملحقات التالية ويجب إزالتها قبل الترقية. لا يجوز لك إعادة تمكينها إلا إذا كانت مدعومة في الإصدار الهدف: age، azure_ai، hll، pg_diskann. pgrouting

ملاحظه: إذا ظهرت أي من هذه الملحقات في معلمة الخادم azure.extensions ، حظر الترقية. قم بإزالتها من المعلمة قبل بدء الترقية.

PostGIS-Specific الاعتبارات

إذا كنت تستخدم PostGIS أو أي ملحقات تابعة، يجب تكوين معلمة خادم search_path لتضمين:

  • المخططات المتعلقة ب PostGIS
  • الملحقات التابعة، بما في ذلك: postgis، postgis_raster، postgis_sfcgal، postgis_tiger_geocoder، postgis_topology، address_standardizer، ، ، address_standardizer_data_usfuzzystrmatch
  • يمكن أن يؤدي الفشل في تكوين search_path بشكل صحيح إلى فشل الترقية أو الكائنات المقطوعة بعد الترقية.

اعتبارات الترقية الأخرى

  • مشغلات الأحداث: تمنع الترقية قبل التحقق مشغلات الأحداث لأنها تربط أوامر DDL وقد تشير إلى كتالوجات النظام التي تتغير بين الإصدارات الرئيسية - قم بإفلات كل EVENT TRIGGERs قبل الترقية ثم أعد إنشائها بعد الترقية لضمان ترقية سلسة.
  • الكائنات الكبيرة (LOs): يمكن أن تتسبب قواعد البيانات التي تضم ملايين الكائنات الكبيرة (المخزنة في ) في pg_largeobjectفشل الترقية بسبب استخدام الذاكرة العالي أو حجم السجل. استخدم الأداة المساعدة vacuumlo لتنظيف مواسير الكيانات غير المستخدمة، وفكر في توسيع نطاق الخادم قبل الترقية إذا كانت العديد من مواضع الكيانات لا تزال قيد الاستخدام.

Warning

توخي الحذر مع فراغ. vacuumlo يحدد الكائنات الكبيرة المعزولة استنادا إلى الأعمدة المرجعية التقليدية (oid، lo). إذا كان التطبيق الخاص بك يستخدم أنواع مراجع مخصصة أو غير مباشرة، فقد يتم حذف كائنات كبيرة صالحة عن طريق الخطأ. بالإضافة إلى ذلك، vacuumlo قد تستهلك وحدة المعالجة المركزية والذاكرة وIOS كبيرة، خاصة في قواعد البيانات مع الملايين من الكائنات الكبيرة. قم بتشغيله أثناء نوافذ الصيانة واختبره على غير prod أولا.

ما بعد الترقية

بعد اكتمال ترقية الإصدار الرئيسي، نوصي بتشغيل ANALYZE الأمر في كل قاعدة بيانات لتحديث pg_statistic الجدول. يمكن أن تؤدي الإحصائيات المفقودة أو القديمة إلى خطط استعلام سيئة، مما قد يؤدي بدوره إلى تدهور الأداء وتحمل ذاكرة زائدة.

postgres=> analyze;
ANALYZE

عرض سجلات الترقية

توفر سجلات ترقية الإصدار الرئيسي (PG_Upgrade_Logs) وصولا مباشرا إلى سجلات الخادم التفصيلية. يمكن أن يساعد التكامل PG_Upgrade_Logs في عملية الترقية على ضمان انتقال أكثر سلاسة وشفافية إلى إصدارات PostgreSQL الجديدة.

يمكنك تكوين سجلات ترقية الإصدار الرئيسي بنفس طريقة سجلات الخادم، باستخدام معلمات الخادم التالية:

  • لتشغيل الميزة، قم بتعيين logfiles.download_enable إلى ON.
  • لتعريف الاحتفاظ بملفات السجل بالأيام، استخدم logfiles.retention_days.

إعداد سجلات الترقية

لبدء استخدام PG_Upgrade_Logs، يمكنك تكوين التقاط سجلات خادم PostgreSQL وسجلات ترقية الإصدار الرئيسي.

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

فوائد استخدام سجلات الترقية

  • التشخيصات الثاقبة: PG_Upgrade_Logs يوفر رؤى قيمة حول عملية الترقية. يلتقط معلومات مفصلة حول العمليات التي تم إجراؤها، ويسلط الضوء على أي أخطاء أو تحذيرات تحدث. هذا المستوى من التفاصيل مفيد في تشخيص وحل المشاكل التي قد تنشأ أثناء الترقية، من أجل انتقال أكثر سلاسة.
  • استكشاف الأخطاء وإصلاحها بشكل مبسط: من خلال الوصول المباشر إلى هذه السجلات، يمكنك تحديد عقبات الترقية المحتملة ومعالجتها بسرعة، وتقليل وقت التوقف عن العمل، وتقليل التأثير على عملياتك. تعمل السجلات كأداة هامة لاستكشاف الأخطاء وإصلاحها من خلال تمكين حل المشكلات بشكل أكثر كفاءة وفعالية.

Note

يتم دعم ترقيات الإصدار الرئيسي الموضعية على الخوادم التي تم ترحيلها تلقائيا. بعد نجاح ترقية الإصدار الرئيسي الموضعي على خادم تم ترحيله تلقائيا، لن يكون تنسيق اسم المستخدم username@servername مدعوما بعد ذلك. بدلا من ذلك، يجب عليك استخدام التنسيق القياسي: اسم المستخدم. لتجنب مشكلات المصادقة، راجع جميع سلاسل الاتصال وتحديثها بعناية في التطبيقات والبرامج النصية للتأكد من أنها تستخدم تنسيق اسم المستخدم المحدث بعد الترقية.