Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 12936|Ответ: 0

[Источник] Научить вас использовать Myisamchk для восстановления после сбоев MySQL

[Скопировать ссылку]
Опубликовано 15.11.2017 13:23:05 | | |

"tbl_name.frm" table definition (table) file "tbl_name. MYD " Data File tbl_name. MYI" индексный файл
Каждый из этих трёх типов файлов может страдать от различных форм повреждений, но чаще всего проблема возникает в файлах данных и индексных файлах.
myisamchk создаёт ". Для работы MYD" (data) он работает путём удаления старого ". MYD и переименовать новый файл в исходное имя, чтобы завершить фазу восстановления. Если использовать --quick, 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