فشل التحديث (postgresql)

أحدث تحديث (بما في ذلك PostgreSQL) أدى إلى حدوث خطأ:

root@community:/var/discourse# ./launcher rebuild app

التأكد من أن أداة التشغيل محدثة

جلب الأصل

أداة التشغيل محدثة

إيقاف الحاوية القديمة

+ /usr/bin/docker stop -t 60 app

app

cd /pups && git pull && /pups/bin/pups --stdin

محدث بالفعل.

I, [2020-06-03T15:38:58.391364 #1] INFO -- : تحميل --stdin

I, [2020-06-03T15:38:58.398128 #1] INFO -- : > locale-gen $LANG && update-locale

I, [2020-06-03T15:38:58.731357 #1] INFO -- : توليد اللغات (قد يستغرق هذا بعض الوقت)...

اكتمل التوليد.

I, [2020-06-03T15:38:58.731849 #1] INFO -- : > mkdir -p /shared/postgres_run

I, [2020-06-03T15:38:58.751775 #1] INFO -- : 

I, [2020-06-03T15:38:58.756078 #1] INFO -- : > chown postgres:postgres /shared/postgres_run

I, [2020-06-03T15:38:58.765806 #1] INFO -- : 

I, [2020-06-03T15:38:58.766148 #1] INFO -- : > chmod 775 /shared/postgres_run

I, [2020-06-03T15:38:58.767966 #1] INFO -- : 

I, [2020-06-03T15:38:58.768305 #1] INFO -- : > rm -fr /var/run/postgresql

I, [2020-06-03T15:38:58.770246 #1] INFO -- : 

I, [2020-06-03T15:38:58.770626 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql

I, [2020-06-03T15:38:58.785523 #1] INFO -- : 

I, [2020-06-03T15:38:58.785863 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1

2020/06/03 15:38:58 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): لا يوجد ملف أو دليل

I, [2020-06-03T15:38:58.911895 #1] INFO -- : 

I, [2020-06-03T15:38:58.912203 #1] INFO -- : > rm -fr /shared/postgres_run/.s*

I, [2020-06-03T15:38:58.914376 #1] INFO -- : 

I, [2020-06-03T15:38:58.914625 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid

I, [2020-06-03T15:38:58.916280 #1] INFO -- : 

I, [2020-06-03T15:38:58.916527 #1] INFO -- : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp

I, [2020-06-03T15:38:58.917967 #1] INFO -- : 

I, [2020-06-03T15:38:58.918303 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp

I, [2020-06-03T15:38:58.919709 #1] INFO -- : 

I, [2020-06-03T15:38:58.925728 #1] INFO -- : ملف > /etc/service/postgres/run chmod: +x chown: 

I, [2020-06-03T15:38:58.928444 #1] INFO -- : ملف > /etc/service/postgres/log/run chmod: +x chown: 

I, [2020-06-03T15:38:58.931357 #1] INFO -- : ملف > /etc/runit/3.d/99-postgres chmod: +x chown: 

I, [2020-06-03T15:38:58.934190 #1] INFO -- : ملف > /root/upgrade_postgres chmod: +x chown: 

I, [2020-06-03T15:38:58.934528 #1] INFO -- : > chown -R root /var/lib/postgresql/12/main

I, [2020-06-03T15:40:44.749613 #1] INFO -- : 

I, [2020-06-03T15:40:44.750250 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0

I, [2020-06-03T15:40:44.751653 #1] INFO -- : 

I, [2020-06-03T15:40:44.751914 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data

I, [2020-06-03T15:40:47.940064 #1] INFO -- : 

I, [2020-06-03T15:40:47.940713 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql

I, [2020-06-03T15:40:47.942521 #1] INFO -- : 

I, [2020-06-03T15:40:47.942924 #1] INFO -- : > /root/upgrade_postgres

initdb: تحذير: تم تمكين مصادقة "trust" للاتصالات المحلية

يمكنك تغيير ذلك عن طريق تحرير pg_hba.conf أو باستخدام الخيار -A، أو

--auth-local و --auth-host في المرة القادمة التي تشغل فيها initdb.

debconf: تأخير تكوين الحزمة لأن apt-utils غير مثبت

I, [2020-06-03T15:42:45.495966 #1] INFO -- : ترقية PostgreSQL من الإصدار 10 إلى 12

الملفات التابعة لنظام قاعدة البيانات هذا ستكون مملوكة للمستخدم "postgres".

يجب أن يكون هذا المستخدم أيضًا مالك عملية الخادم.

سيتم تهيئة عنقود قاعدة البيانات مع اللغة "en_US.UTF-8".

تم تعيين ترميز قاعدة البيانات الافتراضي وفقًا لذلك إلى "UTF8".

سيتم تعيين إعدادات البحث النصي الافتراضية على "الإنجليزية".

تم تعطيل تجزئة صفحات البيانات.

إصلاح الأذونات على الدليل الموجود /shared/postgres_data_new ... تم

إنشاء الدلائل الفرعية ... تم

اختيار تنفيذ الذاكرة المشتركة الديناميكية ... posix

اختيار الحد الأقصى الافتراضي للاتصالات ... 100

اختيار الذاكرة المشتركة الافتراضية ... 128MB

اختيار المنطقة الزمنية الافتراضية ... Etc/UTC

إنشاء ملفات التكوين ... تم

تشغيل سكريبت التمهيد ... تم

تنفيذ التهيئة ما بعد التمهيد ... تم

مزامنة البيانات مع القرص ... تم

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

/usr/lib/postgresql/12/bin/pg_ctl -D /shared/postgres_data_new -l logfile start

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]

Hit:2 http://deb.debian.org/debian buster InRelease

Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB]

Get:4 https://deb.nodesource.com/node_10.x buster InRelease [4,584 B]

Get:5 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84.6 kB]

Get:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [201 kB]

Get:7 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [768 B]

Get:8 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [171 kB]

تم جلب 577 kB في 1 ثانية (698 kB/s)

قراءة قوائم الحزم...

قراءة قوائم الحزم...

بناء شجرة الاعتمادات...

قراءة حالة المعلومات...

سيتم تثبيت الحزم الإضافية التالية:

postgresql-client-10

الحزم المقترحة:

postgresql-doc-10

سيتم تثبيت الحزم الجديدة التالية:

postgresql-10 postgresql-client-10

0 تم ترقية، 2 تم تثبيتها حديثًا، 0 سيتم إزالتها و 10 غير مرفوعة.

يلزم جلب 6,390 kB من الأرشيفات.

بعد هذا الإجراء، سيتم استخدام 30.6 MB إضافية من مساحة القرص.

Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-10 amd64 10.13-1.pgdg100+1 [1,428 kB]

Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-10 amd64 10.13-1.pgdg100+1 [4,961 kB]

تم جلب 6,390 kB في 0 ثانية (38.2 MB/s)

تحديد حزمة postgresql-client-10 غير المحددة سابقًا.

(قراءة قاعدة البيانات ... 43929 ملف ودليل مثبت حاليًا.)

التحضير لفك ضغط .../postgresql-client-10_10.13-1.pgdg100+1_amd64.deb ...

فك ضغط postgresql-client-10 (10.13-1.pgdg100+1) ...

تحديد حزمة postgresql-10 غير المحددة سابقًا.

التحضير لفك ضغط .../postgresql-10_10.13-1.pgdg100+1_amd64.deb ...

فك ضغط postgresql-10 (10.13-1.pgdg100+1) ...

إعداد postgresql-client-10 (10.13-1.pgdg100+1) ...

update-alternatives: تحذير: فرض إعادة تثبيت البديل /usr/share/postgresql/12/man/man1/psql.1.gz لأن مجموعة الروابط psql.1.gz معطلة

إعداد postgresql-10 (10.13-1.pgdg100+1) ...

إنشاء عنقود PostgreSQL جديد 10/main ...

/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5

الملفات التابعة لنظام قاعدة البيانات هذا ستكون مملوكة للمستخدم "postgres".

يجب أن يكون هذا المستخدم أيضًا مالك عملية الخادم.

سيتم تهيئة عنقود قاعدة البيانات مع اللغة "C.UTF-8".

تم تعيين ترميز قاعدة البيانات الافتراضي وفقًا لذلك إلى "UTF8".

سيتم تعيين إعدادات البحث النصي الافتراضية على "الإنجليزية".

تم تعطيل تجزئة صفحات البيانات.

إصلاح الأذونات على الدليل الموجود /var/lib/postgresql/10/main ... تم

إنشاء الدلائل الفرعية ... تم

اختيار الحد الأقصى الافتراضي للاتصالات ... 100

اختيار الذاكرة المشتركة الافتراضية ... 128MB

اختيار المنطقة الزمنية الافتراضية ... Etc/UTC

اختيار تنفيذ الذاكرة المشتركة الديناميكية ... posix

إنشاء ملفات التكوين ... تم

تشغيل سكريبت التمهيد ... تم

تنفيذ التهيئة ما بعد التمهيد ... تم

مزامنة البيانات مع القرص ... تم

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

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 تنفيذ البدء.

معالجة المحفزات لـ postgresql-common (213.pgdg100+1) ...

بناء قواميس PostgreSQL من حزم myspell/hunspell المثبتة...

إزالة ملفات القواميس القديمة:

إيقاف خادم قاعدة بيانات PostgreSQL 10: main.

إيقاف خادم قاعدة بيانات PostgreSQL 12: main.

إجراء فحوصات الاتساق

-----------------------------

التحقق من إصدارات العناقيد تم

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

فشل، الخروج

-------------------------------------------------------------------------------------

فشل ترقية POSTGRES

يرجى زيارة https://meta.discourse.org/t/postgresql-12-update/151236 للحصول على الدعم

يمكنك تشغيل ./launcher start app لإعادة تشغيل تطبيقك في هذه الأثناء

فشل

--------------------

Pups::ExecError: فشل /root/upgrade_postgres مع إرجاع #<Process::Status: pid 45 exit 1>

موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'

فشل exec مع المعلمات "/root/upgrade_postgres"

674042fc06e2af0c08a0a09c46406a0b18b1f08b9140e037fffe1053188bd1c0

** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، قد يكون هناك أكثر من خطأ.

قد يساعد ./discourse-doctor في تشخيص المشكلة.

root@community:/var/discourse#

هل لديك أي فكرة عن السبب؟

هل راجعت هذا المنشور؟

نعم، قمت بذلك من قبل. لم نتمكن من تشغيل التحديث.

اقرأ قسم الأسئلة الشائعة بالكامل هنا:

لقد جربت بالفعل حلاً بديلاً لكنه لم ينجح.

المفكرة مليئة بما يلي:

2020-06-03 16:01:21.074 UTC [693] FATAL: دليل البيانات “/shared/postgres_data” يملك ملكية خاطئة
2020-06-03 16:01:21.074 UTC [693] HINT: يجب تشغيل الخادم بواسطة المستخدم الذي يملك دليل البيانات.

بعد تسجيل الدخول إلى الحاوية، حاولت إيقاف تشغيلها بنفسي:

root@community-app:/etc/postgresql/10/main# service postgresql stop

[فشل] إيقاف خادم قاعدة بيانات PostgreSQL 10: main[…] خطأ: مالك الإعداد (postgres:106) ومالك البيانات (Debian-exim:105) غير متطابقين، ومالك الإعداد ليس root … فشل!

فشل!

تم حل المشكلة بتشغيل الأمر chown -R postgres postgres_data

في /shared بعد الدخول إلى حاوية Docker.