Beachten Sie, wenn Sie mehrere Cluster ausgeführt werden, der Befehl wiederherstellen kann die Standardversion nicht wie ...
pg_restore: [Archivierungs] nicht unterstützte Version (1.12) in der Datei-Header
In diesem Fall müssen Sie die Version, Host und Port, wie in spezifizieren:
pg_restore --cluster 9.1/localhost:5433 -f db.sql db.pgsql
(. beachten Sie, dass die host:port
info mit der Option -f ignoriert wird)
Der Hafen (5433) können Sie sich als mit dem pgsql
Befehl ermittelt werden:
pgsql --port 5433 template1
Wenn pgsql
eine Verbindung herstellt, schreibt einen Kommentar wie:
psql (9.3.6, Server 9.1.13)
Dies bedeutet, dass Sie pgsql 9.3.6 ausführen und dass Port 5433 den Server 9.1.13 referenziert.
Wenn Sie nicht sicher sind, welche Ports derzeit verwendet werden, können Sie den Befehl netstat
wie in verwenden:
sudo netstat -a64np | grep LISTEN | grep postgres
Die sudo
ist erforderlich für die -p
Option, die den Prozessnamen druckt. Das gibt Ihnen eine Liste von Ports (normalerweise TCP- und UDP-Ports).
schließlich auf einem Debian/Ubuntu-System, können Sie eine Liste der installierten Cluster mit dem dpkg -l
Befehl wie in bekommen können:
dpkg -l '*postgres*'
Die Liste der Einträge, die mit ‚ii‘ beginnen (am weitesten links stehenden Spalte) sind derzeit installiert. Sie haben natürlich ähnliche Befehle für andere Unices, die Ihnen helfen, installierte Versionen zu bestimmen.
Wenn ich das versuche, bekomme ich 'pg_restore: [archiver] Eingabedatei scheint kein gültiges Archiv zu sein. Ich kann Ihnen versichern, dass die Dumps mit der gleichen Version von postgresql 8.4.17 erstellt wurden. – sorin
Entschuldigung, ich habe gerade herausgefunden, dass der Typ, der die Backups erstellt hat, sie nach der Verwendung von "FC" gezippt hat! ...und mc view zeigte mir den unkomprimierten Inhalt auf Datei-Ansicht ... – sorin
das hat funktioniert, danke – Tom