Задачи сервера
Доступно только для SQL серверов.
Режим недоступен на базах данных, развернутых на SQL серверах редакции «Express» - из-за ограничений разработчика СУБД (Microsoft).
Применение: создение автоматически выполняемых по расписанию задач по обслуживанию баз данных SQL сервера.
Цель (результат выполнения): созданные задачи прописываются в заданиях SQL сервера и выполняются самим SQL сервером по заданному расписанию.
Последовательность выполнения
Щелкните ПКМ по серверу ба данных;
В контекстном меню нажмите на кнопку [Задачи сервера];
Для наглядности в списке задачи выделены цветом, где:
Создание задачи
В тулбаре нажмите на кнопку [Создать];
В окне «Задача сервера» заполните поля данными:
- Наименование - произвольное понятное пользователю наименование выполняемой задачи;
- База данных - имя базы данных, для которой выполняется задача; Для общесерверной задачи необходимо выбрать базу master.
- Выполняемая команда - собственно, сама задача: команда на языке Transact-SQL, реализующая задание;
С помощью кнопки [Справочник] можно выбрать готовую задачу. - Триггеры (Планировщик) - расписание выполнения задачи;
- Разрешена - должно быть включено для выполнения задания.
После сохранения задача начнет исполняться согласно расписанию.
Рекомендуемые задачи
1. Резервное копирование баз
Выбирается из готовых поставляемых с ПО задач «Резервное копирование БД, архивирование и перемещение файла архива».
Особенности:
предполагается наличие на SQL сервере папки
c:\backup\
- для временных файлов резервных копий.предполагается наличие на SQL сервере папки
c:\backup\arh\
- сюда складываются архивированные резервные копии, причем в имени архивного файла содержатся дата и время создания архива.предполагается наличие RAR.exe архиватора в
c:\backup\
.
2. Закрытие дней
Выбирается из готовых поставляемых с ПО задач «Закрытие периода (всех счетов бюджета)».
Особенности:
закрываются все открытые дни с 01 января по заданный день, по всем доступным пользователю, от имени которого будет выполнятся задача, счетам бюджета.
для применения задачи её требуется отредактировать (после выбора): в области «Выполняемая команда» указать логин вместо угловых скобок, а также, при необходимости, день закрытия.
Если закрывает не все промежуточные дни, то это означает:
- У пользователя нет доступа к некоторым счетам бюджета;
- В незакрытый день есть документы, в которых дата документа позже даты проводки (такие дни не закрываются).
Задача состоит из одной команды SQL:
execute ('execute dbo.locked_day_close_timer @DayBack = -5, @nLevel = 1') as user = '<имя пользователя>'
Параметр | Описание |
---|---|
@DayBack | Количество дней назад от системной даты SQL сервера для определения закрываемого дня. По умолчанию минус 5 дней. |
@nLevel | Уровень закрытия, по умолчанию. 1.1 – платежный документ; 3 – справка об изменении росписи. |
@CloseEmpty | Параметры: Отсутствует или 0 – закрываются только документы по доступным пользователю счетам бюджета; 1 – дополнительно закрываются дни для документов без счета бюджета. |
<имя пользователя> | Логин пользователя, от имени которого будет выполняться задача. |
Пример корректной команды задачи без закрытия документов без счета бюджета:
execute ('execute dbo.locked_day_close_timer @DayBack = -2, @nLevel = 1') as user = 'buh_01'
Пример корректной команды задачи с закрытием документов без счета бюджета:
execute ('execute dbo.locked_day_close_timer @DayBack = -2, @nLevel = 1, @CloseEmpty = 1') as user = 'buh_01'
3. Дефрагментация базы данных и обновление статистики
Задача проводит оптимизацию структуры базы данных, что увеличивает производительность SQL сервера (и как следствие - производительность программного комплекса
Рекомендуемая периодичность выполнения: 1 раз в сутки, выполнять на рабочей базе данных в период минимальной активности пользователей (ночью).
Выполняемая команда:
exec dbo.sp_defrag_index
В ручном режиме операцию можно выполнить с помощью «Дефрагментация индексов».
4. Удаление временных записей
Задача удаляет неактуальные временные записи в таблицах базы данных, что увеличивает быстродействие программного комплекса и уменьшает размер базы данных (точнее, уменьшается скорость ее увеличения).
Рекомендуемая периодичность выполнения: 1 раз в сутки, выполнять на рабочей базе данных в период минимальной активности пользователей (ночью).
Выполняемая команда:
exec dbo.xp_SysTablesTruncate
5. Переиндексация базы данных
Рекомендуемая периодичность выполнения: раз в неделю, выполнять на базе данных комплекса.
Выполняемая команда:
exec sp_dbReindex
В ручном режиме операцию можно выполнить с помощью «Переиндексация».
6. Отложенный контроль
Применяется для разгрузки сервера СУБД: документы сохраняются быстро и встают в очередь на проведение контроля, в отличие от обычного процесса загрузки, когда проведение контроля одного загружаемого пакета документов мешает загрузить пакет документов другому пользователю.
Отложенный контроль работает для всех документов базы данных. Возможность использовать его выборочно, только для некоторых видов документов, отсутствует.
Использование фонового контроля влечет изменение порядка обработки документов, поэтому не рекомендуется включать фоновый контроль на рабочей базе данных без предварительной отладки на тестовой базе.
Результат отложенного контроля (протокол) доставляется пользователю в виде сообщения внутренней почты комплекса (см. статью «Сервер почтовых сообщений»).
В случае неиспользования встроенной почты с протоколом контроля можно ознакомится в журнале событий документа. Статус «Ожидание контроля» исключает документ из учета (в отчетности, состояния счета и т.д.).
Таким образом пользователь узнает о принятии/отказе документа с отложенным контролем через два интервала:
- расписание запуска отложенного контроля (собственно контроль);
- интервал опроса новых сообщений (доставка протокола контроля по внутренней почте).
Выполняемая команда:
exec dbo.bpms_task_evb_start_exec @TaskCode = 'ControlDocs'
Рекомендуемая переодичность выполнения: выполнение каждые 3-10 минут в рабочий период (например, с 7:00 по 21:00).
Монитор блокировок
Доступно на MSSQL и Postgres серверах.
Отображает заблокированные процессы SQL сервера. Есть возможность настроить период обновления данных в секундах и отображение блокировки в мониторе, если она превышает выставленное значение в миллисекундах.
Запуск и остановка осуществляется с помощью кнопок ▶️ [Старт] и ⏸️ [Стоп].
Трассировка взаимоблокировок
Используется при зависаниях в системе: значительное возрастание времени обработки данных (открытие списков, электронный прием, формирование отчетов и т.п.). Либо при ошибках вида:
Transaction (Process ID 70) was deadlocked on lock resources with another process and has been chosen as the deadlock victim.
1. Щелкните ПКМ по серверу баз данных;
2. В контекстном меню поставьте чек ✅ напротив «Трассировка взаимоблокировок»;
После перезапуска сервера трассировку необходимо активировать повторно.
Воспроизведите ошибку (достаточно, чтоб ошибка воспроизвелась у любого пользователя). Если проблема в зависаниях необходимо подождать 10 минут.
3. Щелкните ПКМ по серверу баз данных;
4. Выберите «Журнал ошибок» и в открывшемся окне нажмите на кнопку [Сохранить];
5. Отправьте полученный файл разработчикам.
Журнал ошибок
Режим предназначен для просмотра и отправки разработчику логов сервера.
1. Щелкните ПКМ по серверу баз данных;
2. В контекстном меню нажмите на кнопку [Журнал ошибок];
С помощью кнопки [Просмотр] скачивается архив с логами.
Для отправки логов разработчикам:
В текстбоксе «Сообщение» опишите ситуацию, при которой возникает ошибка;
Поставьте чек напротив «Прикрепить журнал сервера БД»;
Нажмите на кнопку [Сохранить];
Нажмите на кнопку [Отправить].
Свойства сервера
На сервере Postgres данная функция доступна только пользователю, имеющему права superuser
.
Щелкните ПКМ по серверу баз данных;
В контекстном меню нажмите на кнопку [Свойства сервера];
Окно «Информация о сервере» хранит в себе информацию о:
- версии MS SQL Srever/PostgreSQL Server;
- дисках на сервере и их свободном пространстве;
- файлах
XPKS.DLL
.
С помощью кнопок ⯆ ⯅ можно скрывать/раскрывать информацию в окне.