ich habe folgendes Problem:
ich versuche, mit dem Befehl pg_restore ein Datenbankbackup wieder einzuspielen. Das Backup wurde auf Maschine A erstellt,
und soll auf Maschine B wieder eingespielt werden.
Beide Maschinen sind baugleich, gleiche Baureihe und gleicher Softwarestand.
Bei dem Befehl
pg_restore --clean <Backupfile>
schreibt mir pg_restore eine ganze menge auf den Bildschirm. Es werden keine Fehlermeldungen und keine Warnungen ausgegeben,
in der Logdatei steht auch nichts drinnen. Wenn der Restore abgeschlossen ist, steht in der letzten Zeile: restore complete.
ein
psql -l
zeigt mir aber keine Datenbanken an. Es ist nur template0 und template1 vorhanden. Die Datenkbank test_db aber nicht.
Der User, dem die db zugeordnet sein sollte, wurde vorher mit
createuser -a <username>
erstellt.
Der betreffende User hat vollen Zugriff auf die DB.
Das OS ist ein SLES 9 und installiert ist die Software mit Versionsstand 8.0
Weis jmd. von euch einen Rat?
Dank im voraus.
Welche Inhalte sind in dem Restore enthalten? -l und -L sind da sehr gesprächig. Wird dabei eine eigene Datenbank erstellt oder werden die Daten in template1 eingespielt?
der Restore enthält eine komplette DB, die wiederhergestellt werden soll.
der Aufruf psql -l soll mir ja eig. nur zeigen, welche Datenbanken installiert sind. Wenn ich z.B. von Hand eine db mit dem createdb anlege, wird diese auch anschließend angezeigt.
Ich habe jetzt mal mit dem Befehl pg_restore --dbname=<test_db> den restore angestoßen, nachdem ich die db manuell erstellt habe.
Dabei kam unter anderem folgender Fehler:
pg_restore: [archiver (db)] could not execute query: ERROR: could not access file "$libdir/plperl": No such file or directory
Command was: CREATE FUNCTION plperl_call_handler() RETURNS language_handler
AS '$libdir/plperl', 'plperl_call_handler'
LANGUAGE c;
Kann es sein, dass Perl als Sprache noch manuell installiert werden muss, und zwar mit dem Befehl:
Die Create Anweisung ist ganz oben in den ersten Zeilen des Restore.
Es hat tatsächlich an der Sprache gelegen. Was mich nur wundert:
mit createlang habe ich die Sprache eingefügt für eine Datenbank, die ich mit dem Aufruf ./pg_restore --clean wieder lösche, aber jetzt legt er die db neu an, ohne Fehler zu erzeugen und spielt den restore dort ein.
Weis einer von euch, wo postgres die Einstellungen abspeichert, die mit createlang eingetragen werden?