Datenbank von einem Rechner auf einen anderen übernehmen

Guten Tag!

Ich habe einen Rechner der hat eine PostgreSQL-Datenbank. Im PG-Admin habe ich “Rechtsklick -> Sicherung … (Format tar)” ausgewählt. Eine ca 1.2 Gigabyte große Datei ist entstanden, die ich gerne auf einem anderem Rechner importieren will.
Lege ich auf diesem anderen Rechner eine PostgreSQL-Datenbank an und mache “Rechtsklick -> Wiederherstellen” und wähle die Datei aus, dann läuft pgdump als Prozess ewig mit 0-2% Rechenlast.

Ich habe schon wirklich lange gewartet, bin aber der Meinung da passiert nichts. Hat jemand ein gutes Tutorial für mich, wie ich Daten aus einer Datenbank sichere und wieder in eine PG-Datenbank übernehme? Ich bin für jeden Tipp dankbar :slight_smile:

Die Doku hat ein extra Kapitel dafür: http://www.postgresql.org/docs/9.2/interactive/backup.html

Lesen & Anwenden. Ich hab keine Ahnung, was PGAdmin macht. Ist auch irrelevant. Wenn solche ein Tool wie PGAdmin nicht tut, was man soll, nimmt man eben das, was der Hersteller selbst mitliefert und dokumentiert.

Naja, PgAdmin wird vom “Hersteller” mitgeliefert, so ist es ja nicht.
Aber ich gebe Dir Recht: man sollte schon verstehen was die GUI da im Hintegrund eigentlich macht, sonst steht man beim kleinsten Problem wie der Ochs’ vor’m Berg.

Nein, verwechsle EDB nicht mit PostgreSQL Core.

Andreas

Erstmal danke für die Antwort. Jetzt bin ich soweit wie vorher. Backup habe ich wie folgt erstellt:

pg_dump –Fc –Z 9 –U {user} {dbname} > backup.db

Datei ist wieder ca. 1 Gigabyte groß und ich kann mir Informationen ausgeben lassen via:

pg_restore –l backup.db

Jetzt will ich sie auf dem anderen Rechner wiederherstellen, mein Ansatz:

pg_restore -d dummy -U {user} -C backup.db

Meine Erwartungen:

Laut Doku soll -C bewirken dass die Datenbank komplett neu angelegt wird. -d (der dummy) ist eine existierende Datenbank, die laut Doku nur einmalig zum “einloggen” verwendet wird, der eigentliche Datenbankname ist ja im Archiv gespeichert. Na ja, jetzt läuft wieder pg_restore als Prozess mit 0-3% Rechenlast und es geht irgendwie nicht voran. Das erstellen des Backups hat ~30 Minuten gedauert, da kann doch das Importieren nicht Jahre brauchen? Verhalten ist somit dasselbe wie beim Import via PGAdmin

Auf dem ersten Blick sehe ich keine Fehler. Falls die Maschine genug Power (Kerne) hat, kannst Du ja noch -j mitgeben, mit etwa der Anzahl Kerne, die Du hast bzw. belasten willst. Dann läuft das nicht nur auf einem Kern so wie jetzt. Was exakt meinst Du mit 0-3% Rechenlast? Windows-System? Was macht die Platte?

Hab das jetzt nochmal mit -j 4 gestartet.

Setze Windows 7 64 bit ein, wobei das System wo die Daten in die Datenbank eingetragen werden 32 bit Architektur hat. Laut Doku soll das aber egal sein, wenn man pg_dump einsetzt :confused: ?

Ich sehe in pgAdmin auch, dass die Datenbank mit Schemata korrekt angelegt wird, nur das Eintragen der Daten scheint nicht zu passieren? Kann ich zusätzliche Ausgaben erzwingen? Das Festplattenlämpchen blinkt dann und wann mal

Steht was im Log von PG?

Also soweit ich das Beurteilen kann bringen mehrere threads was bei mehreren Tabellen. Im konkreten Fall waren zwei Tabellen tatsächlich fertig gefüllt (das war bei einem Thread nicht so) während die dritte gelockt war (dort ist der Löwenanteil mit >40 Mil. Einträgen drin. Gelockt heißt pgadmin konnte nicht darauf zugreifen). Ich meine es hat jetzt geklappt, nachdem ich das einfach mal ~30-45 Minuten hab laufen lassen. pgadmin “frischt gerade die Daten” in der großen Tabelle auf, mal schauen…


// jo hat geklappt. Also einfach geduldig sein, aber mit den obigen Befehlen geht es definitiv