2012-03-26 12 views
1

Ist es möglich, eine MySQL-Datenbank aus ihren Dateien zu duplizieren? [Ich weiß, dass mysqldump die beste Methode ist, um eine db zu duplizieren, aber das ist nicht möglich, da wir nur die gesicherten Dateien aus dem mysql-Ordner haben].MySQL aus Dateien wiederherstellen (ohne Dump)

Wir haben die ibdata1-Datei, die ib_log * -Dateien und die vollständigen Verzeichnisse für die drei db's, die wir aus den gesicherten Dateien wiederherstellen wollen (Ordner scheinen alle benötigten frm- und par-Dateien zu enthalten). Offensichtlich schon versucht, nur alle Dateien in/var/lib/mysql zu kopieren, und obwohl es schien, dass die Struktur intakt war, waren Versuche, auf die Daten zuzugreifen, nicht erfolgreich.

dh show databases werden die DBs zeigen, use dbname Werke und show tables zeigt richtig die Tabellen, aber wenn die Daten aus [jeder] Tabelle zuzugreifen versuchen (über Abfrage) es sagt ERROR 1146 (42S02): Table ‚dbname. dbtable 'existiert nicht - trotz mysql, der uns glücklich gezeigt hat, existiert die Tabelle, als wir Tabellen zeigten.

Es sollte auch darauf hingewiesen werden, dass der Dienst gestoppt wurde, bevor Dateien und alle Dateien kopiert wurden, die mysql als Eigentümer haben, und dann der Dienst neu gestartet wurde, bevor versucht wurde, auf die Daten zuzugreifen.

+0

Haben Sie Fehler in den MySQL-Serverprotokollen? InnoDB kann ziemlich knifflig sein, um Daten wiederherzustellen. Sie müssen mindestens sicherstellen, dass die Serverkonfigurationen für die wichtigen Variablen wie InnoDB-Protokolldateigröße usw. übereinstimmen. – KernelM

+0

Error it gives is: 120326 10:07:18 [FEHLER] Die Tabelle dbname/tablename kann nicht von aus gefunden oder geöffnet werden Internes Datenwörterbuch von InnoDB obwohl die .frm-Datei für die Tabelle existiert. Vielleicht haben Sie InnoDB-Daten Dateien gelöscht und neu erstellt, aber vergessen, die entsprechenden .frm-Dateien von InnoDB-Tabellen zu löschen, oder Sie haben .frm-Dateien in eine andere Datenbank verschoben? oder die Tabelle enthält Indizes, die diese Version der Engine nicht unterstützt. Aber es sieht so aus, als ob Jaydee einen Link bereitgestellt hat, der Aufschluss darüber geben könnte, wie man sich erholen kann. – Exupery

Antwort

1

Um Ihre Frage indirekt zu beantworten, finden Sie hier einige Informationen zum Einrichten der Replikation mithilfe einer Raw-Dateikopie. Also ich denke die Antwort ist möglicherweise ja, aber es kann abhängen.

http://dev.mysql.com/doc/refman/5.0/en/replication-howto-rawdata.html

wollen nicht zu Ihrem aktuellen Schmerz hinzuzufügen, aber waren Sie auf einem Backup angewiesen, die Sie nie/versucht haben, wissen nicht, wie wiederherstellen?

+0

Der Link sieht hilfreich aus, danke. Was den Backup-Plan betrifft, wollte ich meine Frage nicht mit unnötiger Hintergrundgeschichte überladen. Ich benutze mysqldump regelmäßig ... um eine lange Geschichte kurz zu machen diese db in Frage hatte keine letzten Dump wegen menschlichem Fehler, aber wir haben eine vollständige DD des Laufwerks vor dem Abwischen. – Exupery

+0

Also verwenden Sie genau die gleichen MySQL- und InnoDB-Versionen sowie Konfigurationsdateien? – KernelM

+0

Ok, das erklärt es. Viel Glück bei der Genesung. – Jaydee

Verwandte Themen