مشكلة في الترقية إلى أحدث إصدار

مرحباً، أحاول تحديث Discourse إلى أحدث إصدار.

FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres فشل مع إرجاع #<Process::Status: pid 45 exit 1>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات "/root/upgrade_postgres"
1cafe54cd6661316d8e9e393c54f73ab89bc3f5e70e104f6c5e4f8794053c09c
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.

أيضاً

 نجاح. يمكنك الآن بدء خادم قاعدة البيانات باستخدام:

    pg_ctlcluster 10 main start

تحذير: مجلد stats_temp_directory المحدد /var/run/postgresql/10-main.pg_stat_tmp
غير قابل للكتابة لمالك المجموعة. لن تتم إضافة هذا الإعداد في
postgresql.conf.
Ver Cluster Port Status Owner    Data directory              Log file
10  main    5433 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives: تحذير: فرض إعادة تثبيت البديل /usr/share/postgresql/12/man/man1/postmaster.1.gz لأن مجموعة الروابط postmaster.1.gz تالفة
invoke-rc.d: تعذر تحديد مستوى التشغيل الحالي
invoke-rc.d: رفضت سياسة policy-rc.d تنفيذ الأمر start.
معالجة المحفزات لـ postgresql-common (213.pgdg100+1) ...
بناء قواميس PostgreSQL من حزم myspell/hunspell المثبتة...
إزالة ملفات القواميس القديمة:
إيقاف خادم قاعدة بيانات PostgreSQL 10: main.
إيقاف خادم قاعدة بيانات PostgreSQL 12: main.
إجراء فحوصات الاتساق
-----------------------------
فحص إصدارات المجموعات                                   تم بنجاح

لم يتم إيقاف المجموعة المصدر بشكل نظيف.
فشل، الخروج

مخرجات أمر tail -f shared/standalone/log/var-log/postgres/current:

2020-06-14 01:37:02.155 UTC [3508] FATAL:  مجلد البيانات "/shared/postgres_data" يملك ملكية خاطئة
2020-06-14 01:37:02.155 UTC [3508] HINT:  يجب بدء الخادم بواسطة المستخدم الذي يملك مجلد البيانات.

تأجيل التحديث

إذا كنت بحاجة إلى تأجيل التحديث أثناء إعادة البناء التالية، يمكنك استبدال قالب PostgreSQL في ملف app.yml الخاص بك بتغيير "templates/postgres.template.yml" إلى "templates/postgres.10.template.yml" .

هذا غير موصى به، حيث قد ينسى بعض مسؤولي المواقع عكس التغيير لاحقاً.

تم تطبيق هذا وأصبح منتدى Discourse الآن متصلاً بالإنترنت. ما الذي يمكننا فعله بعد ذلك؟ حالياً، أنا أستخدم “templates/postgres.10.template.yml”

أي أفكار؟ لا أزال أستخدم “templates/postgres.10.template.yml”.

جرب ما يلي:

  1. عدّل ملف app.yml وغير "templates/postgres.10.template.yml" إلى "templates/postgres.template.yml".

  2. قم بإيقاف التطبيق: ./launcher stop app

  3. حاول إعادة البناء: ./launcher rebuild app

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

لا يتم نقل إحصائيات المحسن بواسطة pg_upgrade، لذا،
بمجرد بدء تشغيل الخادم الجديد، يُنصح بتشغيل:
./analyze_new_cluster.sh

سيؤدي تشغيل هذا السكربت إلى حذف ملفات بيانات المجموعة القديمة:
./delete_old_cluster.sh

اكتملت ترقية PostgreSQL

يتم تخزين قاعدة البيانات القديمة رقم 10 في /shared/postgres_data_old

لإكمال الترقية، أعد البناء مرة أخرى باستخدام:

./launcher rebuild app

ويكون منتدى Discourse غير متاح في الوقت الحالي.

أحاول تشغيل ./launcher rebuild app مرة أخرى كما هو موضح أعلاه.

نعم، هذا متوقع.

نعم، اتبع التعليمات وسيتم استعادته قريبًا.

مثير ومذهل، اكتمل التحديث بنجاح الآن. لقد جربت الطريقة نفسها مرات عديدة من قبل، لكن لم يحدث ذلك من قبل.

هل أحتاج إلى استخدام الأوامر التالية لمسح المساحة؟

إحصائيات المحسن لا يتم نقلها بواسطة pg_upgrade، لذا،
بمجرد بدء تشغيل الخادم الجديد، يُنصح بتشغيل:
    ./analyze_new_cluster.sh

سيؤدي تشغيل هذا السكربت إلى حذف ملفات بيانات المجموعة القديمة:
    ./delete_old_cluster.sh

شكرًا لك!

يمكنك تشغيل مهام التحديث الاختيارية للمنشور المذكورة في الأسئلة الشائعة لدينا.

رائع. شكراً مرة أخرى!