Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySQL "роняет" таблицы, Проблемы в работе mysqld 
:(
    Опции темы
Acraft
Дата 2.7.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.4.2005

Репутация: нет
Всего: 2



Здравствуйте. Неожиданно появился трабл с работой 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.: И ЕЩЕ, МОЖНО ЛИ КАК-НИТЬ СДЕЛАТЬ ТАК, ЧТОБЫ ПРИ ПЕРЕЗАГРУЗКЕ mYsql НА E-MAIL ОТСЫЛАЛОСЬ СООБЩЕНИЕ О ТОМ, ЧТО ДЕМОН ПЕРЕЗАГРУЗИЛСЯ? 
PM MAIL   Вверх
Ignat
Дата 3.7.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Acraft, какой тип у "падающих" таблиц? 


--------------------
Теперь при чем :P
PM   Вверх
comtat
Дата 3.7.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 1
Всего: 71



Acraft не давно тоже несколько раз подряд падал мускул
и появлялись траблы с таблицами в плоть до того что *.MYI и *.MYD затерлись
на некоторых вываливалась ошибка "Файл DB.MYI существует, но не возможно получить свойства"

После проверки оказалось что начал сыпаться диск.
Прошли разделы fsck щас все в норме.. пока в норме ..  smile 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Acraft
Дата 3.7.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.4.2005

Репутация: нет
Всего: 2



to comtat: Жесткий диск уже проверяли, ошибок не было.
to Ignat :таблицы - MyISAM, большинство столбцов - varchar() 
PM MAIL   Вверх
Ignat
Дата 3.7.2006, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Acraft, myisamcheck запускали? 


--------------------
Теперь при чем :P
PM   Вверх
Acraft
Дата 3.7.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 19.4.2005

Репутация: нет
Всего: 2



Нет, использовали CHECK TABLE (по докам - аналог этой утилиты) 
PM MAIL   Вверх
Ignat
Дата 3.7.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Acraft @  3.7.2006,  19:39 Найти цитируемый пост)
по докам - аналог этой утилиты

Не совсем. Для восстановления индексов всё же лучше использовать эту утилиту, нежели REPAIR.

Все проблемы, которые появляются из-за полетевших индексов. Индексы летят обычно на больших таблицах. Боюсь, что у вас предел нагрузки на MySQL. Т.е. объем БД -> 4Гб.  


--------------------
Теперь при чем :P
PM   Вверх
Бонифаций
Дата 3.7.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Цитата(Acraft @  2.7.2006,  13:10 Найти цитируемый пост)
И ЕЩЕ, МОЖНО ЛИ КАК-НИТЬ СДЕЛАТЬ ТАК, ЧТОБЫ ПРИ ПЕРЕЗАГРУЗКЕ mYsql НА E-MAIL ОТСЫЛАЛОСЬ СООБЩЕНИЕ О ТОМ, ЧТО ДЕМОН ПЕРЕЗАГРУЗИЛСЯ?  


Вставьте в соответствующее место в safe_mysqld команду отсылки почты, вот и будет вам e-mail оповещение.

Добавлено @ 19:49 
1) что точно пишется в .err файле? какой сигнал явился причиной перезагрузки?
2) сломанные файлы - результат перезагрузок
3) То что ест много памяти надо настройки ковырять. Сколько у вас одновременных соединений? что в key_buffer_size? какое ядро?
4) 4.0.18 - безнадежно устаревшая и даже более не поддерживаемая версия mysql. Если вы боитесь обновиться хотя бы до 4.1, обновитесь до 4.0.26
5) "'top' показывает что активен в этот момент только mysqld ." покажите строчку из топ. Сколько памяти сьедает mysql? 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Ignat
Дата 4.7.2006, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Бонифаций @  3.7.2006,  20:42 Найти цитируемый пост)
2) сломанные файлы - результат перезагрузок

Бонифаций, А не наоборот?  


--------------------
Теперь при чем :P
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.