| Termin | Definicja |
|---|---|
| Widok sysjobschedules | sysjobschedules zawiera harmonogramy przypisane do poszczególnych zadań Agenta. Miejsce sysjobschedules w bazie msdbWidok sysjobschedules znajduje się w bazie msdb w schemacie dbo i łączy zadania agenta SQL Server z definicjami harmonogramów. Ma zaledwie kilka kolumn: identyfikator zadania, identyfikator harmonogramu, datę i godzinę następnego uruchomienia oraz znacznik ostatniej modyfikacji. Sama treść harmonogramu, czyli częstotliwość, interwał, godzina początkowa i data ważności, leży w tabeli sysschedules, a nazwy i opisy zadań w sysjobs. Dopiero złączenie tych trzech obiektów po identyfikatorach daje czytelny obraz tego, co i kiedy się uruchomi. Historia wykonań jest gdzie indziej, w tabeli sysjobhistory. Format daty i godziny, który zaskakuje przy pierwszym zapytaniuKolumny z następnym uruchomieniem nie są typem daty. Data zapisana jest jako liczba całkowita w postaci rok, miesiąc, dzień sklejonych w jeden ciąg cyfr, a godzina jako liczba oznaczająca godziny, minuty i sekundy bez separatorów, przez co ósma rano to wartość osiemdziesiąt tysięcy. Bez przeliczenia sortowanie po tych kolumnach daje wyniki poprawne, ale porównania z bieżącym czasem już nie. W msdb istnieje pomocnicza funkcja skalarna przeliczająca te dwie liczby na standardowy typ daty i godziny, dostępna właśnie w tej bazie i tylko w niej. Warto też pamiętać, że jedno zadanie może mieć wiele harmonogramów, a jeden harmonogram może być wspólny dla wielu zadań. Zadanie z harmonogramem, które i tak nie startujeNajczęstsza zagadka to wpis w tabeli obecny, data następnego uruchomienia sensowna, a zadanie milczy. Powodów jest kilka i wszystkie widać w danych. Harmonogram może być wyłączony niezależnie od zadania, więc trzeba sprawdzić znacznik aktywności zarówno w sysjobs, jak i w sysschedules. Sama usługa agenta może być zatrzymana albo ustawiona na ręczne uruchamianie, co po restarcie serwera oznacza ciszę we wszystkich zadaniach naraz. Zdarza się też, że data następnego uruchomienia zawiera zera, co oznacza brak zaplanowanego kolejnego przebiegu, na przykład po przekroczeniu daty końcowej harmonogramu albo po zmianie czasu systemowego wstecz. Kopie zapasowe systemu handlowego, które przestały się wykonywaćW firmach korzystających z Subiekta, WAPRO czy Comarcha to właśnie agent SQL Server wykonuje nocne kopie bazy i przebudowę indeksów. Awarię zwykle odkrywa się dopiero wtedy, gdy kopia jest potrzebna, a najświeższy plik ma kilka miesięcy. Przeglądamy wtedy definicje zadań i harmonogramów, historię wykonań z komunikatami błędów oraz konto, na którym pracuje usługa agenta, bo brak uprawnień do katalogu docelowego jest jedną z częstszych przyczyn cichego niepowodzenia. Wdrażamy i serwisujemy takie środowiska dla klientów firmowych, także poza godzinami pracy biura. |