Проблемы в работе mysqld. MySQL "раняет" таблицы.

Acraft

Новичок
Проблемы в работе mysqld. MySQL "раняет" таблицы.

Здравствуйте. Неожиданно появился трабл с работой MySQL сервера на Linux - машине.
При просмотре времени работы сервера частенько видно, что демон (mysqld) перезагружался.
Перед этим было видно, что сервак тормозит, а загрузка CPU и памяти зашкаливают (хотя бывало и так, что CPU в норме, а вот память используется на 90% (от 2 гигов). 'top' показывает что активен в этот момент только mysqld .

После чего mysqld.log начинает пестрить записями:

read_key: Got error 134 when reading table 'DB.table_name'
read_key: Got error 126 when reading table 'DB.table_name'

(126 = Index file is crashed
134 = Record was already deleted (or record file crashed))

REPAIR поврежденных таблицы выполнить не удается. Т.е. она иногда 'репэирится', иногда нет. Чаще приходится доставать старые резервные копии таблиц и переписывать их вместо поврежденных. Выполняешь REPAIR и таблица снова в строю. Но иногда таблицы вылетают одна за другой буквально следом за вышеописанной операцией. Версия MySQL 4.0.18 (обновлять боятся, все и так на ладан дышит).

Ссылка http://dev.mysql.com/doc/refman/4.1/en/crashing.html и иже рядом изучена до дыр, но ответа не найдено.

p.s. Вылетают всегда одни и те же таблицы в разных базах. Размеры таблиц большие - от 500 000 до 4 000 000 записей.

p.s.2:
Пытался анализировать красные значения статуса MySQL-сервера (phpMyAdmin).
Вот почти все из них и моя трактовка того что нужно "подкрутить" на сервере. К сожалению не уверен что всё это можно изменить с помощью my.cnf

Хотел бы услышать комментарии по этой ситуации. Может быть кто-то сталкивался с такой проблемой.

Slow_queries 18
//нужно перезапустить mysql c ключем --log-show-queries, чтобы посмотреть какие именно запросы выполняются медленно.

Handler_read_rnd 349 k
//много запросов требующих сортировки результат
Много запросов, которые трубуют просмотра целой таблицы или проблемы индексирования

Handler_read_rnd_next 2 G !!!!!!!!!!!!!!
//много просмотров таблиц. Проблемы индексирования таблиц

Created_tmp_disk_tables 97
//количество временных таблиц на диске
можно увеличить tmp_table_size
(сейчас tmp_table_size = 33554432;)

Key_reads 842 k
//можно увеличить key_buffer_size
(сейчас tmp_table_size = 16777216;)

Select_full_join 71 !!!!!!!!!!!!!!!!!!!
//Число соединений, которые не используют индексы. Если это значение не 0, нужно тщательно проверить индексы таблиц.

Table_locks_waited 72 !!!!!!!!!!!!!!!!!!!
//число неудачных попыток немедленного закрытия таблиц.
НЕОБХОДИМО оптимизировать запросы и разбить таблицы

Opened_tables 18 k
//число открытых таблиц. Кэш таблиц слишком маленький.
(сейчас table_cache = 64;)

p.s.1: жесткий диск сервера проверяли, там все ОК.
P.S.2: И ЕЩЕ, МОЖНО ЛИ КАК-НИТЬ СДЕЛАТЬ ТАК, ЧТОБЫ ПРИ ПЕРЕЗАГРУЗКЕ mYsql НА E-MAIL ОТСЫЛАЛОСЬ СООБЩЕНИЕ О ТОМ, ЧТО ДЕМОН ПЕРЕЗАГРУЗИЛСЯ?
 

Апельсин

Оранжевое создание
проверь память, это самое первое
а так сидеть и разбираться .. долго и нудно.

Что значит иногда не 'репэирится'? Что при этом говорит.
 
Сверху