Nicht in der Lage, auf PostgreSQL 15 zu aktualisieren

Hallo, ich habe diesen Beitrag gelesen: PostgreSQL 15 update - und versucht, auf Version 15 zu aktualisieren. Beim Ausführen des Rebuild-Befehls stoße ich jedoch auf Fehler, mit denen ich nicht vertraut bin, und keine meiner Recherchen hat das Problem gelöst. Ich wäre Ihnen dankbar für jede Hilfe, die Sie mir geben können.

Es beschwert sich darüber, dass sowohl Locale als auch Postgres aus Version 13 initialisiert wurden und nicht mit 15 kompatibel sind.

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

failed to set locale!
[error] character map file `UTF-8' not found: No such file or directory
failed to set locale!
[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).

Vielen Dank im Voraus!

Das ist vielleicht das Ernsteste – Sie benötigen mehr RAM oder müssen Swap hinzufügen.

Bitte posten Sie die Ausgabe dieser schnellen Diagnosen:

Vielen Dank, dass Sie sich die Zeit genommen haben. Ich habe diesen Speicheraspekt völlig übersehen, hier sind die Ergebnisse, nach denen Sie gefragt haben:

root@glorious-discourse-forum:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"
root@glorious-discourse-forum:~# uptime
 13:27:58 up 1341 days, 22:37,  2 users,  load average: 0.07, 0.03, 0.00
root@glorious-discourse-forum:~# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        49G   41G  7.7G  85% /
root@glorious-discourse-forum:~# free
              total        used        free      shared  buff/cache   available
Mem:        2040976      416492      436628       20940     1187856     1433788
Swap:       2097148       85248     2011900
root@glorious-discourse-forum:~# swapon
NAME      TYPE SIZE  USED PRIO
/swapfile file   2G 83.3M   -2
root@glorious-discourse-forum:~# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  85248 436692 444416 743440    8    8   268    88    0    0  3  1 96  0  0
 0  0  85248 436684 444416 743440    0    0     0     0   50   87  0  0 100  0  0
 0  0  85248 436716 444416 743440    0    0     0     8   48   78  0  0 100  0  0
 0  0  85248 436716 444416 743440    0    0     0     6   39   63  0  0 100  0  0
 0  0  85248 436716 444416 743440    0    0     0     0   54   91  0  0 100  0  0
root@glorious-discourse-forum:~# dmesg|egrep -i "memory|oom|kill"
root@glorious-discourse-forum:~# ps auxrc
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      5781  0.0  0.1  40100  3332 pts/6    R+   13:28   0:00 ps

Danke. Ich denke, Sie könnten versuchen, einfach 2G oder 4G Swap hinzuzufügen. Aber die Meldung über veraltetes Docker und die Ausführung von 18.04LTS bedeutet, dass Sie in einer viel besseren Position wären, wenn Sie zu einer neuen Instanz mit einer frischen neuen Betriebssysteminstallation migrieren: vorzugsweise 24.04. Ich betreibe derzeit sowohl 24.04 als auch 22.04.

Die Migration zu einer neuen, frischen Instanz ist wahrscheinlich insgesamt weniger Aufwand als ein Upgrade vor Ort. Es könnte sogar weniger störend sein. Sie werden wahrscheinlich eine gewisse Ausfallzeit haben, egal was Sie tun.

Schritt 1 ist, ein Backup (mit Downloads) zu erstellen und es zur sicheren Aufbewahrung herunterzuladen. Machen Sie auch eine Kopie Ihrer app.yml-Datei.

Ich habe gestern eine Migration aus ähnlichen Gründen durchgeführt. Außerdem konnte ich durch den Wechsel zu einem neueren Angebot des Hosting-Anbieters die gleiche Leistung zu geringeren Kosten erzielen.

Ich habe hier die Migrationsanleitung und Tipps befolgt

Lesen Sie auch für beste Ergebnisse
MKJs Meinungskonfiguration für Discourse-Bereitstellungen

Sie haben auch etwas zu wenig Speicherplatz, besonders wenn Sie Swap hinzufügen. Ich mache normalerweise
du -kx / | sort -n | tail -55
oder ähnliches, um zu sehen, ob es etwas Großes gibt, das nicht da sein muss.

1 „Gefällt mir“

Ein weiterer Ansatz zur Migration, anstatt Backup und Wiederherstellung, ist die Verwendung von rsync. Ich habe es noch nicht gemacht, aber hier ist ein Rezept:

Das andere Problem ist, dass Ihre Docker-Version und Ihr Betriebssystem ein Upgrade benötigen.

Die Docker-Version 24.0.7 oder neuer erfordert eine höhere Ubuntu LTS als 18. Der Langzeit-Service dieser LTS ist nicht mehr unterstützt.

Ich habe einige Websites gesehen, die mit 18.04 aktualisiert wurden, aber die meisten davon nicht.

Ich habe Leute gesehen, die ein dist-upgrade geschafft haben, aber der Erfolg ist ungewiss, und möchten Sie wirklich, dass Überbleibsel Ihres 6 Jahre alten Betriebssystems möglicherweise Probleme für die nächsten 5 Jahre verursachen, für die 24.04 unterstützt wird? Außerdem bringt ein Upgrade von 18.04 nur zu 20.04, was noch etwa 60 Tage lang gut ist, sodass Sie 3 dist-upgrades ausführen müssten, um zum neuesten Betriebssystem zu gelangen.

Ich bin auf genau den gleichen Fehler gestoßen, außer dass ich ./launcher rebuild ausgeführt habe. Ich hatte die Foren und Warnungen nicht verfolgt und das Update einfach blind ausgeführt. Wie kann ich diesen Lauf beenden/rückgängig machen? Einfach mit Strg+C aus dem Lauf aussteigen?

Was ist passiert? Gab es einen Fehler? Wurde gesagt, dass der Rebuild erneut ausgeführt werden soll?

Haben Sie Docker aktualisiert?

Haben Sie versucht

 ./launcher start app

Haben Sie sich die Aktualisierung von PostgreSQL 15 angesehen?

Es hat aufgehört, irgendetwas zu tun, nachdem 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).
Ich habe den Server neu gestartet, und das hat den Server wieder zum Laufen gebracht.
Führe jetzt noch ein paar Updates durch, wobei Docker aus irgendeinem Grund bei 20 hängen bleibt, sowie andere Abhängigkeiten. Was für eine gute Art, den Freitagabend zu verbringen, haha.

Schade.

Ich würde bis Montag warten und zu einer neuen VM wechseln. Ich schätze, diese hier hat das Ende ihrer Lebensdauer überschritten.

Ich konnte das Host-Betriebssystem, die Docker-Version aktualisieren, und dann hat das DB-Update funktioniert. Ich habe ihm auch mehr RAM gegeben, lol. Sollte f

Wenn Sie Betriebssystem-Upgrades durchführen (insbesondere Docker), wahrscheinlich ja!

2 „Gefällt mir“