У меня есть (крошечный) динамический веб-сайт, который является (примерно) скриптом Perl CGI с использованием базы данных SQLite. Пакет DBI - это уровень абстракции, используемый в Perl.ошибка ввода-вывода диска с SQLite
Около недели назад я начал видеть это сообщение об ошибке:
disk I/O error(10) at dbdimp.c line 271
Поскольку это размещение сайта работает Apache, я не могу видеть, если жесткий диск (почти) полностью. Доступ к команде «df» отключен .... но я использовал команду оболочки UNIX «yes> blah», чтобы проверить, что диск все еще может создавать новые файлы. Моя база данных очень маленькая - менее 50 килобайт.
Я проверил разрешения на файлы и каталоги: каталог и все родители являются + r, a + x (все + чтение/исполняемый файл). Каталог, содержащий мой файл базы данных SQLite, также представляет собой + w (все + запись). Сам файл базы данных имеет + w, a + r (все + чтение/запись).
Я написал простую программу Perl для тестирования. Я могу запустить запрос на выбор с ошибкой: он работает нормально.
Я запросил запрос «ВАКУУМ» в базе данных. Я снова пробовал свои тесты - никаких улучшений.
Я сбросил базу данных SQLite на необработанный SQL (используя команду SQLite shell «.dump») и перестроен. Я снова пробовал свои тесты - никаких улучшений.
Любые предложения? Я так запутался ... Как правило, приведенный выше список может уловить большинство ошибок при программировании/настройке.
Можете ли вы опубликовать код, который выполняется при возникновении ошибки? –
Какую версию SQLite вы используете? И насколько велика ваша база данных? Это полезно - http://www.sqlite.org/cvstrac/tktview?tn=3094,3 –