Задавайте вопросы, мы ответим
Вы не зашли.
Решил оптимизировать базу данных, прогнал по всем таблицам repair table extended и optimize table . Затем на всякий случай решил прогнать myisamchk. И посыпались сообщения вида:
Found link that points at -3384658139882174717 (outside data file) at 16480604
Found block with too small length at 16487320; Skipped
Found link that points at 72057967096580070 (outside data file) at 16497956
Насколько это критично? Обязательно ли при таком "состоянии" базы прогонять myisamchk, или же с таблицами всё в порядке?
P.S. запуск myisamchk с ключами -ernpS , при повторном запуске появляются теже сообщения. mysqld версии 4.1.22
Отредактированно duzer (18.06.2008 13:06:39)
Неактивен
Если Вы запускали myisamchk на работающей БД, то Вы безусловно ее попортили.
Для того, чтобы восстанавливать таблицы с запущенным сервером, следует использовать
mysqlchk, который будет проверять таблицы не напрямую, а используя сам сервер.
Неактивен
Файлы таблиц после repair table extended и optimize table были скопированы с помощью mysqlhotcopy в отдельный каталог, где уже запускался myisamchk. Таблицы рабочие, данные в них есть, просто смущает вывод команды myisamchk. Хотелось бы уточнить, это сообщение о ошибках или просто предупреждение? Вообще, стоит ли производить сортировку индексов и проверку с помошью данной утилиты, или для хранилища myisam достаточно стандартных средств оптимизации mysql?
Отредактированно duzer (18.06.2008 20:02:01)
Неактивен
myisamchk делает то же самое, что команда CHECK TABLE, только непосредственно
над файлами. Очень странно, что у Вас происходит такой вывод - ошибок после
REPAIR TABLE быть не должно вообще (если, конечно, repair прошел успешно).
OPTIMIZE после REPAIR делать не нужно, одно включает другое.
Может быть, у Вас не соответствуют версии сервера и mysqlcheck? Если соответствуют -
это было бы очень хорошим сообщением об ошибке, но, боюсь, они его уже не примут:
4.1 очень устарел
Неактивен
Большое спасибо за ответ! Действительно, версии сервера и утилиты незначительно отличались .
Неактивен