Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
Couldn't execute statment: SQL logic error or missing database, ошибка в логах: Couldn't execute statment: SQL logic error or missing database
 
Здравствуйте, периодически в логах появляется ошибка:
 asterisk[4380]: WARNING[4499]: db.c:299 in ast_db_put: Couldn't execute statment: SQL logic error or missing database.
с чем это связано? способы устранения?
 
Скорее всего повреждена или не существует база данных Asterisk.
Она храниться в виде файла sqlite3.

В «/etc/asterisk/asterisk.conf» местоположение описано параметром:
Код
astdbdir => /storage/usbdisk1/askoziapbx/persistence

На практике наблюдал ни раз, что файл существует, но поврежден, к примеру невозможно даже его удалить:
Код
rm -rf /storage/usbdisk1/askoziapbx/persistence/
rm: can't stat '/storage/usbdisk1/askoziapbx/persistence/astdb.sqlite3-journal': Input/output error
В этом случае ситуацию спасает проверка диска на ошибки:
Код
h=$(lsof -t /storage/usbdisk1/); kill -KILL $h
umount /storage/usbdisk1/
fsck.ext2 -a /dev/hdb1

Все команды приведены из расчета, что раздел диска "/dev/hdb1" смонтирован в каталог "/storage/usbdisk1/".
 
Можете описать порядок действий после удаления?
А то в моем случае, после удаления этой бд и перезагрузки asteriska АТС встала наглухо. Отсутствовала связь с провайдером и абонентами, восстановление конфигов ни к чему не приводило.  
 
Обычно рестрарт asterisk решает проблему. База данных AstDB создается автоматически. Можете попробовать сменить параметр "astdbdir" - указать путь к другой директории.
Убедитесь, что есть место на диске.
 
Мда... Видимо /storage/usbdisk1/askoziapbx/persistence место заколдованное. Прописал эту базу в другой каталог - ошибки ушли
 
Цитата
Ефимов Алексей написал:
Мда... Видимо /storage/usbdisk1/askoziapbx/persistence место заколдованное. Прописал эту базу в другой каталог - ошибки ушли

Вы выполнили проверку диска на ошибки?
Что показывает команда:
Код
ls -l /storage/usbdisk1/askoziapbx/persistence;
 
На ошибки не проверял. указанная команда заканчивается ошибкой ввода/вывода
 
Цитата
Ефимов Алексей написал:
На ошибки не проверял. указанная команда заканчивается ошибкой ввода/вывода

Ну так это и есть "проблема".  Поврежден диск для хранения данных.
Способ решения "в ручную" описал выше. В зависимости от используемого дистрибутива Linux способ может отличаться.
Читают тему (гостей: 1)