View reihenfolge in Backupfile

View reihenfolge in Backupfile

am 11.12.2006 10:49:47 von Stephan Menzel

Hallo,

ich habe mir ein Backup von meiner Datenbank erzeugt, bin dann aber
beim Restore über einige Unstimmigkeiten gestolpert!
Ich weiss nicht ob man es beheben kann wenn man eine MySql variable
setzt, nur weiss ich dann nicht welche!
Also das Problem ist, dass wenn ich in dem Backupfile meine View's
mit gesichert habe, der MySqlAdministrator beim Restoremekert, das die
Tabelle nicht existiert und das deshalb Abbricht!
Es liegt ganz einfach daran das ich in einem View auf ein anderes
zugreife, das aber zu dem Zeitpunkt wenn die Rücksicherung erfolgt
erst weiter hinten in dem Backupfile steht!
Kann man diesbezüglich eine Variable setzen, das das nicht überprüft
wird?

cu Stephan

cu Stephan

Re: View reihenfolge in Backupfile

am 11.12.2006 11:19:32 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: View reihenfolge in Backupfile

am 11.12.2006 11:55:46 von Axel Schwenke

Stephan Menzel wrote:
>
> ich habe mir ein Backup von meiner Datenbank erzeugt, bin dann aber
> beim Restore über einige Unstimmigkeiten gestolpert!

Und *wie* hast du das Backup erzeugt? mysqldump hat einen workaround
eingebaut - es erzeugt zu Beginn für jede VIEW eine Dummy-Tabelle und
ersetzt die dann sukzessive durch die richtigen VIEWs.

Wenn dein mysqldump oder Administrator zu alt ist, dann kann es das
natürlich noch nicht.

> Ich weiss nicht ob man es beheben kann wenn man eine MySql variable
> setzt, nur weiss ich dann nicht welche!

Kann man nicht. Nimm einen Editor deiner Wahl und editiere deinen
Dump, so daß abhängige Objekte nach hinten kommen.

Für FK-Constraints habe ich das mal in Perl automatisiert [1].
Zumindest für nichtentartete Fälle (kreisfreie Referenz-Graphen)
ist das trivial. Bei Views ist das gegeben.


[1] http://24days.de/~schwenke/MySQL/mysql-restore.pl
Funktion innodump_sort()

XL