MariaDB crash: Table n'existe pas dans le moteur && ne peut pas récupérer les tableaux

Je suis en cours d'exécution:

MariaDB 10.0.5
Ubuntu 12.04 LTS
Both up to the latest patch level as per last Friday

J'ai eu tout à fait un cornichon avec un numéro précédent:

http://stackoverflow.com/questions/19910996/mysql-connect-headers-and-client-library-minor-version-mismatch-library10000

Cela a entraîné une corruption massive, parce que j'ai copié & supprimé mon ibdata1, ib_logfile0 et ib_logfile1 afin de résoudre un symptôme du problème ci-dessus. Ce problème a commencé, je pense, quand j'ai commencé le mariadb service. Lorsque j'essaie de sélectionner l'une des tables concernées, ou d'exécuter une commande mysqldump-je obtenir suivantes:

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

Heureusement (EXTRÊMEMENT heureusement) les données de ma grosse production site internet du client est toujours intacte et le site est en ligne. Bien qu'il y est au moins une corruption de la table dans la DB. Maintenant, pour récupérer l'ensemble de mes autres sites web bases de données.

J'ai encore l'original ibdata1, ib_logfile0 et ib_logfile1 fichiers. Lorsque je déplace ces fichiers dans /var/lib/mysql/mariaDB échec du démarrage du service.

Une des choses que j'ai essayé de forcer un InnoDB récupération par:

http://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html

Mais qui n'a pas d'effet. Après que j'ai essayé de force à l'aide de la base de données Mysql outil de mise à niveau pour voir si il peut réparer les tableaux:

mysql_upgrade --password --force
FATAL ERROR: Upgrade failed

Donc ça ne me dit rien. Ensuite, j'ai utilisé la RÉPARATION de la TABLE & ALTER TABLE MOTEUR de commandes:

http://dev.mysql.com/doc/refman/5.0/en/rebuilding-tables.html

Alter moteur:

MariaDB [sictnl_db]> ALTER TABLE si_users ENGINE = MyISAM;
ERROR 1932 (42S02): Table 'sictnl_db.si_users' doesn't exist in engine

réparer la table:

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)

Donc, cela se résume à obtenir les informations de la table de retour dans le moteur de tables. La documentation à https://mariadb.com/kb/en/mariadb-storage-engines/ états qu'il y a deux moteurs de stockage soit de qui je suis en utilisant par défaut:

Aria
MyISAM

Quand performaning le SPECTACLE de CRÉER la TABLE de la fonction sur l'un des corrompus tables-je obtenir suivantes:

ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 |

Donc MyISAM il est, googler 'mysql réparation myisam' me mène vers le site suivant:

Note: Would Aria have protected me against this issue?

http://dev.mysql.com/doc/refman/5.0/en/myisamchk.html

Cela donne-moi la commande myisamchk, qui doit être pointé vers le local de stockage des tables comme ceci:

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

Ainsi, l'outil semble être manquant .MYI fichiers, mais ces fichiers n'existent pas dans le shell.

Je poste ceci pour voir si vous avez des commentaire, je continuerai mon analyse dans le temps de le dire et de mettre à jour le post devrais-je aller plus loin.

Merci d'avance!

OriginalL'auteur SonicFC | 2013-11-12