
У меня есть телефон на базе Android, на котором установлена система базы данных, которую я сделал (взаимодействие через SMS и с облачным концом, который синхронизируется с ним). Основная база данных хранится в файле sqlite. Она работает без сбоев на телефоне уже около двух лет.
Недавно, в течение примерно двух недель, у меня дважды файл базы данных просто терял все данные (один раз был заменен файлом длиной 0, а другой раз пустым файлом размером 1k). Сегодня временный файл, который программа удалила утром, сам по себе появился днем.
Может ли такое поведение быть результатом износа флэш-памяти, т. е. телефон просто стареет?
решение1
Это, конечно,можетбыть результатом сбоев записи NAND, да. Можно ли попробовать перенести базу данных на новое хранилище, например, на SD-карту? Хотя большинство таких карт изнашиваются быстрее, чем внутреннее хранилище при том же количестве записей, оно может прослужить дольше, если будет единственным, кто что-то записывает на SD.
Конечно, если память устройстваявляетсяв случае неудачи, вам, вероятно, придется менять устройство в любом случае. Ошибки обычно появляются при записи, поэтому простое выполнение программ и чтение существующих файлов может продолжать работать, но каждый файл, который вы создаете или изменяете, также записывает метаданные файловой системы (и из-за того, как работает запись NAND, это коснется записей файловой системы для нескольких файлов). Повреждение метаданных приведет к тому, что ОС не сможет найти или правильно прочитать другие файлы.