Повреждение данных может происходить по самым разным причинам и значительно варьироваться по масштабам. В наилучшем случае поврежденными оказываются одна-две таблицы (например, если работа компьютера была внезапно завершена из-за отключения электричества). В наихудшем — придется восстанавливать весь каталог данных (например, если сломался и не подлежит ремонту жесткий диск). Восстановление данных может потребоваться и в некоторых других ситуациях, например, когда пользователи случайно удалят базы данных или таблицы либо сотрут их содержимое. Независимо от причин повреждения, администратору немедленно нужно выполнить процедуру восстановления.
Если таблицы не утеряны, а лишь повреждены, попытайтесь отладить их с помощью команд myisamchk и issamchk. Вполне вероятно, что проблему можно решить с их помощью, и необходимость в восстановлении файлов архивов отпадет. Процедура отладки таблиц описывается в лекции 4, "Поддержка и восстановление баз данных". Если же таблицы потеряны или не подлежат отладке, самое время приступить к их восстановлению.
Для восстановления используются два источника информации: файлы архива и журналы обновлений. Первые позволяют восстановить таблицы до состояния, в котором они были в момент выполнения резервирования. Однако зачастую таблицы значительно изменяются пользователями между моментами резервирования и сбоя. В такой ситуации эффективными оказываются журналы обновлений, содержащие все последние запросы на внесение изменений. Чтобы восстановить все эти изменения, достаточно запустить запросы журнала обновлений в mysql. (Именно по этой причине администратор должен обязательно включить регистрацию обновлений. Если она не активизирована, немедленно включите ее, и прежде чем читать далее, создайте новый архив базы данных.) Процедура восстановления может видоизменяться в зависимости от объема информации, подлежащей воссозданию. Фактически, легче восстановить всю базу данных, чем одну таблицу, поскольку в журнал обновлений заносятся запросы на изменение именно баз данных, а не таблицы.