forum.bitel.ru http://forum.bitel.ru/ |
|
Сломалась таблица в innodb БД. Решение http://forum.bitel.ru/viewtopic.php?f=25&t=2449 |
Страница 1 из 1 |
Автор: | Akhmat [ 17 июн 2009, 09:25 ] |
Заголовок сообщения: | Сломалась таблица в innodb БД. Решение |
Сломалась табличка у меня в innodb БД (одна из session_detail_ модуля диалап), и при обращении к ней база падала. Способы CHECK TABLE, REPAIR TABLE, mysqlcheck, и т.д не помогли, падала БД. REPAIR TABLE вообще не лечит innodb таблицы. Решил следующим образом: . Код: CREATE TABLE <table_new> LIKE <crashed_table>; INSERT INTO <table_new> SELECT * FROM <crashed_table>; Если данные заполнились успешно, то сразу переименовываем, и все ок. Код: ALTER TABLE <crashed_table> RENAME TO <crashed_table_old>; ALTER TABLE <table_new> RENAME TO <crashed_table>; Если же при Код: INSERT INTO <table_new> SELECT * FROM <crashed_table>; падает БД, как и было у меня, то поосновательнее подходим к решению: запускаем mysql с параметром(в my.ini) Код: [mysqld]
innodb_force_recovery = 4 при этом БД перестаёт падать при обращение к этой таблице, но и перестает работать конструкция INSERT INTO table SELECT * FROM table2. Потому снимаем копию раненной таблицы(mysqldump, или сторонней программой, например mysqladministrator), и перезаливаем её, предварительно переименовав раненную таблицу, для страховки. -- Спасибо за оперативную помощь Шамилю, ООО "Бител". |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |