Як відновити таблиці mysql, блог про веб програмуванні

Буває, що файли даних MySQL руйнуються і вимагають відновлення. Найпростіше перевірити цілісність таблиці шляхом виконання команди

CHECK TABLE messages;

Цей вислів перевірить наявність помилок в таблиці messages. Якщо вихідні дані виглядають подібно наведеним нижче, значить, таблиця в порядку, і дії по її відновленню виконувати не потрібно.

У деяких випадках в стовпці Msg_text з'являються повідомлення про помилки. В цьому випадку треба виконати команду REPAIR TABLE. і MySQL зробить спробу усунути проблему.

Утиліта myisamchk. поставляється з MySQL, дозволяє перевіряти і відновлювати таблиці MyISAM, забезпечуючи при цьому більш високу ступінь гнучкості в порівнянні з командами SQL. Якщо при запуску myisamchk не вказані опції, дана програма лише перевіряє таблицю на наявність помилок. Ряд опцій командного рядка дозволяють отримати додаткову інформацію або вказати утиліті на те, що необхідно почати процес відновлення даних.

Файли з таблицями MyISAM, перевіряються утилітою myisamchk. знаходяться в каталозі, призначеному для зберігання даних, і мають розширення .MYI. Якщо дані розміщені в каталозі / var / lib / mysql. ви можете перевірити всі таблиці в базі forum за допомогою команди:

Як правило, для швидкої перевірки використовується опція -fast. Вона вказує на те, що перевірці підлягають лише ті таблиці, які були закриті не коректно.

Опція -medium-check задає більш детальну перевірку таблиць, при якій можуть бути знайдені різноманітні помилки. Сама ретельна перевірка здійснюється при вказівці опції -extend-check. але вона виконується дуже повільно. Дана опція використовується тільки в тому випадку, якщо -medium-check не дозволяє виявити проблему.

Після того, як ви з'ясували, що таблиця зруйнована, можна приступити до її відновлення. Для цієї мети служить опція -recover. Перед тим як намагатися відновити таблицю за допомогою myisamchk. вам треба зупинити mysqld. Якщо сервер вносить запис до таблицю в той час, коли здійснюються дії по її відновленню, результати можуть бути непередбачуваними.

У деяких випадках програма myisamchk повідомляє про те, що в даному режимі вона не може усунути проблему, і вам необхідно задати опцію -safe-recover. При вказівці цієї опції здійснюються додаткові операції по відновленню даних, але робота істотно сповільнюється.