The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"mySQL 4 и 5, crush таблиц"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"mySQL 4 и 5, crush таблиц"  
Сообщение от dalex email(??) on 17-Янв-07, 17:43 
Помогите, братья сисадмины и программисты.
Поставил на сервер (SuSe ES9) сначала mySQL4.0, потом mySQL5.0, в обоих случаях одна и та же проблема:

после перезагурзки сервера падают таблицы, не все, скорее те, в которые недавно добавлялись записи. При проверке выдаёт, например такое:

myisamchk: error: Record at:       1892  Can't find key for index:  1
MyISAM-table '/usr/local/mysql/data/digmedia/schedule.MYI' is corrupted

или вот, после mysqlcheck:


digmedia.schedule
error    : Record at pos: 1956 is not remove-marked
error    : record delete-link-chain corrupted
error    : Corrupt

digmediatest.logs
warning  : Size of datafile is: 3864       Should be: 3808
error    : Found 73 keys of 72
error    : Corrupt


если восстановить, то в таблице не будет последних записей, сделанных перед перезагрузкой. Таблица простейшая, MyISAM.

Не могу найти причину такого поведения.  На соседнем сервере стоит ASPLinux + mySQL 3.18, всё отлично.
При перезагрузке mysqld вроде бы корректно завершает работу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "mySQL 4 и 5, crush таблиц"  
Сообщение от BigHo on 17-Янв-07, 18:33 
Менять версию с mysql 4.0 на 4.1 и более старшую через бинарные файлы базы данных является недопустимым. Сперва следует сделать mysqldump баз данных и залить на вновь поднимаемый сервер. Версии 5.0.x и далее имеет еще более значительные различия в структуре хранения MyISAM таблиц, чем 4.1.x от 4.0.x. Версия 4.0.x почти не отличияется от 3.x.x форматом хранения MyISAM таблиц, тогда как отличия версии 5.x и версий 4.1.x связаны:
- с тем, что хранение текстовых данных ведется в utf формате;
- cтало возможным хранение varchar полей превышающих размер 255 байт;
- претерпела значительные изменения структура самого индекса.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "mySQL 4 и 5, crush таблиц"  
Сообщение от dalex email(??) on 18-Янв-07, 09:24 
>Менять версию с mysql 4.0 на 4.1 и более старшую через бинарные
>файлы базы данных является недопустимым. Сперва следует сделать mysqldump баз данных
>и залить на вновь поднимаемый сервер. Версии 5.0.x и далее имеет
>еще более значительные различия в структуре хранения MyISAM таблиц, чем 4.1.x
>от 4.0.x. Версия 4.0.x почти не отличияется от 3.x.x форматом хранения
>MyISAM таблиц, тогда как отличия версии 5.x и версий 4.1.x связаны:
>
>- с тем, что хранение текстовых данных ведется в utf формате;
>- cтало возможным хранение varchar полей превышающих размер 255 байт;
>- претерпела значительные изменения структура самого индекса.


Дело в том, что на база данных создавалась на этом же сервере с уже установленным из дистрибутива SLES9 mysql 4.0, т.е. с нуля. И сразу же появились эти проблемы. При установке 5.0 согрешил :) скопировав бинарники базы, но потом нужную базу пересоздал путём дампа. Глюк остался неизменным.

Такие заметки ещё.  База (да и система) лежит в массиве с железным зеркалированием. Если сервер не перегружать неделю например, то после перезагрузки исчезнут только последние записи. Т.е. в базу всё же пишется информация, но вот когда - не понятно. SELECT @@AUTOCOMMIT показывает "1".

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "mySQL 4 и 5, crush таблиц"  
Сообщение от dalex email(??) on 18-Янв-07, 12:00 
А теперь самая фишка: загоняю в базу данные, делаю
rcmysql stop
rcmysql start

все данные на месте, все таблицы целы.
Делаю reboot, пару талиц в crash, данные которые загонял - исчезли.

Делаю
rcmysql stop
reboot

Опять, таблицы в краше, данных нет.
Т.е. либо SLES при перезагрузке портит файлы, либо на железном уровне? :(
Сделал проверку диска - повреждённых файлов нет...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "mySQL 4 и 5, crush таблиц"  
Сообщение от BigHo on 18-Янв-07, 12:12 
>>Менять версию с mysql 4.0 на 4.1 и более старшую
>Такие заметки ещё.  База (да и система) лежит в массиве с
>железным зеркалированием. Если сервер не перегружать неделю например, то после перезагрузки
>исчезнут только последние записи. Т.е. в базу всё же пишется информация,
>но вот когда - не понятно. SELECT @@AUTOCOMMIT показывает "1".

на уровне продположения: железный рейд не успевать сбросить кеш. В качестве решения можно предложить создать rc.d скрипт, который по команде stop должен вызывать плавное опускание БД, сброс буферов (sync), отключение файловой системы, и задержка (sleep) на некоторое время, в течении которого кеш рейда должен успеть сброситься на диск(и). Пока выполняется rc.d, система не завершает перезагрузку ресетом системы. Если есть утилиты по управлению райдом, доступными через API Linux системы, то лучше воспользоваться именно ими. А конкретно - нужна команда сброса кеша на диск.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру