pg_restore Fehler von pgadmin3 - Postgresql

8

Ich habe eine Sicherung einer Postgresql-Datenbank von einem System1 mit dem Tool pgadmin3 erstellt. Die erstellte Sicherungsdatei hat die Erweiterung ".backup".

Ich versuche, es auf einem anderen System2 wiederherzustellen, das mit postgresql 9.0 und pgadmin3 1.8 installiert ist, aber ich erhalte den Fehler

Abfrage konnte nicht ausgeführt werden: FEHLER: nicht erkannter Konfigurationsparameter "lock_timeout" Befehl war: SET lock_timeout = 0;

Konfiguration beider Systeme

system1 win7-64bit postgresql 9.0.13-1 - 64bit pgadmin 1.8

system2 win7-32bit postgresql 9.0.13-1 - 32bit pgadmin 1.8

Sangram Anand
quelle

Antworten:

6

lock_timeout ist ein neuer Parameter, der mit PostgreSQL 9.3 angezeigt wurde

Gemäß den Versionshinweisen :

Fügen Sie die Konfigurationsvariable lock_timeout hinzu, um zu begrenzen, wie lange eine Sitzung warten muss, um eine Sperre zu erhalten (Zoltán Böszörményi).

Dies würde darauf hinweisen, dass pgadmin pg_dumpanstelle von 9.0 einen PostgreSQL 9.3- Befehl verwendet, um die Sicherung durchzuführen .

Dies wird nur bei der Migration auf 9.3 empfohlen. Da der Zielserver 9.0 ist, verwenden Sie besser die pg_dumpBinärdatei, die mit dem 9.0-Server installiert wurde.

Der Pfad der externen Binärdateien kann in den pgAdmin-Einstellungen festgelegt werden. Um das Problem zu beheben, können Sie es auf das bin-Verzeichnis Ihrer 9.0-Installation setzen und erneut versuchen, eine Sicherungskopie zu erstellen.

Abgesehen davon können Sie als einmalige Korrektur die Dump-Datei bearbeiten, wenn sie im Klartext vorliegt. Entfernen Sie die fehlerhafte Zeile SET lock_timeout = 0;in der Hoffnung, dass dies das einzige Problem ist, das durch die Nichtübereinstimmung der Version verursacht wird.

Daniel Vérité
quelle
1
Seltsamerweise bekomme ich den gleichen Fehler auch mit einer 9.3 Quell- und
Cerin
Ich erhalte diesen Fehler mit einer von Heroku gesicherten Datenbank, die auf einer neuen lokalen 9.3-Datenbank wiederhergestellt wird. Ist das wichtig?
Justingordon
1
Ich kann diesen Parameter nicht in allen Sicherungsdateien abrufen, aber bei der Wiederherstellung wird mir der gleiche Fehler gemeldet. Ich habe Dump auf 9.3 postgresql und ich versuche, auf 9.2 postgresql wiederherzustellen. Ich denke, es gibt eine Option, um diese lock_timeout-Parameter automatisch zu erstellen?
g.annunziata