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, 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
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.
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:
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?
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.
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