مرحباً، لقد قرأت هذا المنشور: PostgreSQL 15 update - وحاولت الترقية إلى الإصدار 15، ولكن عند تشغيل أمر إعادة البناء، واجهت أخطاء لم أكن على دراية بها، ولم يحل أي من بحثي المشكلة. سأكون ممتناً لأي مساعدة يمكنني الحصول عليها هنا.
يشكو من أن كل من Locale و postgres تم تهيئتهما من الإصدار 13، وهو غير متوافق مع 15.
WARNING: Docker version 20.10.7 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-25T12:02:47.588312 #1] INFO -- : Reading from stdin
I, [2025-02-25T12:02:47.603317 #1] INFO -- : File > /etc/service/postgres/run chmod: +x chown:
I, [2025-02-25T12:02:47.608602 #1] INFO -- : File > /etc/service/postgres/log/run chmod: +x chown:
I, [2025-02-25T12:02:47.614271 #1] INFO -- : File > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2025-02-25T12:02:47.619607 #1] INFO -- : File > /root/install_postgres chmod: +x chown:
I, [2025-02-25T12:02:47.623993 #1] INFO -- : File > /root/upgrade_postgres chmod: +x chown:
I, [2025-02-25T12:02:47.624696 #1] INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.628520 #1] INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.629701 #1] INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.635680 #1] INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.636635 #1] INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.637658 #1] INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.638584 #1] INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.639215 #1] INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.639833 #1] INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-25T12:02:47.640892 #1] INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.641570 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.642114 #1] INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-25T12:02:47.642818 #1] INFO -- : > if [ -f /root/install_postgres ]; then
/root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi
فشل في تعيين اللغة!
[error] character map file `UTF-8' not found: No such file or directory
فشل في تعيين اللغة!
[error] default character map file `ANSI_X3.4-1968' not found: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
popen failure: Cannot allocate memory
initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/15/bin/initdb"
I, [2025-02-25T12:02:49.979779 #1] INFO -- : Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
Upgrading PostgreSQL from version 13 to 15
I, [2025-02-25T12:02:49.980481 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-02-25T12:02:49.983148 #1] INFO -- : Terminating async processes
2025-02-25 12:02:50.007 UTC [51] FATAL: database files are incompatible with server
2025-02-25 12:02:50.007 UTC [51] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 15.10 (Debian 15.10-1.pgdg120+1).
شكرًا. أعتقد أنه يمكنك محاولة إضافة 2 جيجابايت أو 4 جيجابايت من مساحة التبديل. لكن الرسالة المتعلقة بـ Docker القديم، وتشغيل 18.04LTS، تعني أنك ستكون في وضع أفضل بكثير إذا انتقلت إلى مثيل جديد مع تثبيت نظام تشغيل جديد ونظيف: 24.04 مفضل. أقوم بتشغيل كل من 24.04 و 22.04 حاليًا.
قد يكون الانتقال إلى مثيل جديد ونظيف أقل جهدًا بشكل عام من محاولة الترقية في المكان. قد يكون حتى أقل تعطيلًا. من المحتمل جدًا أن تواجه بعض وقت التعطل بغض النظر عما تفعله.
الخطوة الأولى هي أخذ نسخة احتياطية (مع التنزيلات) وتنزيلها للاحتفاظ بها بأمان. خذ أيضًا نسخة من ملف app.yml الخاص بك.
لقد قمت بالترحيل بالأمس، لأسباب مماثلة. أيضًا، يمكنني الحصول على جهاز أفضل بنفس التكلفة عن طريق التبديل إلى عرض أحدث من مزود الاستضافة.
أنت أيضًا تعاني من نقص في مساحة القرص، خاصة إذا أضفت مساحة تبديل. عادة ما أقوم بتشغيل du -kx / | sort -n | tail -55
أو ما شابه ذلك لمعرفة ما إذا كان هناك أي شيء كبير لا ينبغي أن يكون هناك.
لقد رأيت عددًا قليلاً من المواقع يتم ترقيتها باستخدام 18.04، لكن معظمها لم يفعل ذلك.
لقد رأيت أشخاصًا يديرون عملية dist-upgrade، لكن نجاحها غير مؤكد، وهل تريد حقًا بقايا نظام التشغيل القديم الذي يبلغ من العمر 6 سنوات قد تسبب مشاكل للسنوات الخمس القادمة التي يدعم فيها 24.04؟ أيضًا، ترقية 18.04 توصلك فقط إلى 20.04، وهو جيد لمدة 60 يومًا تقريبًا، لذلك ستحتاج إلى تشغيل 3 ترقيات لتصل إلى أحدث نظام تشغيل.
إذًا واجهت نفس هذا الخطأ بالضبط إلا أنني شغلت ./launcher rebuild، لم أكن أتابع المنتديات والتحذيرات وقمت بتشغيل التحديث بشكل أعمى نوعًا ما. كيف يمكنني إيقاف/إرجاع هذا التشغيل؟ هل يكفي الضغط على Ctrl+C للخروج من التشغيل؟
توقف عن فعل أي شيء بعد DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 15.10 (Debian 15.10-1.pgdg120+1).
قمت بإعادة تشغيل الخادم وهذا أعاد الخادم.
تشغيل المزيد من التحديثات الآن مع تعثر Docker على 20 لسبب ما وتبعية أخرى. يا لها من طريقة جيدة لقضاء ليلة الجمعة هاها
تمكنت من تحديث نظام التشغيل المضيف، وإصدار Docker، ثم نجح تحديث قاعدة البيانات، وأعطيته أيضًا المزيد من ذاكرة الوصول العشوائي (RAM) ههه، يفترض أن يكون جيدًا لمدة 5 سنوات أخرى، أليس كذلك؟ هاها