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 ОТСЫЛАЛОСЬ СООБЩЕНИЕ О ТОМ, ЧТО ДЕМОН ПЕРЕЗАГРУЗИЛСЯ?
Здравствуйте. Неожиданно появился трабл с работой 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 ОТСЫЛАЛОСЬ СООБЩЕНИЕ О ТОМ, ЧТО ДЕМОН ПЕРЕЗАГРУЗИЛСЯ?