Error: Table ‘A’ is marked as crashed and should be repaired when dumping table ‘A’ at row ..
Наверное каждый однажды видел подобные ошибки в отчетах программ обслуживающих базы MySQL.
Я собирался переустановить сервер баз данных при обновлении сервера, и делая ручную резервную копию своих баз:
/usr/bin/mysqldump -u mysqladmin —password=mysqladminpassword —all-databases —skip-lock-tables > /home/backups/mysqldump/allmysqldbs-`date +%d`-manual.sql
получил такую ошибку:
Error: Couldn't read status information for table ....... () mysqldump: Couldn't execute 'show create table `.......`': Table '..............' doesn't exist ()
Попытался исправить одну таблицу:
/usr/bin/mysql -u mysqladmin —password=mysqladminpassword
mysql>use mydbname;
mysql>repair table mydbname_tablename;
таблицу исправил, снова стал делать резервную копию, оказалось несколько таблиц помечены как поломанные.. сделаю восстановление всей базы:
mysql>repair database mydbname;
mysql>exit;
эту базу восстановил, но похоже мне повезло, покорежены десятки баз.
расстраиваться рано, есть чуденые утилиты, не только восстанавливающие, и оптимизирующие базы:
mysqlcheck -Aor
Ну вот теперь мои базы в полном порядке. Резервная копия создалась успешно.
mysqlcheck -A — проверить все базы mysql
mysqlcheck -r — восстановить все битые базы mysql
mysqlcheck -o — оптимизировать все базы mysql
mysqlcheck —help