Збої в роботі сервера MySQL як правило можуть залишати за собою хвіст проблем, які починають виявлятися поступово, виливаючись у кінцевому підсумку проблеми з таблицями. Характерні ознаки при наявності помилок в таблицях бази даних можуть бути абсолютно різні, найбільш популярні з них це:

— Процес mysqld вантажить процесор по повній;
— Значне гальмування при зверненні до проблемної таблиці, як правило, проявляється на роботі сайту в певних місцях (там, де відбувається звернення до таблиці);
— Сайт відлітає в довгі думи з-за довгого відповіді сервера MySQL;
— Гальмування при зверненні до будь-якої таблиці;
— Падіння процесу mysqld;
— Та мабуть, найяскравіший ознака проблеми з таблицями бази даних, це виникнення такої помилки при старті: ERROR 144 (HY000) at line 1: Table ‘./dataBase/table’ is marked as crashed and last (automatic?) repair failed;

Тепер приступимо до вирішення проблеми. Гарантії 100% відновлення таблиць бази даних після збою бути не може, і це потрібно розуміти і бути готовим до такого розкладу. Однак є рішення, які в значній мірі можуть виправити ситуацію, а бути може і виправдати покладені на них надії, загалом, справа випадку.

Для перевірки і відновлення таблиць MyISAM в MySQL є утиліта myisamchk, яку можна використовувати для отримання інформації про таблицях бази даних і оптимізації. Якщо говорити про оптимізацію, то для більшості випадків можна також скористатися командою OPTIMIZE TABLES, є нюанси, цей варіант не такий швидкий, і не такий надійний (у разі фатальних помилок) як myisamchk. Виправлення помилок за допомогою myisamchk досить безпечно, але зробити резервну копію все-таки варто, оскільки в таблицю можуть бути внесені значні зміни.

Зупиніть сервер MySQL перед перевіркою таблиць:

/etc/init.d/mysql stop

Для старту перевірки і відновлення таблиць MySQL виконуємо таку команду:

myisamchk -r -q /var/lib/mysql/dataBase/table

де dataBase – ім’я бази даних, table – файл даних таблиці

Зверніть увагу, що таблиці типу MyISAM містяться у файлах, які мають розширення *.MYI і *.MYD. Після вводу команди, у вікні консолі будуть показані результати роботи і виправлення пошкоджених індексів перевіряється таблиці. Приклад:

– check delete record-chain
– recovering (with sort) MyISAM-table ‘dataBase/table’
Data records: 0
– Fixing index 1
– Fixing index 2
– Fixing index 4
Data records: 12422111

Після закінчення перевірки і виправлення помилок, можна пробувати стартувати сервер MySQL.

/etc/init.d/mysql start
Додав: htmaker, 03.12.2014 р.
(Ще не оцінили)

Завантаження…

Діліться з друзями:

См. також:


Оновлення пакетів в CentOS
Рубрика: Linux

Bash: mail: command not found
Рубрика: Linux

Виставляємо тимчасову зону в CentOS 7
Рубрика: Linux

Налаштування SELinux, включення, відключення
Рубрика: Linux, Інф. безпека

Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL

Установка і настройка mSMTP на Linux
Рубрика: Linux

Установка GIT на CentOS 7
Рубрика: Linux

Як відключити IPv6 в CentOS 7?
Рубрика: Linux

Ротація логів в Linux
Рубрика: Apache, Linux