Архив рубрики «mysql»
Можно проверить таблицу с помощью CHECK TABLE, например, так: check table department;
Команда CHECK TABLE работает с таблицами MylSAM и InnoDB. В результате выполнения указанной команды (если все пойдет так, как должно быть) вы должны получить примерно следующее:
I Table | Op | Msg_type | Msg_text I
+——————————— ,——- +————– +——- .———– +——————– +
I employee.department | check | status | OK |
1 row in set (0.00 sec)
Вы можете также получить в ответ фразу Table is already up to date (таблица уже удовлетворяет всем требованиям), которая означает, что все в порядке.
Получение любого другого сообщения означает наличие проблем, и в этом случае вы должны попытаться исправить таблицу. Это можно сделать с помощью команды REPAIR TABLE (если это таблица MylSAM): repair table tl;
Если восстановление выполняется (или никакого восстановления на самом деле не требуется), вы должны получить примерно такой результат:
|
Table |
1 Op |
I Msg_type |
1 Msg_text |
|
test.tl |
I repair |
I status |
I OK |
1 row in set (0.03′sec)
Если же будет получено какое-то другое сообщение, а не ОК., это значит, что команда REPAIR не сработала, и необходимо использовать более действенную программу myisamchk.
Программа myisamchk невероятно полезна и может вывести вас из некоторых весьма неприятных ситуаций, в которых вы можете оказаться. Но не забывайте о том, что не следует использовать программу myisamchk при работающем сервере. С точки зрения безопасности сервер лучше остановить.
Проще всего вызвать myisamchk с помощью ввода команды myisamchk таблица
в командной строке.
Здесь таблица должна указывать путь к файлу . MYI, представляющему таблицу MylSAM.
Выполнение указанной команды сообщит вам практически о всех ошибках. Если и это, как вам покажется, не поможет решить проблему, можно попытаться запустить команду с переключателем -т. По умолчанию команда ищет ошибки в индексах, а с указанным переключателем сканируются также и строки.
С помощью myisamchk можно также исправить ошибки. Таким образом можно исправить большинство ошибок таблиц MylSAM, с которыми вы столкнетесь. Для быстрого восстановления можно вызвать программу myisamchk с опциями -q -г: myisamchk -q -г таблица
Если это не сработает, можно сделать резервную копию данных, а затем попробовать выполнить полное восстановление:
myisamchk -г таблица
Если и это не поможет, можно попытаться применить опцию —safe-recover которая может исправить некоторые ошибки, не исправленные опцией -г:
myisamchk —safe-recover таблица
Программа myisamchk имеет большое число опций, список которых можно получить, набрав myisamchk в командной строке без параметров.
Программа mysqlcheck может использоваться для проверки таблиц MylSAM и IrmoDB, а также для исправления таблиц MylSAM лри работающем сервере.
Чтобы проверить таблицы базы данных с помощью mysqlcheck, можно использовать следующую команду:
mysqlcheck -и имя_пользователя -р employee
Можно указать и список таблиц, которые необходимо проверить, но по умолчанию программа проверит все таблицы указанной базы данных (очень удобная возможность). Если все в порядке, вы увидите нечто подобное следующему:
employee.assignment OK
employee.client OK
employee.department OK
employee.employee OK
employee.employeeSkills OK
Можно также использовать переключатель —databases, позволяющий указать список баз данных для проверки, или опцию —all-databases, чтобы проверить все базы данных данного сервера.
Можно использовать программу mysqlcheck с опцией -г, чтобы исправить испорченные таблицы MylSAM, если таковые будут обнаружены.
Резервирование
■ Сценарий mysqldump создает файл дампа операторов SQL.
■ Сценарий mysqlhotcopy копирует файлы данных в указанное место.
■ Команда BACKUP TABLE копирует файл данных таблицы в указанное место.
■ Можно выполнить резервное копирование данных вручную, сначала сохранив данные буфера таблиц на диске и заблокировав таблицы, а затем непосредственно скопировав соответствующие файлы.
Восстановление
■ Загрузка файлов дампа, полученных с помощью сценария mysqldump.
■ Загрузка файлов копий данных, полученных с помощью сценария mysqlhotcopy или резервного копирования вручную.
■ Восстановление с помощью команды RESTORE TABLE данных, полученных с помощью команды BACKUP TABLE.
■ Повторное выполнение операций из журнала двоичной регистрации, начиная с момента последнего резервирования.
Проверка и восстановление таблиц
■ Проверка таблиц с помощью CHECK TABLE, myisamchk, isamchk или mysqlcheck.
■ Восстановление таблиц с помощью REPAIR TABLE, myisamchk, isamchk или mysqlcheck.
■ He следует применять программу myisamchk при работающем сервере.