Ich versuche, meine Dump-Datei wiederherzustellen, aber es ist ein Fehler aufgetreten:
psql:psit.sql:27485: invalid command \N
Gibt es eine Lösung? Ich habe gesucht, aber keine klare Antwort erhalten.
sql
postgresql
dump
Vivek Vikranth
quelle
quelle
create table...
der Start fehlschlägt, das Laden jedoch fortgesetzt wird.(pg_restore ... | psql ...) 2>&1 | less
Ich versuche die gleiche Fehlermeldung, wenn ich versuche, von einem binären Speicherauszug wiederherzustellen. Ich habe einfach
pg_restore
meinen Dump wiederhergestellt und die\N
Fehler vollständig vermieden, zpg_restore -c -F t -f your.backup.tar
Erklärung der Schalter:
-f, --file=FILENAME output file name -F, --format=c|d|t backup file format (should be automatic) -c, --clean clean (drop) database objects before recreating
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber ich bin auf eine andere Lösung gestoßen: postgis wurde auf meiner neuen Version nicht installiert, was mir den gleichen Fehler auf pg_dump verursachte
quelle
Ich bin auch in der Vergangenheit auf diesen Fehler gestoßen. Pavel ist korrekt, es ist normalerweise ein Zeichen dafür, dass etwas in dem von pg_restore erstellten Skript fehlschlägt. Aufgrund all der "/ N" -Fehler sehen Sie das eigentliche Problem nicht ganz oben in der Ausgabe. Ich schlage vor:
pg_restore --table=orders full_database.dump > orders.dump
)orders.dump
eine Reihe von Datensätzen öffnen und löschen).In meinem Fall war die Erweiterung "hstore" noch nicht installiert, sodass das Skript ganz oben fehlschlug. Ich habe hstore in der Zieldatenbank installiert und war wieder im Geschäft.
quelle
Sie können Ihren Speicherauszug mithilfe von INSERTS-Anweisungen mit dem Parameter --inserts generieren.
quelle
Installieren Sie postgresql- (Ihre Version) -postgis-Skripte
quelle
Das gleiche ist mir heute passiert. Ich habe das Problem durch Dumping mit dem Befehl --inserts behoben.
Was ich tue ist:
1) pg_dump mit Einfügungen:
2) psql (stelle deine gedumpte Datei wieder her)
Hinweis 1) Stellen Sie sicher, dass das Hinzufügen einer Ausgabedatei die Importgeschwindigkeit erhöht.
Hinweis-2) Vergessen Sie nicht, vor dem Import mit psql eine Tabelle mit genau demselben Namen und denselben Spalten zu erstellen.
quelle
Nach meiner jüngsten Erfahrung ist es möglich, diesen Fehler zu erhalten, wenn das eigentliche Problem nichts mit Escapezeichen oder Zeilenumbrüchen zu tun hat. In meinem Fall hatte ich einen Dump aus Datenbank A mit erstellt
pg_dump -a -t table_name > dump.sql
und versuchte, ihn in Datenbank B mit wiederherzustellen
psql < dump.sql
(natürlich nach dem Aktualisieren der richtigen env-Variablen).Schließlich stellte ich fest, dass es sich um den Dump handelte (obwohl dies
data-only
der-a
Fall war) war schemaspezifisch, damit die Tabellenstruktur nicht explizit Teil des Speicherauszugs ist. Das bedeutete, dass ich ohne manuelles Ändern des Dumps keinen Dump verwenden konnte, derschema1.table_name
zum Auffüllen generiert wurdeschema2.table_name
. Das manuelle Ändern des Speicherauszugs war einfach. Das Schema wird in den ersten 15 Zeilen oder so angegeben.quelle
In den meisten Fällen besteht die Lösung darin, das
postgres-contrib
Paket zu installieren .quelle
Bei Verwendung von postgreSQL 10 unter SUSE 12 habe ich den
invalid command \N
Fehler durch Erhöhen des Speicherplatzes behoben . Der Mangel an Speicherplatz verursachte den Fehler für mich. Sie können feststellen, ob Sie nicht genügend Speicherplatz haben, wenn Sie sich das Dateisystem ansehen, in das Ihre Daten in derdf -h
Ausgabe verschoben werden. Wenn das Dateisystem / Mount zu 100% verwendet wird, müssen Sie wahrscheinlich den verfügbaren Speicherplatz erhöhen , nachdem Sie Folgendes getan habenpsql -f db.out postgres
(siehe https://www.postgresql.org/docs/current/static/app-pg-dumpall.html ) .quelle
Ich hatte das gleiche Problem, ich habe eine neue Datenbank erstellt und
invalid command \N
mit psql wiederhergestellt. Ich habe es gelöst, indem ich den gleichen Tabellenbereich mit der alten Datenbank festgelegt habe.Zum Beispiel hatte die alte Datenbanksicherung den Tabellenbereich "pg_default", ich habe den gleichen Tabellenbereich für die neue Datenbank definiert und der obige Fehler ist verschwunden!
quelle