Umzug auf neuen Server schlägt fehl (PostgreSQL)

Hallo zusammen,

ich habe eine Nextcloud Instanz auf einem Hyper-V Host mit Ubuntu laufen. Das habe ich mit diesem Script eingerichtet: https://github.com/nextcloud/vm

Als Webserver läuft hier Apache2, die Datenbank als PostgreSQL

Leider habe ich den Festplattenplatz und ein paar andere Sachen falsch gewählt. Deshalb habe ich jetzt das ganze parallel auf einer neuen VM nochmal aufgesetzt. Jetzt möchte ich meine Daten/Datenbank/usw (Kalender, Kontakte, Apps, …) auf die neue Instanz “umziehen”. Hierzu befolge ich folgende Anleitung: https://docs.nextcloud.com/server/14/admin_manual/maintenance/migrating.html

Allerdings stoße ich auf folgende Probleme:

Beim Versuch die Datenbank auf dem neuen Host zu “droppen” verwende ich folgenden Befehl:

PGPASSWORD="geheim" psql -h localhost -U ncadmin_db -d nextcloud -c "DROP 
DATABASE \"nextcloud_db\";"

Es kommt die Fehlermeldung:

 ERROR:  cannot drop the currently open database

Um das zu umgehen habe ich eingegeben:

 PGPASSWORD="geheim psql -h localhost -U ncadmin -d 
 template1 -c "DROP DATABASE \"nextcloud_db\";"

Dann funktioniert es. Passt das ?
Allerdings habe ich noch keine Möglichkeit gefunden jetzt wieder eine Datenbank anzulegen. Wenn ich wie in der Anleitung “-d nextcloud_db” angebe, findet er die datenbank nicht. Gebe ich “template1” an, sagt er permission denied.
Was kann ich da machen ?

Vielen Dank,

Andi

Versuche, das folgende Kommando als User postgres durchzuführen (bin mir nicht sicher, ob dein Nextcloud-Datenbankuser ncadmin oder ncadmin_db heißt - das müsstest du nachschauen in deiner config.php und dann ggfls. bei OWNER anpassen):

sudo -u postgres psql -h localhost -d postgres -c "CREATE DATABASE \"nextcloud_db\" OWNER \"ncadmin\";"

Danach kannst du die Datenbank aus dem Backup wiederherstellen mit:

sudo -u postgres psql -d "nextcloud_db" -h localhost -f "/pfad/zum/PostgreSQL-Backup.bak"

Hallo Bernie,

Er frägt mich dann einmal nach dem sudo passwort, und dann nach dem passwort für den user postgres. Hier kommt die Fehlermeldung:

FATAL:  password authentication failed for user "postgres"

Dieser User hat aber kein Passwort. Ich weiß auch nicht ob es jetzt Zweckmäßig ist eines zu setzen. Was kann ich da machen ?

Mein Datenbankuser heißt ncadmin

Vielen Dank

Ich habe es jetzt mit folgenden Befehlen geschafft, die Datenbank zurückzuspielen:

sudo -u postgres psql postgres
\password postgres
sudo -u postgres psql -h localhost -d postgres -c "CREATE DATABASE \"nextcloud_db\" OWNER \"ncadmin\";"
sudo -u postgres psql -d "nextcloud_db" -h localhost -f "/pfad/zum/PostgreSQL-Backup.bak"

Anschließend habe ich den kompletten Nextcloudordner ( /var/www/nextcloud/) und den Datenordner auf der alten Instanz in ein Archiv gepackt, mit scp auf die neue Instanz verschoben und dort in die passenden Verzeichnisse entpackt

Da ich ja den ganzen Ordner kopiert habe, ist ja auch die config.php jetzt aus der alten Instanz. Deshalb habe ich das Datenbankpasswort noch geändert. Sonst nichts. Wenn ich jetzt den Maintaneance Mode wieder ausschalte und im Browser die IP Adresse der neuen NC Instanz eingebe kommt folgende Fehlermeldung:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please 
include the technical details below in your report.
More details can be found in the server log.

Was das heist weis ich auch nicht. Was mache ich falsch ?

Der Fehler war folgender:
In der Nextcloud Config muss ich auch noch das passwort für redis ändern. Jetzt klappt es!

1 Like

Freut mich, dass es jetzt wieder läuft :slight_smile: