restore geht nicht

meine 8GB-Datenbank habe ich pg_dumpall gedumpt.
pg_restore dump.txt meint

Q:\pg\bin>pg_restore q:\pgdata
pg_restore: [archiver] input file does not appear to be a valid archive

na gut.

psql -h localhost -U serversniff postgres <q:\pgdata

das geht prima. bis nach etwa 9 millionen zeilen ein sonderzeichen drin ist, das einen fehler verursacht:

ERROR:  missing data for column "host_id"
CONTEXT:  COPY helper_ip_hostname, line 8999392: "195.246.8.99  sl."
 

hinter sl. kommt ein Sonderzeichen, das den Fehler verursacht (HEX 1A).

ich weiss, dass das da nicht reinsollte, aber es ist nunmal reingekommen. wie kann ich das jetzt trotzdem importieren??

etwas hektisch,

ts

pg_restore will was zu fressen, was von pg_dump “in one of the non-plain-text formats.” erstellt wurde.

psql -h localhost -U serversniff postgres <q:\pgdata

>
> das geht prima. bis nach etwa 9 millionen zeilen ein sonderzeichen drin ist, das einen fehler verursacht:
>
> ```text
ERROR:  missing data for column "host_id"
CONTEXT:  COPY helper_ip_hostname, line 8999392: "195.246.8.99  sl."
 

hinter sl. kommt ein Sonderzeichen, das den Fehler verursacht (HEX 1A).

wäre interessant zu wissen, wie das passiert. Ich vermute irgendwas mit kapottem Einstellungen in Fenster. Kannst Du das evtl. reproduzieren, so daß man das mal irknwo als Bugreport reinkippen kann, falls es kein PEBKAC war?

ich weiss, dass das da nicht reinsollte, aber es ist nunmal reingekommen. wie kann ich das jetzt trotzdem importieren??

etwas hektisch,

ts

Ist es nur diese eine Zeile? Was wäre mit $EDITOR und diese Zeile händisch fixen, im Dumpfile?

Andreas

Mir wars eilig - es waren 4 oder 5 Zeilen. Erstmal einen Editor finden, der ein 11GB-File nicht nur anzeigen, sondern auch editieren kann.

Ich dachte ein Codierungsproblem und hab die DB mal von SQL_ASCII auf UTF8 gestellt - selbes Problem.

Funktioniert hats dann (nach etlichen Stunden Spielerei) ohne Änderungen, indem ich psql direkt aufgerufen habe und dann die datei mit
/i dumpfile.txt
importiert habe. Da kommen zwar für diese Zeilen auch Fehlermeldungen, der Import bricht aber nicht ab, sondern geht weiter und läuft bis zum Ende durch.

Nachdem psql die Sonderzeichen im interaktiven Modus schluckt (zumindest nicht abbricht), aber gepiped verweigert, ist das am Ende höchstwahrscheinlich ein Windows-Problem, das von der cmd.exe verursacht wird.

Ich werd den gepipeten Restore bei Gelegenheit nochmal unter Linux mit zsh ausprobieren und dann auf der Mailingliste posten, wenn das auch dort nachvollziehbar nicht geht.

tom