| Termin | Definicja |
|---|---|
| Błąd w zadaniu | Błąd w zadaniu sygnalizuje niepowodzenie wykonania zaplanowanej operacji przez SQL Server Agent. Błąd w zadaniu — czym jest komunikat SQL Server AgentBłąd w zadaniu oznacza, że zaplanowana operacja nie zakończyła się zgodnie z oczekiwanym przebiegiem. W środowisku SQL Server Agent zadanie składa się zwykle z kilku elementów: harmonogramu, jednego lub większej liczby kroków oraz ustawień określających reakcję na powodzenie albo niepowodzenie. Sam komunikat o błędzie jest więc informacją o skutku, a nie zawsze pełnym wyjaśnieniem przyczyny. Aby ustalić źródło problemu, trzeba sprawdzić historię zadania, komunikat przypisany do konkretnego kroku, konto wykonujące operację oraz warunki, w których zadanie zostało uruchomione. Zadanie może obejmować wykonanie instrukcji Transact-SQL, uruchomienie procedury, obsługę pakietu, polecenia systemowego albo czynności związane z kopiowaniem i porządkowaniem danych. Jeśli dowolny etap zwróci błąd, przekroczy limit czasu, utraci wymagane uprawnienia lub nie znajdzie wskazanego zasobu, cała operacja może zostać oznaczona jako nieudana. Warto odróżnić błąd samego zadania od sytuacji, w której zadanie w ogóle się nie uruchomiło. W drugim przypadku przyczyną może być nieaktywny agent, wyłączony harmonogram, konflikt terminów albo nieprawidłowa konfiguracja warunków rozpoczęcia. Błąd w zadaniu a krok, harmonogram i zależności wykonaniaNajważniejszą jednostką diagnostyczną jest krok zadania. W historii wykonania należy ustalić, który krok zakończył się niepowodzeniem, o której porze nastąpiła próba oraz jaki tekst został zapisany w dzienniku. Zadanie może mieć kilka kroków wykonywanych kolejno albo według reguł zależnych od wyniku poprzedniej czynności. Jeżeli pierwszy krok nie przygotuje danych, następny może zakończyć się błędem wtórnym, mimo że jego własna składnia jest poprawna. Z tego powodu analizę należy zaczynać od pierwszego miejsca, w którym pojawił się problem. Znaczenie ma również sposób uruchomienia. Zadanie wywołane ręcznie może działać poprawnie, podczas gdy uruchomienie według harmonogramu kończy się błędem. Częstym powodem jest różnica między kontem osoby testującej a kontem używanym przez usługę. Inne mogą być uprawnienia do bazy, katalogów, udziałów sieciowych, plików tymczasowych oraz źródeł danych. Różnica może dotyczyć także zmiennych środowiskowych, mapowanych dysków, bieżącego katalogu lub dostępu do certyfikatów i kluczy. Warto porównać kilka elementów: nazwę bazy wskazaną w kroku, schemat i obiekty używane przez procedurę, parametry przekazywane do polecenia, ustawienia właściciela zadania oraz sposób reakcji po błędzie. Niekiedy problem nie występuje w samej operacji, lecz w ustawieniu kolejnego kroku, powiadomienia lub harmonogramu. Pomocne jest także zestawienie czasu trwania udanych i nieudanych uruchomień. Stopniowe wydłużanie wykonania może wskazywać na blokadę, przeciążenie, brak miejsca albo oczekiwanie na zasób. Błąd w zadaniu — typowe problemy i ich objawyJedną z częstych przyczyn jest błąd składni albo odwołanie do obiektu, który został zmieniony, usunięty lub znajduje się w innej bazie. Procedura może przyjmować nowe parametry, a definicja kroku nadal może przekazywać poprzedni zestaw wartości. Podobny efekt daje niezgodność typów danych, nieprawidłowy format daty, pusty parametr albo wartość różniąca się od tej, która była używana podczas testów. Inną grupę stanowią problemy z uprawnieniami. Konto wykonujące zadanie może mieć dostęp do samej instancji, lecz nie do konkretnej bazy, tabeli, procedury, katalogu lub pliku. Przy poleceniach korzystających z zasobów poza bazą trzeba sprawdzić uprawnienia na każdym etapie. Samo ręczne uruchomienie przez administratora nie potwierdza, że zadanie zadziała w normalnym trybie, ponieważ administrator może mieć szerszy zakres dostępu niż konto usługi. Do błędu może doprowadzić także brak miejsca na woluminie, ograniczenie rozmiaru pliku, zapełniony katalog tymczasowy, blokada tabeli, długie oczekiwanie na zakończenie innego procesu lub przekroczenie limitu czasu. W przypadku operacji cyklicznych warto sprawdzić, czy poprzednie uruchomienie zakończyło się przed rozpoczęciem następnego. Nakładanie się wywołań może powodować blokady oraz częściowe przetwarzanie danych. Jeżeli zadanie uruchamia program zewnętrzny, należy zweryfikować ścieżkę do pliku wykonywalnego, argumenty, katalog roboczy, kod zakończenia procesu oraz dostęp do plików wejściowych. Program może zwracać kod błędu mimo braku czytelnego komunikatu w historii. W takiej sytuacji przydatne bywa uruchomienie tego samego polecenia z pełnym logowaniem, po czym należy porównać środowisko testowe ze środowiskiem używanym przez agenta. Błąd w zadaniu — praktyczne wskazówki diagnostyczneNajpierw należy zapisać dokładny komunikat, czas wystąpienia i numer kroku. Skrócone opisy w widoku listy zadań mogą pomijać szczegóły dostępne dopiero po otwarciu historii. Następnie warto sprawdzić, czy błąd powtarza się przy ręcznym uruchomieniu oraz czy dotyczy każdego uruchomienia, czy tylko określonego harmonogramu. Jednorazowy problem może mieć związek z chwilową niedostępnością zasobu, natomiast powtarzalny błąd zwykle wskazuje na konfigurację, uprawnienia lub zmianę w danych. Dobrym sposobem jest odtworzenie czynności krok po kroku poza harmonogramem, z zachowaniem tych samych parametrów i tego samego konta. Należy unikać jednoczesnego poprawiania kilku ustawień, ponieważ utrudnia to wskazanie rzeczywistej przyczyny. Po każdej zmianie warto wykonać kontrolne uruchomienie, sprawdzić log oraz upewnić się, że wynik jest kompletny, a nie tylko oznaczony jako zakończony. W przypadku zadań modyfikujących dane wskazane jest wcześniejsze wykonanie kopii bezpieczeństwa oraz sprawdzenie, czy operacja jest odporna na ponowienie. Jeżeli błąd pojawił się po częściowym wykonaniu, ponowne uruchomienie może spowodować duplikaty albo pominięcie rekordów. Pomocne są transakcje, znaczniki postępu, kontrola liczby przetworzonych wierszy i wyraźne rozdzielenie etapów przygotowania, wykonania oraz potwierdzenia wyniku. Nie należy usuwać historii ani zmieniać harmonogramu przed zapisaniem informacji potrzebnych do analizy. Warto zachować komunikaty, definicję kroków, ustawienia uruchamiania i dane o czasie trwania. Tak przygotowany materiał pozwala szybciej ocenić, czy błąd wynika z logiki zadania, infrastruktury, danych wejściowych czy uprawnień. Błąd w zadaniu — kiedy zgłosić problem do serwisuZgłoszenie do serwisu jest uzasadnione, gdy błąd powtarza się mimo sprawdzenia historii, konfiguracji kroków i podstawowych uprawnień, a jego usunięcie może wpłynąć na ciągłość pracy komputera lub dostęp do ważnych danych. Szczególnej ostrożności wymaga sytuacja, w której zadanie wykonuje kopie, porządkuje pliki, synchronizuje dane albo modyfikuje większy zakres informacji. Przed zmianą ustawień dobrze przygotować opis objawów, moment pojawienia się problemu, ostatnie zmiany w systemie oraz dostępne komunikaty. Warszawskie Pogotowie Komputerowe 24/7 zajmuje się pomocą przy problemach z laptopami i komputerami PC, dlatego podczas zgłoszenia warto od razu wskazać, czy błąd pojawia się przy uruchomieniu ręcznym, czy tylko według harmonogramu. Przydatne będą także zrzuty historii zadania, nazwa kroku, kod błędu oraz informacja, czy inne operacje działają prawidłowo. Jeżeli zadanie zaczęło kończyć się błędem po aktualizacji, zmianie hasła, przeniesieniu plików, modyfikacji bazy lub wymianie elementu konfiguracji, należy podać tę informację razem z przybliżonym momentem wystąpienia problemu. Pozwala to zawęzić poszukiwania i ograniczyć ryzyko przypadkowej zmiany działających elementów. Do czasu wyjaśnienia przyczyny nie powinno się bez potrzeby wielokrotnie ponawiać operacji, zwłaszcza gdy może ona tworzyć, usuwać albo nadpisywać dane. |