Backup fehlgeschlagen wegen PG/SQL-Fehlern

Fortsetzung der Diskussion aus Backup to S3 command?:

Nachdem ich versucht habe, ein Backup über ./launcher enter zu erstellen, habe ich herausgefunden, was anscheinend der Grund dafür ist, dass die Backups nicht mehr funktionieren.

pg_dump: Dumping the contents of table "topic_links" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR:  invalid memory alloc request size 18446744073709551613
pg_dump: The command was: COPY public.topic_links (id, topic_id, post_id, user_id, url, domain, internal, link_topic_id, created_at, updated_at, reflection, clicks, link_post_id, title, crawled_at, quote, extension) TO stdout;
EXCEPTION: pg_dump failed
/var/www/discourse/lib/backup_restore/backuper.rb:152:in `dump_public_schema'
/var/www/discourse/lib/backup_restore/backuper.rb:36:in `run'
script/discourse:80:in `backup'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
script/discourse:284:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Deleting old backups...
Cleaning stuff up...
Removing '.tar' leftovers...
Marking backup as finished...
Refreshing disk stats...
Notifying 'system' of the end of the backup...
Finished!
[FAILED]

Das ist besonders frustrierend, da ich anscheinend auch die alten Backups nicht verwenden kann. Beim Versuch, diese wiederherzustellen, erhalte ich folgenden Fehler:

[2020-12-12 01:53:25] COPY 750 [2020-12-12 01:53:30] ERROR: null value in column "user_id" of relation "topic_users" violates not-null constraint [2020-12-12 01:53:30] DETAIL: Failing row contains (null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null). [2020-12-12 01:53:30] CONTEXT: COPY topic_users, line 623983: "\N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N" [2020-12-12 01:53:30] EXCEPTION: psql failed: CONTEXT: COPY topic_users, line 623983: "\N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N" [2020-12-12 01:53:30] /var/www/discourse/lib/backup_restore/database_restorer.rb:87:in `restore_dump' /var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore' /var/www/discourse/lib/backup_restore/restorer.rb:51:in `run' /var/www/discourse/script/spawn_backup_restore.rb:23:in `restore' /var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>' /var/www/discourse/script/spawn_backup_restore.rb:4:in `fork' /var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>' [2020-12-12 01:53:30] Trying to rollback... [2020-12-12 01:53:30] Rolling back... [2020-12-12 01:53:30] Cleaning stuff up... [2020-12-12 01:53:30] Dropping functions from the discourse_functions schema... [2020-12-12 01:53:30] Removing tmp '/var/www/discourse/tmp/restores/default/2020-12-12-014753' directory... [2020-12-12 01:53:30] Unpausing sidekiq... [2020-12-12 01:53:30] Marking restore as finished...

Gibt es vielleicht eine Wartungsmaßnahme, die ich durchführen könnte, um den Zustand wiederherzustellen, in dem Backups erstellt bzw. übertragen werden können?

Das sieht nach einem Problem aus.

Ist dies eine Standardinstallation? Welche Version von PostgreSQL wird verwendet?

Sie sagten, dass es auf diesem Server ein Problem gab, und deshalb versuchen Sie, von dort zu wechseln?

Die aktuelle Installation ist: 2.7.0.beta1

Der Server hat eine komplizierte Geschichte (er ist etwa fünf Jahre alt) und war zunächst eine Standardinstallation mit eigenem Hosting, wurde dann auf Discourse-Hosting übertragen und danach wieder zurück – wir haben versucht, alles so standardkonform wie möglich zu halten.

Ich bin mir ziemlich sicher, dass es die aktuelle Version ist.

Der Server hatte wiederholt Ausfälle bzw. Störungen usw., die die Leistung beeinträchtigt haben und möglicherweise auch die Datenbank betroffen haben. Beim letzten Mal, als ich eine Datenbankbereinigung durchgeführt habe, wurde eine erhebliche Menge an Daten aus der PostgreSQL-Datei entfernt.

Derzeit ist die Backup-Datei, auf die ich Zugriff habe, 1,5 GB groß und daher zu groß, um sie mit der auf meinem PC verfügbaren Software bearbeiten zu können.

Es gibt weitere bekannte Probleme, z. B. dass der Versuch, Bilder zu S3 zu migrieren, fehlgeschlagen ist usw., aber zuvor gab es keine Probleme mit Backups usw.

Ich denke, ich würde das gesamte Verzeichnis /var/discourse auf einen neuen Server kopieren, um mich von dem Problem auf diesem Server zu entfernen, und dann versuchen, alles wieder in Ordnung zu bringen.

Möglicherweise ist dein Index beschädigt, aber ich bin gerade auf meinem Handy und kann die Fehlermeldungen nicht ganz nachvollziehen.

Habe das gerade ausprobiert – es hat ein bisschen Gefrickel gebraucht.

Das neue System mag es nicht, es lehnt die Datenbank so ziemlich komplett ab.

Launcher ist auf dem neuesten Stand
Stoppe alten Container
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Bereits auf dem neuesten Stand.
I, [2020-12-13T09:23:39.291334 #1]  INFO -- : Lade --stdin
I, [2020-12-13T09:23:39.296303 #1]  INFO -- : > DEBIAN_FRONTEND=noninteractive apt-get purge -y postgresql-13 postgresql-client-13 postgresql-contrib-13
I, [2020-12-13T09:23:41.511661 #1]  INFO -- : Paketlisten werden gelesen...
Abhängigkeitsbaum wird aufgebaut...
Statusinformationen werden eingelesen...
Folgende Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  libllvm7 pgdg-keyring postgresql-client-common postgresql-common ssl-cert
Nutzen Sie 'apt autoremove', um sie zu entfernen.
Folgende Pakete werden ENTFERNT:
  postgresql-13* postgresql-client-13*
0 aktualisiert, 0 neu installiert, 2 zu entfernen und 0 nicht aktualisiert.
Nach diesem Vorgang werden 54,3 MB Festplattenspeicher freigegeben.
(Datenbank wird gelesen ... 43863 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne postgresql-13 (13.1-1.pgdg100+1) ...
invoke-rc.d: konnte den aktuellen Runlevel nicht ermitteln
invoke-rc.d: policy-rc.d verweigerte die Ausführung von stop.
Entferne postgresql-client-13 (13.1-1.pgdg100+1) ...
Auslösen von Triggern für postgresql-common (223.pgdg100+1) ...
PostgreSQL-Wörterbücher werden aus installierten myspell/hunspell-Paketen erstellt...
Veraltete Wörterbuchdateien werden entfernt:
(Datenbank wird gelesen ... 42050 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne Konfigurationsdateien für postgresql-13 (13.1-1.pgdg100+1) ...
Entferne Cluster main...

I, [2020-12-13T09:23:41.511861 #1]  INFO -- : > apt-get update && apt-get install -y postgresql-10 postgresql-client-10 postgresql-contrib-10
debconf: Paketkonfiguration wird verzögert, da apt-utils nicht installiert ist
I, [2020-12-13T09:23:51.192217 #1]  INFO -- : Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://deb.debian.org/debian buster-updates InRelease [51,9 kB]
Get:3 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB]
Get:4 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [104 kB]
Hit:5 https://deb.nodesource.com/node_10.x buster InRelease
Get:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [254 kB]
Get:7 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [216 kB]
690 kB in 1s heruntergeladen (525 kB/s)
Paketlisten werden gelesen...
Paketlisten werden gelesen...
Abhängigkeitsbaum wird aufgebaut...
Statusinformationen werden eingelesen...
Folgende Paket wurde automatisch installiert und wird nicht mehr benötigt:
  libllvm7
Nutzen Sie 'apt autoremove', um es zu entfernen.
Vorgeschlagene Pakete:
  postgresql-doc-10
Folgende NEUE Pakete werden installiert:
  postgresql-10 postgresql-client-10
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 5 nicht aktualisiert.
Es müssen 6.402 kB an Archiven heruntergeladen werden.
Nach diesem Vorgang werden 30,6 MB zusätzlicher Festplattenspeicher verwendet.
Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-10 amd64 10.15-1.pgdg100+1 [1.436 kB]
Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-10 amd64 10.15-1.pgdg100+1 [4.966 kB]
6.402 kB in 2s heruntergeladen (2.809 kB/s)
Auswählen des zuvor nicht ausgewählten Pakets postgresql-client-10.
(Datenbank wird gelesen ... 42050 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereiten zum Entpacken von .../postgresql-client-10_10.15-1.pgdg100+1_amd64.deb ...
Entpacken von postgresql-client-10 (10.15-1.pgdg100+1) ...
Auswählen des zuvor nicht ausgewählten Pakets postgresql-10.
Vorbereiten zum Entpacken von .../postgresql-10_10.15-1.pgdg100+1_amd64.deb ...
Entpacken von postgresql-10 (10.15-1.pgdg100+1) ...
Einrichten von postgresql-client-10 (10.15-1.pgdg100+1) ...
update-alternatives: verwendet /usr/share/postgresql/10/man/man1/psql.1.gz, um /usr/share/man/man1/psql.1.gz (psql.1.gz) im automatischen Modus bereitzustellen
Einrichten von postgresql-10 (10.15-1.pgdg100+1) ...
Erstelle neuen PostgreSQL-Cluster 10/main ...
/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5
Die Dateien dieses Datenbanksystems gehören dem Benutzer „postgres“.
Dieser Benutzer muss auch den Serverprozess besitzen.

Der Datenbankcluster wird mit dem Locale „C.UTF-8“ initialisiert.
Die standardmäßige Datenbankkodierung wurde entsprechend auf „UTF8“ gesetzt.
Die standardmäßige Textsuchkonfiguration wurde auf „englisch“ gesetzt.

Prüfsummen für Datenseiten sind deaktiviert.

Berechtigungen für das vorhandene Verzeichnis /var/lib/postgresql/10/main werden korrigiert ... ok
Unterverzeichnisse werden erstellt ... ok
Standard für max_connections wird ausgewählt ... 100
Standard für shared_buffers wird ausgewählt ... 128MB
Standard-Zeitzone wird ausgewählt ... Etc/UTC
Implementierung für dynamischen gemeinsamen Speicher wird ausgewählt ... posix
Konfigurationsdateien werden erstellt ... ok
Bootstrap-Skript wird ausgeführt ... ok
Nach-Bootstrap-Initialisierung wird durchgeführt ... ok
Daten werden auf die Festplatte synchronisiert ... ok

Erfolg. Sie können den Datenbankserver jetzt mit folgendem Befehl starten:

    pg_ctlcluster 10 main start

Ver Cluster Port Status Owner    Datenverzeichnis              Logdatei
10  main    5432 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives: verwendet /usr/share/postgresql/10/man/man1/postmaster.1.gz, um /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) im automatischen Modus bereitzustellen
invoke-rc.d: konnte den aktuellen Runlevel nicht ermitteln
invoke-rc.d: policy-rc.d verweigerte die Ausführung von start.
Auslösen von Triggern für postgresql-common (223.pgdg100+1) ...
PostgreSQL-Wörterbücher werden aus installierten myspell/hunspell-Paketen erstellt...
Veraltete Wörterbuchdateien werden entfernt:

I, [2020-12-13T09:23:51.192964 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-12-13T09:23:51.195917 #1]  INFO -- :
I, [2020-12-13T09:23:51.196235 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-12-13T09:23:51.198835 #1]  INFO -- :
I, [2020-12-13T09:23:51.199139 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-12-13T09:23:51.201681 #1]  INFO -- :
I, [2020-12-13T09:23:51.202025 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-12-13T09:23:51.204199 #1]  INFO -- :
I, [2020-12-13T09:23:51.204549 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-12-13T09:23:51.207718 #1]  INFO -- :
I, [2020-12-13T09:23:51.208017 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/12/13 09:23:51 socat[1567] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Datei oder Verzeichnis nicht gefunden
I, [2020-12-13T09:23:51.217014 #1]  INFO -- :
I, [2020-12-13T09:23:51.217294 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-12-13T09:23:51.220400 #1]  INFO -- :
I, [2020-12-13T09:23:51.220682 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-12-13T09:23:51.223488 #1]  INFO -- :
I, [2020-12-13T09:23:51.223691 #1]  INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-12-13T09:23:51.225967 #1]  INFO -- :
I, [2020-12-13T09:23:51.226198 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-12-13T09:23:51.228306 #1]  INFO -- :
I, [2020-12-13T09:23:51.233016 #1]  INFO -- : Datei > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-12-13T09:23:51.237345 #1]  INFO -- : Datei > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-12-13T09:23:51.237662 #1]  INFO -- : > chown -R root /var/lib/postgresql/10/main
I, [2020-12-13T09:23:51.244979 #1]  INFO -- :
I, [2020-12-13T09:23:51.245164 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-12-13T09:23:51.246982 #1]  INFO -- :
I, [2020-12-13T09:23:51.247152 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-12-13T09:23:51.314470 #1]  INFO -- :
I, [2020-12-13T09:23:51.314888 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-12-13T09:23:51.318075 #1]  INFO -- :
I, [2020-12-13T09:23:51.318499 #1]  INFO -- : Ersetze data_directory = '/var/lib/postgresql/10/main' durch data_directory = '/shared/postgres_data' in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.319171 #1]  INFO -- : Ersetze (?-mix:#?listen_addresses *=.*) durch listen_addresses = '*' in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.319652 #1]  INFO -- : Ersetze (?-mix:#?synchronous_commit *=.*) durch synchronous_commit = $db_synchronous_commit in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.320131 #1]  INFO -- : Ersetze (?-mix:#?shared_buffers *=.*) durch shared_buffers = $db_shared_buffers in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.320672 #1]  INFO -- : Ersetze (?-mix:#?work_mem *=.*) durch work_mem = $db_work_mem in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.321143 #1]  INFO -- : Ersetze (?-mix:#?default_text_search_config *=.*) durch default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.321608 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-12-13T09:23:51.324709 #1]  INFO -- :
I, [2020-12-13T09:23:51.325108 #1]  INFO -- : Ersetze (?-mix:#?checkpoint_segments *=.*) durch checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.325597 #1]  INFO -- : Ersetze (?-mix:#?logging_collector *=.*) durch logging_collector = $db_logging_collector in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.326097 #1]  INFO -- : Ersetze (?-mix:#?log_min_duration_statement *=.*) durch log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/10/main/postgresql.conf
I, [2020-12-13T09:23:51.326619 #1]  INFO -- : Ersetze (?-mix:^#local +replication +postgres +peer$) durch local replication postgres  peer in /etc/postgresql/10/main/pg_hba.conf
I, [2020-12-13T09:23:51.327039 #1]  INFO -- : Ersetze (?-mix:^host.*all.*all.*127.*$) durch host all all 0.0.0.0/0 md5 in /etc/postgresql/10/main/pg_hba.conf
I, [2020-12-13T09:23:51.327456 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main
I, [2020-12-13T09:23:51.329156 #1]  INFO -- : > sleep 5
2020-12-13 09:23:51.347 UTC [1583] LOG:  lauscht auf IPv4-Adresse „0.0.0.0“, Port 5432
2020-12-13 09:23:51.347 UTC [1583] LOG:  lauscht auf IPv6-Adresse „::“, Port 5432
2020-12-13 09:23:51.349 UTC [1583] LOG:  lauscht auf Unix-Socket „/var/run/postgresql/.s.PGSQL.5432"
2020-12-13 09:23:51.363 UTC [1583] FATAL:  Datenbankdateien sind mit dem Server inkompatibel
2020-12-13 09:23:51.363 UTC [1583] DETAIL:  Der Datenbankcluster wurde mit PG_CONTROL_VERSION 1300 initialisiert, aber der Server wurde mit PG_CONTROL_VERSION 1002 kompiliert.
2020-12-13 09:23:51.363 UTC [1583] HINT:  Es sieht so aus, als müssten Sie initdb ausführen.
2020-12-13 09:23:51.365 UTC [1583] LOG:  Datenbanksystem wurde heruntergefahren
I, [2020-12-13T09:23:56.331811 #1]  INFO -- :
I, [2020-12-13T09:23:56.332043 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
createdb: konnte keine Verbindung zur Datenbank template1 herstellen: konnte keine Verbindung zum Server herstellen: Datei oder Verzeichnis nicht gefunden
        Läuft der Server lokal und akzeptiert
        Verbindungen über den Unix-Socket „/var/run/postgresql/.s.PGSQL.5432"?
I, [2020-12-13T09:23:56.394383 #1]  INFO -- :
I, [2020-12-13T09:23:56.394680 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
psql: konnte keine Verbindung zum Server herstellen: Datei oder Verzeichnis nicht gefunden
        Läuft der Server lokal und akzeptiert
        Verbindungen über den Unix-Socket „/var/run/postgresql/.s.PGSQL.5432"?
I, [2020-12-13T09:23:56.454155 #1]  INFO -- :
I, [2020-12-13T09:23:56.454333 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
psql: konnte keine Verbindung zum Server herstellen: Datei oder Verzeichnis nicht gefunden
        Läuft der Server lokal und akzeptiert
        Verbindungen über den Unix-Socket „/var/run/postgresql/.s.PGSQL.5432"?
I, [2020-12-13T09:23:56.508933 #1]  INFO -- :
I, [2020-12-13T09:23:56.509118 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
psql: konnte keine Verbindung zum Server herstellen: Datei oder Verzeichnis nicht gefunden
        Läuft der Server lokal und akzeptiert
        Verbindungen über den Unix-Socket „/var/run/postgresql/.s.PGSQL.5432"?
I, [2020-12-13T09:23:56.560843 #1]  INFO -- :
I, [2020-12-13T09:23:56.561176 #1]  INFO -- : Asynchrone Prozesse werden beendet


FEHLGESCHLAGEN
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' fehlgeschlagen mit Rückgabewert #<Process::Status: pid 1609 exit 2>
Fehlerort: /pups/lib/pups/exec_command.rb:112:in `spawn'
Ausführung fehlgeschlagen mit den Parametern „su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
da620ae9048b2cda99c7a0d24e38c9dfafba5d61fac8c64c2da2362a19338a76
** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.

Dieser Teil macht mir Sorgen:

Die Verwendung von Discourse Doctor auf beiden Systemen scheint keine Lösungen anzubieten.

Es versucht, PostgreSQL zu aktualisieren. Ein Großteil davon ist zu erwarten.

Vielleicht versucht es es erneut und wechselt zur pg 10-Vorlage, wie in PostgreSQL 13 Update beschrieben.

Die Zeile, die ein Upgrade verhindert, befindet sich immer noch in der YML-Datei.

Ich kann in die App einloggen und auf die SQL-Datenbank auf dem alten Server zugreifen. Wenn ich es auf dem neuen Server versuche, erhalte ich folgende Meldung:

psql: error: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Die Zeile oben scheint das Kernproblem zu sein, @wincenworks.

Ich kann dir nicht sagen, was du tun sollst, aber wenn ich du wäre, @wincenworks, würde ich Discourse komplett neu installieren; und bevor du den Container erstellst, würdest du deine Vorlage(n) so einstellen, dass sie PG10 verwenden.

Sobald du diese neue Instanz zum Laufen gebracht hast, kannst du versuchen, deine Discourse-Instanz von deinem aktuellen PG10-Backup wiederherzustellen, über die Kommandozeile (nicht die Benutzeroberfläche) innerhalb deines Containers.

Hoffentlich hilft das.

Ich versuche gerade, eine neue Instanz mit PG10 zu starten, aber es kommt bei der letzten Phase des Registrierungsprozesses zu Zeitüberschreitungen.

Das würde ich sehr gerne tun, aber:

  1. Es wird mir nicht erlaubt, ein neues Backup zu erstellen.
  2. Frühere Backups lassen sich nicht wiederherstellen.

Deshalb versuche ich, sie per SCP zu übertragen.

Ja, es wird in Ihrer aktuellen Konfiguration nicht wiederhergestellt, wie ich Sie verstanden habe.

Haben Sie versucht, dieses Backup nach einer vollständigen Neuinstallation wiederherzustellen, wie ich erwähnt habe?

Installieren Sie zunächst Discourse von Grund auf neu und stellen Sie sicher, dass es zu 100 % mit einer PG10-Installationsvorlage läuft.

Stellen Sie dann Ihr letztes Backup wieder her (über die Befehlszeile, nicht über die Benutzeroberfläche).