Резюме: В тази публикация ще обсъдим някои от най-добрите начини за поправяне на повредена таблица на InnoDB в MySQL, която може да се повреди поради хардуерна повреда, срив на MySQL Server и други причини. Тези начини включват поетапна процедура за поправяне на повредена таблица InnoDB ръчно или чрез използване на софтуер за ремонт на MySQL.
Започвайки от версия на MySQL 5.5, InnoDB се използва като машина за съхранение по подразбиране за всички нови таблици в база данни на MySQL. Страхотното при InnoDB е, че поддържа възстановяване при срив. По този начин той не може да се повреди лесно, но когато се случи, това може да се случи поради срив на MySQL Server след рестартиране, хардуерна повреда или грешки в основната платформа и т.н.
Когато таблица на InnoDB се повреди, данните в нея стават нечетими и недостъпни. И опит за четене от повредена таблица може да доведе до срив на MySQL сървъра.
Как да поправя повредена таблица InnoDB в MySQL?
Забележка: Преди да се опитате да поправите повредената таблица на InnoDB, уверете се, че първо сте архивирали вашите MySQL файлове с база данни.
Следват начините, чрез които можете да поправите повредена таблица с база данни InnoDB
1. Ръчно коригиране на повредена таблица InnoDB
Рядко ще се налага да поправяте InnoDB таблици, тъй като механизмът за съхранение помага да се извърши възстановяване при срив, което може да реши повечето проблеми, след като сървърът се рестартира. Въпреки това, може да възникне ситуация, в която ще трябва ръчно да възстановите или поправите повредена таблица. Ето как можете да го направите:
Стъпка 1:Рестартирайте услугата MySQL
Рестартирайте услугата MySQL, за да проверите дали имате достъп до сървъра, като изпълните следното:
- Отворете прозореца Run, като щракнете върху „Windows+R“ ключовете заедно.
- Въведете msc и натиснете Enter .
- От Услугите прозорец, потърсете услугата MySQL и щракнете с десния бутон върху нея, след което щракнете върху рестартиране .
Ако сървърът е достъпен, преминете към стъпка 3. Но ако не стартира или продължи да се срива, използвайте опцията innodb_force_recovery, обяснена в следващата стъпка.
Стъпка 2:Принудително възстановяване на InnoDB
Активирайте innodb_force_recovery опция в конфигурационния файл MySQL my.cnf за възстановяване на достъпа до базата данни MySQL и нейната повредена таблица. За да направите това, изпълнете следните стъпки:
- Отворете my.cnf файла и добавете следния ред код в секцията [mysqld]:
[mysqld] Innodb_force_recovery=1
- Запазете и затворете конфигурационния файл.
- Опитайте отново да рестартирате услугата MySQL.
Стъпка 3:Изхвърлете повредената таблица
След като имате достъп до повредената таблица, изхвърлете данните от таблицата в нов файл, като използвате следната команда mysqldump:
mysqldump –u user –p db_name table_name > single_dbtable_dump.sql
Забележка: Добавете името на таблицата, разделено с интервал в горната команда, за да изведете множество таблици.
Сега изхвърлете повредената таблица от базата данни:
mysql –u user –p –execute=”DROP TABLE db_name.table_name”
Стъпка 4:Възстановете таблицата
Използвайте новосъздадения dump файл, за да възстановите таблицата от дъмп файла (т.е. single_dbtable_dump):
mysql –u user –p < single_dbtable_dump.sql
Стъпка 5:Рестартирайте MySQL в нормален режим
Когато повредената таблица бъде поправена, спрете услугата MySQL и деактивирайте режима за възстановяване на InnoDB, като въведете следния ред в секцията [mysqld]:
#innodb_force_recovery=...
Сега рестартирайте услугата MySQL в нормален режим.
Забележка: Ако не сте използвали опцията innodb_force_recovery, просто спрете и рестартирайте сървъра в нормален режим.
2. Поправете повредена таблица на InnoDB, като използвате софтуер за ремонт на MySQL
Използването на стойност „innodb_force_recovery“ по-голяма от 4 за възстановяване на достъпа до базата данни може да доведе до повреда на данните. Също така, в случаи на тежка повреда, може да не успеете да рестартирате вашия MySQL сървър. Можете да преодолеете тези ограничения за ръчно поправяне на повредената таблица на базата данни MySQL, като използвате специализиран софтуер за ремонт на MySQL като Stellar Repair за MySQL.
Софтуерът може да поправя и възстановява InnoDB таблици на MySQL база данни, като запазва данните си непокътнати. Освен това помага за възстановяване на свойствата на таблицата, ключовете, ограниченията на връзката и т.н.
Тази помощна програма за ремонт на база данни MySQL помага да се поправят както InnoDB, така и MyISAM таблици, създадени в системи, базирани на Windows и Linux OS.
Стъпките за поправяне на повредена таблица InnoDB с помощта на софтуера са както следва:
- Безплатно изтегляне, инсталиране и стартиране на Stellar Repair за MySQL
- От Избор на папка с данни диалогов прозорец, изберете версията на MySQL, която използвате, и след това щракнете върху OK .
- От Избор на база данни изберете базата данни, която искате да поправите, и след това щракнете върху Поправка .
- Преглед на поправената база данни, таблица и други възстановими компоненти се показва в прозореца за предварителен преглед на софтуера.
- Изберете таблицата(ите), които искате да възстановите, и след това щракнете върху Запазване в менюто Файл.
- От Запазване на базата данни поле, изберете MySQL под Запазване като и въведете идентификационните данни, необходими за свързване със сървъра. Кликнете върху Запазване .
Можете да намерите поправения файл на база данни в нова папка на същото място, където се съхранява оригиналната ви база данни.
Можете да намерите поправения файл на база данни в нова папка на същото място, където се съхранява оригиналната ви база данни.
Заключение
Повредата в таблицата InnoDB може да направи данните в нея нечетими и ако не се справят с времето, това може дори да доведе до срив на сървъра и непланиран престой. Можете да коригирате повредената таблица на InnoDB, като следвате ръчната поетапна процедура. Въпреки това, ръчният процес за поправяне на таблици InnoDB може да доведе до загуба на данни и може да не даде очаквания резултат.
Въпреки това, като използвате инструмент за ремонт на база данни на MySQL като Stellar Repair за MySQL, можете да поправите таблици в механизма за съхранение на InnoDB и да го възстановите до първоначалното му функционално състояние. Тази помощна програма за поправка на файлове помага за ремонт на база данни MySQL, създадена както в Windows, така и в Linux OS. Той може не само да поправи InnoDB таблици, но също така може да коригира повреда в MyISAM таблици на MySQL база данни.