Probleme mit einem Dump

Moin,

ich habe zwei Systeme:

A: Suse 8.2.82 mit PG 8.2.4
B: Suse 10.2 mit PG 8.1.5

Nun habe ich auf System A folgendes aufgerufen:

pg_dump -Fc rt3 > rt3.dump

und auf System B dann dies:

createdb rt3
pg_restore -d rt3 rt3.dump

Letztlich bekomme ich dann Fehlermeldungen bezüglich des Syntax. Geht das was ich da vorhabe nicht?
Ich kann auch gerne die Fehlermeldungen raussuchen …

Du versuchst also, den Dump einer höheren Version in eine niedere Version einzuspielen. Warum bist Du dann aber verwundert, wenn es da Probleme gibt?

Andreas

Ich hatte gehoft, das es bei diesen beiden Versionen keine Probleme gibt :frowning:

Watt nu? Muss ich nun wirklich PG auf der zweiten Maschienen neu übersetzen? Oder bekomme ich das für Suse 10.2 irgendwo als rpm?

Ich such mal auf der PG Homepage …

wäre mal interessant zu wissen, welche fehlermeldungen du erhältst.

Nun ja. Vielleicht nutzt Du ja Funktionen, die es in der alten Version nicht gibt.

Watt nu?

Das fragt sich dann auch die Datenbank…

Andreas

hier die Fehlermeldungen:

pg_restore: [Archivierer (DB)] Fehler in Phase PROCESSING TOC:
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1967; 0 0 STDSTRINGS STDSTRINGS 
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Parameter »standard_conforming_strings« kann nicht geändert werden
    Command was: 
SET standard_conforming_strings = 'off';
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1990; 0 0 SEQUENCE OWNED BY fm_articlecfvalues_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 42
    Command was: ALTER SEQUENCE fm_articlecfvalues_id_seq OWNED BY fm_articlecfvalues.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1994; 0 0 SEQUENCE OWNED BY fm_articles_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 35
    Command was: ALTER SEQUENCE fm_articles_id_seq OWNED BY fm_articles.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1998; 0 0 SEQUENCE OWNED BY fm_classcustomfields_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 44
    Command was: ALTER SEQUENCE fm_classcustomfields_id_seq OWNED BY fm_classcustomfields.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 2002; 0 0 SEQUENCE OWNED BY fm_classes_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 34
    Command was: ALTER SEQUENCE fm_classes_id_seq OWNED BY fm_classes.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 2006; 0 0 SEQUENCE OWNED BY fm_content_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 34
    Command was: ALTER SEQUENCE fm_content_id_seq OWNED BY fm_content.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 2010; 0 0 SEQUENCE OWNED BY fm_customfields_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 39
    Command was: ALTER SEQUENCE fm_customfields_id_seq OWNED BY fm_customfields.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 2014; 0 0 SEQUENCE OWNED BY fm_customfieldvalues_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 44
    Command was: ALTER SEQUENCE fm_customfieldvalues_id_seq OWNED BY fm_customfieldvalues.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 2018; 0 0 SEQUENCE OWNED BY fm_transactions_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »OWNED« bei Zeichen 39
    Command was: ALTER SEQUENCE fm_transactions_id_seq OWNED BY fm_transactions.id;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1973; 0 0 ACL acl_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »acl_id_seq« bei Zeichen 24
    Command was: REVOKE ALL ON SEQUENCE acl_id_seq FROM PUBLIC;
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »acl_id_seq« bei Zeichen 24
    Command was: REVOKE ALL ON SEQUENCE acl_id_seq FROM root;
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »acl_id_seq« bei Zeichen 33
    Command was: GRANT SELECT,UPDATE ON SEQUENCE acl_id_seq TO root;
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »acl_id_seq« bei Zeichen 33
    Command was: GRANT SELECT,UPDATE ON SEQUENCE acl_id_seq TO rt_user;
pg_restore: [Archivierer (DB)] Fehler in Inhaltsverzeichniseintrag 1976; 0 0 ACL attachments_id_seq root
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »attachments_id_seq« bei Zeichen 24
    Command was: REVOKE ALL ON SEQUENCE attachments_id_seq FROM PUBLIC;
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »attachments_id_seq« bei Zeichen 24
    Command was: REVOKE ALL ON SEQUENCE attachments_id_seq FROM root;
pg_restore: [Archivierer (DB)] could not execute query: FEHLER:  Fehler »Syntaxfehler« bei »attachments_id_seq« bei Zeichen 33
    Command was: GRANT SELECT,UPDATE ON SEQUENCE attachments_id_seq TO root;

....

WARNUNG: bei Wiederherstellung ignorierte Fehler: 118

Tja. Das “SEQUENCE OWNED BY” taucht zum Bleistift in den Realease Notes von 8.2 auf: PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: Release 8.2

Falls Du das wirklich machen willst, wirst Du über einen ASCII-Dump und manuelles editieren kaum herum kommen.
Man kann mit pg_dump eine ältere DB dumpen, aber ich weiß nicht, ob Du evtl. übers Netz mit dem pg_dump der alten Version die neue DB dumpen kannst. Vermutlich nicht.

Andreas

hmm, erfahrungsgemäß ist es meist möglich, einen Datenbankdump mit ein paar Änderungen hier und da auch in einer niedrigeren Version enzuspielen, insofern würde ich folgendes tun:

1.) Mach einen dump in plain text (pg_dump -f t glaub ich)
2.) restore mit psql < file

dann änderst du die auftretenden Fehler im Code

Ich will nicht, aber ich muss! :angry:

Ich bin schon dabei auf dem neuen Rechner die 2.8.4 zu installieren! Ich hoffe, das klappt.

Das ist ne riesen DB. Daher will ich da nicht in die SQLs rein.

Das ist dann wohl auch die bessere Lösung. Als Dank bekommst Du auch mehr Performance.

Andreas

Dann halt die Software aktuell.

Aber wieso hat eine Susi 8.x eine neuere PostgreSQL Version als eine Susi 10.x?

Erfahrungsgemäß ist vieles möglich, aber du weisst nicht, ob das hinterher auch so funktioniert, wie gewünscht.
Frickellösungen sind so eine Sache …

dann änderst du die auftretenden Fehler im Code

Genau, rumfrickeln bis zum Abwinken. Ggf. in zig GB Datenbanken.

Weil hier mal postgres von einer Version 7.x auf die 8.2.4 upgedated wurde. Nun muss genau dieser Rechner ersetzt werden und ich hab mir die Suse 10.2 DVD aus dem Softwareschrank genommen. Da wurde dann aber die Version 8.1.x installiert.

Nun bin ich gerade dabei die Version 8.1. wieder zu deinstallieren und die 8.2.4 aus den Sourcen zu übersetzen. Bis jetzt siehts gut aus!

Die 10.2 ist doch eigentlich ziemlich aktuell, oder?
Warum liefern die nur 8.1 mit grübel

Wird ja schlimmer als Debian.

Ich frag mal unseren großen Meister für RPM, ob es da was gibt …

Lass gut sein. Ich hab die schon kompiliert und installiert. Nun muss sie nur noch starten :astonished:

Nach dem Update auf die 8.2.4 läuft es nun alles wunderbar! Vielen Dank!