|
MySQL.RU - Webboard
Вернуться
Сбой InnoDB logfile после hard-reset (xOr) 05/06/2010 - 20:57:49
Re: Сбой InnoDB logfile после hard-reset (xOr) 21/06/2010 - 01:09:09
From: xOr - 05/06/2010 - 20:57:49
Subject:Сбой InnoDB logfile после hard-reset
-----------------
Добрый день!
Имеется база MySQL с одной таблицей InnoDB (остальные MyISAM).
В ней каждые N секунд происходит много UPDATE, объединенных в одну транзакцию.
Файлы базы расположены на разделе ZFS.
После перезагрузки сервера по питанию, InnoDB восстанавливается из журнала,
однако, потом не запускается. Ошибка следующая:
100605 02:54:09 mysqld started
InnoDB: Error: log file /var/db/mysql/ib_logfile0 is of different size 0 21011456 bytes
InnoDB: than specified in the .cnf file 0 20971520 bytes!
Т.е. размер лог-файлов изменился (немнго вырос). То ли из за дискового сбоя, то ли просто во время прошлой работы (не отслеживал).
Помогает выключение mysql, удаление лог-файлов и запуск снова.
Можно, конечно, написать скрипт, который будет проверять что база восстановлена и затем удалять лог-файлы. Но это опасно, и не охота.
Хочется настроить базу так, чтобы она стартовала сама после сбоев электропитания.
Кто знает как это сделать - подскажите, пожалуйста! В интернете все подобные проблемы обсуждаются только в отношении самостоятельного изменения размера лог-файлов. Нигде не нашел проблемы, когда их размер сам меняется...
Кстати, даже поле восстановления лог-файлов, следующие перезапуски mysql приводят к выдаче следующих предупреждений:
100605 18:29:05 InnoDB: Error: page 45 log sequence number 0 225634929
InnoDB: is in the future! Current system log sequence number 0 14025977.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: for more information.
100605 18:29:05 InnoDB: Error: page 53 log sequence number 0 225634567
InnoDB: is in the future! Current system log sequence number 0 14025977.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: for more information.
100605 18:29:05 InnoDB: Error: page 58 log sequence number 0 227182235
InnoDB: is in the future! Current system log sequence number 0 14025977.
InnoDB: Your database may be corrupt or you may have copied the InnoDB
InnoDB: tablespace but not the InnoDB log files. See
InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html
InnoDB: for more information.
100605 18:29:05 InnoDB: Started; log sequence number 0 14025977
100605 18:29:06 [Note] /usr/local/libexec/mysqld: ready for connections.
Т.е. таких же, как после удаления лог-файлов, но в меньшем объеме. Получается, что таблица полностью не восстанавливается и содержит некий мусор.
Полностью помогает только выгрузка таблицы в дамп и восстановление.
Есть ещё подозрение, что подобное происходит только с ZFS. Несмотря на её хваленую надежность про сбоях записи (copy on write), позволяющую исключить искажение прежних версий данных (возможна незапись только обновлений).
Софт: FreeBSD 7.1-RELEASE
mysql-server-5.0.89 Multithreaded SQL database (server)
mysql Ver 14.12 Distrib 5.0.84, for portbld-freebsd7.1 (i386) using 5.2
ZFS filesystem version 6
ZFS storage pool version 6
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37211
|
|