7.6.5 Настройка расписания обслуживания таблиц MyISAM
Рекомендуется регулярно проверять таблицы, а не ждать возникновения проблем. Один из способов проверки и восстановления MyISAM таблиц — использование команд CHECK TABLE и REPAIR TABLE. См. Раздел 13.7.2, «Команды обслуживания таблиц».
Другой способ проверки таблиц — использование myisamchk. Для целей обслуживания вы можете использовать myisamchk -s. Опция -s (сокращение от --silent) заставляет myisamchk работать в бесшумном режиме, выводя сообщения только при возникновении ошибок.
Также рекомендуется включить автоматическую проверку MyISAM таблиц. Например, всякий раз, когда машина перезагружается во время обновления, обычно необходимо проверить каждую таблицу, которая могла быть затронута, прежде чем использовать её дальше. (Это «ожидаемые аварийные таблицы».) Чтобы заставить сервер автоматически проверять MyISAM таблицы, запустите его с установленной системной переменной myisam_recover_options. См. Раздел 5.1.7, «Системные переменные сервера».
Вы также должны регулярно проверять таблицы во время нормальной работы системы. Например, вы можете запустить задачу cron для проверки важных таблиц раз в неделю, используя строку в файле crontab:
35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI
Это выводит информацию об аварийных таблицах, чтобы вы могли их проверить и восстановить при необходимости.
Для начала запустите myisamchk -s каждую ночь для всех таблиц, которые были обновлены в течение последних 24 часов. По мере того, как вы видите, что проблемы возникают редко, вы можете уменьшить частоту проверки до одного раза в неделю или около того.
Как правило, таблицам MySQL требуется мало обслуживания. Если вы выполняете много обновлений MyISAM таблиц с динамически изменяемыми строками (таблицы с VARCHAR, BLOB или TEXT столбцами) или у вас есть таблицы со многими удалёнными строками, вам может потребоваться время от времени дефрагментировать/освободить место в таблицах. Вы можете сделать это, используя OPTIMIZE TABLE для соответствующих таблиц. В качестве альтернативы, если вы можете на время остановить сервер mysqld, измените расположение в каталог данных и используйте эту команду, пока сервер остановлен:
$> myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI
© 2025 Oracle
Licensed under the GPLv2 License.