Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12936|Відповідь: 0

[Джерело] Навчу вас користуватися Myisamchk для відновлення після збоїв MySQL

[Копіювати посилання]
Опубліковано 15.11.2017 13:23:05 | | |

"tbl_name.frm" table definition (table) file "tbl_name. MYD " Файл даних "tbl_name. індекс-файл MYI"
Кожен із цих трьох типів файлів може страждати від різних форм пошкодження, але найчастіше проблема виникає у файлах даних та індексних файлах.
myisamchk створює ". Для роботи файлу MYD" (data) він працює шляхом видалення старого ". MYD і перейменуйте новий файл на оригінальне ім'я, щоб завершити фазу відновлення. Якщо ви використовуєте --швидко, myisamchk не створює тимчасового ". MYD" — просто припускаю". MYD" файл правильний і створює лише новий індексний файл, не торкаючись". MYD", що безпечно, бо myisamchk автоматично визначає". MYD" файл пошкоджений, і в цьому випадку слід припинити ремонт. Ви також можете дати myisamchk два — швидкі варіанти. У цьому випадку myisamchk не відмовляється від деяких помилок (наприклад, повторюваних клавіш), а натомість намагається змінити ". MYD" для їх вирішення. Зазвичай це корисно лише якщо ви реалізуєте звичайне виправлення на занадто малому вільному місці на диску, використовуючи два --швидкі опції. У такому випадку варто хоча б зробити резервну копію перед запуском myisamchk.
1. Як перевірити помилки в таблиці
Щоб перевірити таблицю, скористайтеся наступною командою:
myisamchk tbl_name
Це фіксує 99,99% усіх помилок. Те, чого він не може з'ясувати, — це те, що пошкодження пов'язане лише з файлами даних (що трапляється рідко). Якщо хочете перевірити таблицю, зазвичай слід запускати myisamchk без цієї опції або використовувати будь-яку з -s чи ---беззвучних опцій.
myisamchk -e tbl_name
Він виконує повністю ретельну перевірку даних (-e означає «розширена перевірка»). Він виконує перевірку читання по клавіші на кожному рядку, щоб переконатися, що вони вказують на правильний рядок. Це може зайняти багато часу на великому столі з багатьма клавішами. Myisamchk зазвичай зупиняється після того, як знаходить першу помилку. Якщо хочете більше інформації, можете додати опцію --verbose(-v). Це дозволяє myisamchk тривати до максимуму 20 помилок. У загальному використанні достатньо простого myisamchk (без аргументів, окрім назви таблиці).
myisamchk -e -i tbl_name
Як і попередня команда, але опція -i підказує myisamchk також вивести деякі статистичні дані.
2. Як відремонтувати стіл
Симптомом пошкодженої таблиці зазвичай є несподіваний розрив запиту, і ви можете побачити, наприклад, такі помилки:
"tbl_name.frm" заблоковано і не може бути змінене.
Не вдається знайти файл "tbl_name. MYI"(Errcode :### )。
Отримайте помилку ### від процесора таблиці (у цьому випадку помилка 135 є винятком).
Несподіваний кінець файлу.
Файли записів були знищені.
У таких випадках потрібно підготувати стіл. Myisamchk зазвичай виявляє і виправляє більшість проблем.
Процес ремонту складається з до 4 етапів, описаних нижче. Перед початком слід зафіксувати дозволи на каталог бази даних і контрольний список файлів, щоб переконатися, що вони читаються користувачами Unix, які працюють на mysqld (і вам, оскільки вам потрібен доступ до файлу, який ви перевіряєте). Якщо він відмовляється змінювати файл, вони також мають бути доступні для запису на вашу адресу.
Етап 1: Перевірте свій стіл
Біжи
myisamchk *. MYI
або (myisamchk -e *. MYI, якщо маєш більше часу). Використовуйте опцію -s (тиша), щоб вимкнути зайву інформацію.

Формат файлу, який MySQL використовує для зберігання даних, був ретельно протестований, але завжди існують зовнішні умови, які можуть призвести до пошкодження таблиць баз даних:
Процес mysqld зупиняється за один запис; Несподіване вимкнення комп'ютера (наприклад, якщо комп'ютер втрачає живлення); апаратна помилка.
У цьому розділі описано, як перевіряти та обробляти пошкодження даних у базі даних MySQL. Якщо ваш стіл сильно пошкоджений, спробуйте з'ясувати чому! Див. G.1 Налагодження сервера MySQL.
Під час відновлення після збоїв важливо розуміти, що кожна таблиця в базі даних tbl_name відповідає трьом файлам у каталозі бази даних




Попередній:mysql #1062 – Дублікат запису '1' для клавіші 'PRIMARY'
Наступний:MySQL переглядає SQL-оператори, які виконуються в реальному часі
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com