У меня проблема с приложением MySQL, которое записывает на SD-карту или Compact Flash. После потери данных (например, сбоя питания), если я попытаюсь получить данные моей базы данных, это не удастся, и код ошибки будет incorrect format table
. Если я попытаюсь увидеть файлы моей БД в файловой системе, я получу can't stat file or directory (I/O error)
.
Как я могу решить эту проблему: предотвратить ее возникновение или восстановить содержимое базы данных?
Настроить:
Эти ошибки означают, что ваша файловая система становится поврежденной (потому что она находилась в процессе записи, когда отключилось питание).
ext2 - это не журналируемая файловая система. Файловые системы журналирования имеют больше записей, потому что они отслеживают, что они собираются сделать, а затем они фактически продолжают это делать. Когда в процессе записи происходит сбой питания, ОС может просмотреть журнал и сказать: «О, я собирался записать туда эти данные» и повторить прерванный шаг.
Переключитесь на то, что имеет ведение журнала. ext3 работает, но на самом деле не предназначена для флэш-носителей. JFFS2 может быть вариантом. Существуют десятки других файловых систем, предназначенных именно для этого случая использования, поэтому попробуйте несколько и посмотрите, что работает хорошо.