Главная Техническая поддержка 20.12.2012 Обслуживание базы данных Транспортного сервера.
20.12.2012 Обслуживание базы данных Транспортного сервера.

Работа и обслуживание Транспортного сервера.

Опыт работы Транспортного сервера (далее ТС) на разных СУБД позволяет сделать обобщения полученного материала и дать рекомендации по автоматизации его обслуживания.

MS SQL и MySQL.

Работа с СУБД MS SQL и MySQL не выявила проблем в работе. Данные вставляются быстро, задержек нет.

Можно рекомендовать использовать использовать указанные СУБД для работы в системах с большой пиковой нагрузкой.

Специального обслуживания БД ТС не требуется.

FireBird.

Работа с СУБД FireBird выявила следующую проблему: при передаче события из ТС клиенту в строке событий не передается id события, хотя сам id присутсвует в базе данных. Отсутствие этого параметра в событии не позволяет организовать целостность событий в системе.

Анализ проблемы показал, что проблемы следует искать в механизмах ADO, и без гарантии успеха.

Проблему можно было бы решить, сделав специальный вариант ТС, работающий строго с FireBird, но мы решили отказаться от такого варианта, т. к. это затруднит последующую техническую поддержку продукта.

Работу с СУБД FireBird можно рекомендовать для работы в системах с большой пиковой нагрузкой, где нет строгих требований к наличию событий в БД СКД (например, при работе с 1С, где данные берутся непосредственно из БД ТС).

Специального обслуживания БД ТС не требуется.

MS Jet 4.0 (*.mdb).

ТС работает с БД MS Jet 4.0 (на ее основе написан известный пакет Access) по умолчанию, т. к. эта БД присутствует во всех Windows и не требует лицензирования.

Работа показала, что при количестве записей более 300 тысяч время вставки события в БД ТС начинает заметно увеличиваться. При большом количестве событий задержка начинает расти, что приводит к задержке вставки событий в БД СКД на большое время (до нескольких часов).

Важно отметить, что при этом события не теряются.

Для удовлетворительной работы ТС на основе БД ТС на MS Jet требуется дополнительное периодическое обслуживание.

Обслуживание БД ТС.

Обслуживание БД ТС сводится к очистке таблицы событий Event.

Инструменты для обслуживания БД ТС. Утилита TSDBPurge.exe.

Для обслуживание БД ТС создана утилита TSDBPurge.exe.

У программы есть параметр — количество дней, события о которых должны остаться в БД ТС. Все события, дата чтения (ReadTime) которых превышает текущую дату на указанное количество суток, будут удалены.

Формат запуска утилиты:

TSDBPurge.exe

Пример:

TSDBPurge.exe 5

После запуска утилиты с указанным параметром в БД ТС останутся данные только за последние 5 суток.

При запуске программы без параметров появится подсказка о формате вызова:

Утилита лог-файл не ведет.

Сверка событий. Утилита LostEvents.

Утилита LostEvents сравнивает события в БД ТС с событиями в БД СКД, и, если находит расхождения, то записывает потерянные события в БД СКД.

Параметр утилиты — количество дней, которые надо сверить, относительно текущей даты.

Очевидно, что чем больше это количество, тем больше времени работает утилита.

При запуске утилита проводит проверку со всеми зарегистрированными ТС. Ведется лог-файл. Лог по умолчанию пишется в директорий \Log\.

Имя лог-файла имеет вид LostEvents___.log.

В этом же директории формируется файл работы приложения. Имя фала имеет LostEvents_System.log. В этот файл записываются данные, связанные с запуском программ.

Формат запуска.

LostEvents -d

Пример:

LostEvents -d 3

Если не указывать параметр, то будет осуществлена проверка с 0 часов текущих суток до текущего времени.

Автоматизация обслуживания.

Для автоматизации процесса указанную утилиту рекомендую установить в системный шедулер (Назначенные задания).

Однако, при безвозвратном удалении данных из БД ТС можно попасть в сложное положение: если данные от ТС по каким либо причинам не были переданы в БД СКД, то восстановить их не будет никакой возможности.

Поэтому перед удалением данных из ТС есть резон провести сверку данных с помощью штатной утилиты LostEvents.

Т.о., рекомендую:

  • сформировать bat-файл (например, с именем Service_BDTS.bat) со следующими командами:

LostEvent -d 2

TSDBPurge.exe 5

При запуске будет выполнена сверка событий за последние 2-суток, и затем обработана БД ТС. В БД ТС останутся данные за последние 5 суток. Т.о., в БД ТС есть 3 дня на то, чтобы выявить возможные пробелемы с событиями: если их нет в БД СКД, и сверка ничего не дает, то можно будет посмотреть «сырые» данные в БД ТС.

  • установить файл в Назначенные задания

  • в указанное время (как видно в примере — это ночью, в 2:30) командный файл будет запускаться, и выполнять сверку событий с последующей очисткой БД ТС.

Ссылки на программы.

TSDBPurge.exe

LostEvent