Автоматично събиране на данни за изпълнени задачи в MS SQL Server

Предговор

Важно е администраторът на базата данни да знае какви задачи са били изпълнени и как са били изпълнени (по продължителност, успех или неуспех и т.н.). За да не правите това ръчно на всеки сървър, по-добре е да автоматизирате този процес.

В тази статия ще осигуря внедряване на автоматично ежедневно събиране на информация за изпълнени задачи на агент в MS SQL Server.

1) създайте изглед за избор на задачи:

Тук се използват два системни изгледа sysjobservers и sysjobs_view 2) създайте таблица за съхраняване на избраната информация:

3) създайте задача в Агента и събирайте ежедневна информация за онези задачи, които са отнели много време (повече от 30 секунди) или са се провалили през последните 2 дни:

Тук или в стъпка 2 можете да настроите филтър за премахване на ненужни задачи. Например, свързани с репликацията, тъй като те отнемат много време 4) генерират HTML отчет за по-нататъшно изпращане до администраторите за резултатите по пощата:

Тази съхранена процедура генерира HTML отчет за изпълнени задачи, които са отнели повече от 30 секунди или са завършили с грешка (съгласно клауза 3).

В статията по-горе беше разгледан пример за внедряване на система за ежедневно автоматично събиране на информация за изпълнените задачи на Агента. Използвайки тази информация, можете да идентифицирате задания, чието изпълнение е отнело много време или е завършило с грешка. Това позволява на администратора да предприеме навременни действия за предотвратяване на грешки в бъдеще. Например, можете да подобрите заданието, за да работи по-бързо, или да зададете максималното време за това задание да бъде по-дълго от другите. Това решение също е много полезно за проследяване на проблеми с архивирането (но повече за това по-късно като веднъж на денуведомяването за критични грешки не е достатъчно, трябва да уведомите незабавно и непрекъснато да повтаряте известието след определен период от време, докато грешката бъде коригирана). Ако трябва да съберете информация от няколко сървъра, можете да комбинирате резултата и да го изпратите в едно съобщение.

И тук можете да получите грант за тестов период на Yandex.Cloud. Необходимо е само да въведете "Habr" в полето "секретна парола".