Elastix WARNING[2390]: db.c:332 ast_db_put: Couldn’t execute statment: SQL logic error or missing database

Коли дивлюсь моніторинг – увесь час почала валитися помилка, раніше інколи, тепер увесь час:

[2016-08-31 16:44:58] WARNING[2390]: db.c:332 ast_db_put: Couldn’t execute statment: SQL logic error or missing database

Форуми не допомогли, файл на який скаржиться це база де реєструється поточний стан абонентів

/var/lib/asterisk/astdb.sqlite3

Адже це sqlite3 вирішив перевірити

1) Зупиняємо asterisk
# asterisk -r
Localhost*CLI> core stop now

2) Перевіряємо БД
# cd /var/lib/asterisk/astdb.sqlite3
# sqlite3 astdb.sqlite3
pragma integrity_check;

та отримав помилку, що база пошкоджена

Error: near line 1: database disk image is malformed

selection_370

3) Робимо дамп бази
# sqlite3 astdb.sqlite3
sqlite> .mode insert
sqlite
> .output mydb_export.sql
sqlite
> .dump
sqlite
> .exit

4) Резервну копію
# mv astdb.sqlite3 astdb.sqlite3.orig

5) Сворюємо нову БД із дампу

sqlite3 mydb.db < mydb_export.sql

selection_371

6) Перевіряємо на помилки
# sqlite3 astdb.sqlite3
sqlite> analyze;
sqlite
> .exit

7) Перезавантажуємо, аби запевнитись, що допомогло.
Більше помилок не буде

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s