Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Сейчас возможно ситуация, когда попытка записи CDR в базу MySQL завершится ошибкой. Если эта ошибка связана с обрывом связи с MySQL, то попытка записи будет повторена после восстановления связи. Но если ошибку возвращается сама база (например, закончилось место, или какие то другие ограничения базы), то такая запись просто потеряется.

В рамках версии 3.14 был предусмотрен механизм защиты от потери данных при такой ситуации


  • При невозможности записи данных создается файл

Файл создается по пути /var/lib/ecss/mysql-failed-requests/<MYSQL_SUBSYSTEM>/failed_requests.sql

В пределе на одну подсистему может быть создано до 10 файлов по 1Gb каждый.


  • Добавлена команда CoCon-а для импорта файла с забекапленными SQL запросами:
cluster/core/<CORE_CLUSTER>/tts/db/reload-sql
cluster/core/<CORE_CLUSTER>/dialer/db/reload-sql
cluster/core/<CORE_CLUSTER>/teleconference/db/reload-sql

reload-sql  [<OPTIONS>]
OPTION:                   DEFINITION:
MASK                       - маска SQL файлов, которые необходимо проимпортировать в SQL

Пример:

./reload-sql failed_requests.sql
Success: 147 request(s)
Failed:  10  request(s)

Failed requests was copied to file(s):  filed_reexecute_requests_2020_02_06_10_42_28.sql


Если во время импорта какие-то из строк файла не удалось проимпортировать (например SQL ошибки), эти строки будут записаны в файл вида filed_reexecute_requests_YYYY_MM_DD_hh_mm_ss.sql

Если все строки удалось проимпортировать, файл создан не будет. После импорта исходный файл с данными удаляется (считается что все данные и так уже удалось залить в MySQL, либо неуспешные запросы будут проимпортированы в файл вида filed_reexecute_requests_YYYY_MM_DD_hh_mm_ss.sql). Если во время импорта были ошибки другого вида (например не удалось установить связь с MySQL, нет доступа до файла) команда выдаст warning, и файл с данными не будет удален.

  • Нет меток