Voipnotes
Услуги
  • 3CX Phone System
    • Купить IP АТС - 3CX Phone System
Ещё
    Задать вопрос
    +7 (499) 113-65-73
    Заказать звонок
    sale@voipnotes.ru
    г. Москва 2-й Михайловский проезд 9
    +7 (499) 113-65-73
    Заказать звонок
    Voipnotes
    Услуги
    • 3CX Phone System
      • Купить IP АТС - 3CX Phone System
      Voipnotes
      Услуги
      • 3CX Phone System
        • Купить IP АТС - 3CX Phone System
        Voipnotes
        Voipnotes
        • Услуги
          • Назад
          • Услуги
          • 3CX Phone System
            • Назад
            • 3CX Phone System
            • Купить IP АТС - 3CX Phone System
        • +7 (499) 113-65-73
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        • Главная
        • Блог
        • Лечение FreePBX Fatal Error таблицы asteriskcdrdb

        Лечение FreePBX Fatal Error таблицы asteriskcdrdb

        30 Апреля 2015

        Мы часто стали наблюдать проблему, когда необходимо проверить таблицу CEL, т.е. просмотреть более подробные параметры вызовов(подключение и разрывы голосовых каналов) в Asterisk CDR Reports, но тут может возникнуть FATAL ERROR. В этой статье мы расскажем, как вылечить таблицу cel и расскажем, как восстанавливаются таблицы и базы данных в MySQL.

        Ошибка выглядит примерно так:

        cel_fatal_error_2-620x279.jpg

        А лечится это довольно просто, при условии, что вы используете БД MySQL (на PostgreSQL думаю так же не сложно, но мы не тестировали)

        Немного теории.

        В MySQL есть две команды: myisamchk и mysqlcheck. Утилитки myisamchk и mysqlcheck можно использовать для получения информации о таблицах рабочей базы данных, для их проверки и исправления или же оптимизации. Отличие mysqlcheck от myisamchk состоит в том, что утилита mysqlcheck должна использоваться при работающем сервере mysqld, в то время как myisamchk - при остановленном. Т.е. используя mysqlcheck теперь не надо прерывать работу базы данных.

        Для восстановления таблицы cel, принадлежащей базе данных asteriskcdrdb, необходимо использовать команду:

        # mysqlcheck --repair asteriskcdrdb cel -uroot -p

        В общем виде команда выглядит так:

        # mysqlcheck --repair db_name table_name -u username -p

        Где db_name - имя восстанавливаемой базы данных, table_name - имя восстанавливаемой таблицы.

        Если хотите проверить и восстановить (в случае необходимости) все базы данных и таблицы, то следует применить следующую команду:

        # mysqlcheck --repair  --all-databases --auto-repair -u username -p

        Что означают указанные ключи:

        • --repair, -r - может исправить почти все, за исключением уникальных ключей, имеющих дубликаты
        • --all-databases, -A - проверить все базы данных
        • --auto-repair - если проверенная таблица повреждена, автоматически восстановить ее. Исправления будут произведены после проверки всех таблиц, если были обнаружены повреждения

        Расскажем и про утилитку myisamchk. Для начала, базы данных необходимо проверить на ошибки. Быстрая проверка осуществляется командой:

        # myisamchk --fast --silent /path/to/yourdatabase/*/*.MYI

        Далее необходимо вылечить найденные ошибки. Делается это командой:

        # myisamchk --recover /path/to/yourdatabase/*/*.MYI

        А если все плохо, то необходимо использовать команду:

        # myisamchk --safe-recover /path/to/yourdatabase/*/*.MYI
        Ч

        то означают указанные ключи:

        • --force, -f - выполнять перезапуск myisamchk, если myisamchk найдет в ней хоть одну ошибку
        • --silent, -s - молчаливый режим. Выдавать сообщения только при возникновении ошибок
        • --recover, -r -  при указании этой опции можно исправить практически все, кроме уникальных ключей, в которых есть повторения (ошибка, вероятность которой мизерна для таблиц ISAM/MyISAM)
        • --safe-recover, -o - используется старый метод восстановления (читаются подряд все строки и обновляются все деревья индексов на основе найденных строк); такой алгоритм работает на порядок медленнее -r, но метод справляется с несколькими редкими случаями, непосильными для -r

        После использования данных команд, FreePBX будет корректно выводить данные из таблицы cel.

        Нужна консультация?

        Наши специалисты ответят на любой интересующий вопрос

        Задать вопрос
        Поделиться
        Назад к списку
        © 2021 Все права защищены.
        +7 (499) 113-65-73
        Заказать звонок
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        Политика конфиденциальности
        Версия для печати
        © 2021 Все права защищены.
        Заказать звонок
        Написать сообщение