MariaDB Absturz: Tabelle existiert nicht in Motor && können nicht wiederherstellen von Tabellen
Ich bin mit:
MariaDB 10.0.5
Ubuntu 12.04 LTS
Both up to the latest patch level as per last Friday
Habe ich bekommen, in ganz eine Gurke mit einem letzten Ausgabe:
http://stackoverflow.com/questions/19910996/mysql-connect-headers-and-client-library-minor-version-mismatch-library10000
Dies führte zu massiver Korruption, weil ich kopiert & entfernt, meine ibdata1, ib_logfile0 und ib_logfile1, um es zu lösen ein symptom der oben genannten problem. Dieses Problem begann, ich denke, wenn ich nächste Schritte die mariadb-service. Wenn ich versuche, wählen Sie eine der betroffenen Tabellen oder führen Sie einen mysqldump bekomme ich die folgende:
mysqldump -u backupusr -p'somepass' --all-databases > dump.sql
mysqldump: Got error: 1932: "Table 'some_db.dw_commentmeta' doesn't exist in engine" when using LOCK TABLES
Zum Glück (EXTREM zum Glück) die Daten zu meinem großen Produktion client-Seite ist noch intakt und die Website online ist. Obwohl es mindestens eine korrupte Tabelle, die DB zu. Jetzt wieder alle meine anderen Webseiten und Datenbanken.
Ich habe noch die original ibdata1, ib_logfile0 und ib_logfile1-Dateien. Wenn ich mich bewege, diese Dateien wieder nach /var/lib/mysql/mariaDB-Dienst nicht gestartet werden.
Eines der Dinge, die ich ausprobiert habe, ist das erzwingen einer InnoDB-Wiederherstellung pro:
http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html
Aber das hat keine Wirkung. Nach, dass ich versuchte, Kraft-Verwendung des Mysql-upgrade-tool, um zu sehen, ob es könnte die Reparatur der Tische:
mysql_upgrade --password --force
FATAL ERROR: Upgrade failed
So, dass nicht mir nichts sagen. Als Nächstes habe ich die REPAIR TABLE & ALTER TABLE-ENGINE-Befehle:
http://dev.mysql.com/doc/refman/5.0/en/rebuilding-tables.html
Alter Motor:
MariaDB [sictnl_db]> ALTER TABLE si_users ENGINE = MyISAM;
ERROR 1932 (42S02): Table 'sictnl_db.si_users' doesn't exist in engine
reparieren Tabelle:
MariaDB [sictnl_db]> REPAIR TABLE si_users;
+--------------------+--------+----------+----------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+--------------------+--------+----------+----------------------------------------------------+
| sictnl_db.si_users | repair | Error | Table 'sictnl_db.si_users' doesn't exist in engine |
| sictnl_db.si_users | repair | status | Operation failed |
+--------------------+--------+----------+----------------------------------------------------+
2 rows in set (0.00 sec)
Damit diese alle kocht nach unten zu bekommen, die Informationen der Tabelle zurück in den Motor Tabellen. Die Dokumentation https://mariadb.com/kb/en/mariadb-storage-engines/ erklärt, dass es zwei Speicher-engines die ich verwende per default:
Aria
MyISAM
Wenn performaning die SHOW CREATE TABLE-Funktion auf einer der unbeschädigten Tabellen bekomme ich die folgende:
ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |
So MyISAM ist es ' googeln 'mysql Reparatur von myisam' führt mich zu der folgenden Website:
Note: Would Aria have protected me against this issue?
http://dev.mysql.com/doc/refman/5.0/en/myisamchk.html
Dadurch ergibt sich mir die myisamchk-Befehl, der muss ausgerichtet werden, um die lokale Speicherung der Tabellen in etwa so:
myisamchk /var/lib/mysql/sictnl_db/*
myisamchk: error: '/var/lib/mysql/sictnl_db/db.opt' is not a MyISAM-table
---------
myisamchk: error: '/var/lib/mysql/sictnl_db/si_commentmeta.frm' is not a MyISAM-table
---------
myisamchk: error: '/var/lib/mysql/sictnl_db/si_commentmeta.ibd' is not a MyISAM-table
Also das tool scheint zu fehlen .MYI-Dateien, aber diese Dateien nicht vorhanden sind in der shell.
Ich bin dieses posting nun zu sehen, ob Sie haben jede hilfreiche Bemerkung, Krank weiter meiner Analyse in der mittleren Zeit und den Beitrag aktualisieren, sollte ich weitere.
Vielen Dank im Voraus!
InformationsquelleAutor SonicFC | 2013-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Am Ende war ich nicht in der Lage sich zu erholen die oben genannten server. Ich habe versucht, das deaktivieren einer site um zu verhindern, dass DB-Zugriff von beschädigten Tabellen. Am Ende einer DB enthalten sind das Problem und deaktiviert die Webseite mariadb nicht zum Absturz mehr.
Sicher sein, ich extrahierten Daten in der Datenbank und begann auf einem neuen server. Das war vor etwa 5 Stunden Arbeit, aber danach bin ich zuversichtlich, dass in meinem setup noch einmal.
Habe ich begonnen, die Arbeit an der Wiederherstellung eines alten Backups der Daten beschädigt, ich habe auch wieder umgestellt von MariaDB zu Mysql, wie ich vermute, MariaDB, der Schuldige ist.
Also backups gespeichert mein Tag hier...
InformationsquelleAutor SonicFC