| Termin | Definicja |
|---|---|
| SQL Server Agent w SSMS | SQL Server Agent w SSMS jest widoczny jako osobny węzeł umożliwiający zarządzanie zadaniami i harmonogramami. SQL Server Agent jako węzeł w SQL Server Management StudioSQL Server Agent to składnik Microsoft SQL Server odpowiedzialny za automatyczne wykonywanie zadań administracyjnych i operacyjnych. W SQL Server Management Studio (SSMS) jest prezentowany w Eksploratorze obiektów jako osobny węzeł znajdujący się pod połączeniem z konkretną instancją SQL Server. Po rozwinięciu tego węzła administrator może przejść między innymi do folderów Jobs, Alerts, Operators, Proxies oraz Error Logs. Widoczność tych elementów zależy od uprawnień zalogowanego użytkownika i od tego, czy usługa SQL Server Agent działa dla danej instancji. SQL Server Agent nie jest niezależnym silnikiem bazy danych. Korzysta z instancji SQL Server, z którą współpracuje, oraz z bazy systemowej msdb, gdzie przechowywana jest konfiguracja zadań, harmonogramów, operatorów, alertów i historii wykonań. Agent może uruchamiać zadania według harmonogramu, reagować na określone zdarzenia silnika lub wykonywać je na żądanie administratora. W SSMS podstawowym miejscem pracy jest folder Jobs, w którym definiuje się poszczególne zadania oraz ich kroki. Budowa zadania: kroki, harmonogramy i warunki wykonaniaJob w SQL Server Agent składa się z nazwy, właściciela, co najmniej jednego kroku oraz opcjonalnego harmonogramu. Krok zadania określa czynność wykonywaną przez agenta. Może to być na przykład uruchomienie instrukcji Transact-SQL, wykonanie polecenia systemu operacyjnego, uruchomienie pakietu SSIS albo zastosowanie innego typu kroku dostępnego w danej wersji i konfiguracji SQL Server. Dla kroku Transact-SQL wskazuje się bazę danych oraz treść polecenia. Kolejne kroki mogą mieć zdefiniowane przejście po sukcesie lub po błędzie, dzięki czemu zadanie może realizować prosty przepływ warunkowy. Harmonogram określa, kiedy zadanie ma zostać uruchomione. SQL Server Agent obsługuje między innymi harmonogramy jednorazowe, cykliczne, dzienne, tygodniowe i miesięczne, a także uruchomienie przy starcie usługi agenta lub w reakcji na bezczynność komputera. W konfiguracji można wskazać datę rozpoczęcia i zakończenia, porę dnia oraz częstotliwość powtarzania. Oddzielenie joba od harmonogramu pozwala przypisać do jednego zadania więcej niż jeden harmonogram, jeśli wymagają tego reguły wykonywania. Po uruchomieniu zadania jego wynik i czas trwania są zapisywane w historii, którą można przeglądać w SSMS. Alerty, operatorzy i kontrola wykonania w SSMSSQL Server Agent może reagować na alerty oparte na błędach silnika SQL Server, określonych warunkach wydajności albo zdarzeniach zapisanych w dzienniku aplikacji Windows. Alert może uruchamiać wybrany job, a także powiadamiać operatora. Operator jest obiektem konfiguracyjnym przechowującym dane kontaktowe przeznaczone do powiadomień, na przykład adres poczty elektronicznej lub pagera, zależnie od możliwości środowiska. Samo utworzenie operatora nie wystarcza do wysyłania wiadomości: skonfigurowana musi być również funkcja Database Mail, a SQL Server Agent musi mieć ustawiony profil poczty. W oknie właściwości zadania można sprawdzić jego właściciela, aktywność, kroki, harmonogramy, reakcje na błędy oraz ustawienia powiadomień. Folder Job Activity Monitor w SSMS pokazuje stan zadań, ostatnie uruchomienie, wynik i następny zaplanowany termin. Przy analizie problemu należy odróżnić błąd samego kroku od błędu uruchomienia zadania, braku harmonogramu, zatrzymanej usługi agenta lub problemu z uprawnieniami. Historia joba może zostać ograniczona ustawieniami przechowywania logów, dlatego przy długotrwałych problemach warto sprawdzić również dziennik SQL Server Agent oraz logi instancji. Uprawnienia i bezpieczne sprawdzanie działania agentaSQL Server Agent wykorzystuje role bazy msdb do rozdzielenia uprawnień użytkowników. Standardowo stosuje się role SQLAgentUserRole, SQLAgentReaderRole i SQLAgentOperatorRole. Użytkownicy należący do tych ról otrzymują różny zakres możliwości dotyczących tworzenia, przeglądania i wykonywania zadań. Członkowie sysadmin mają pełny dostęp do obiektów agenta. Uprawnienia do joba, jego właściciel oraz kontekst bezpieczeństwa konkretnego kroku mogą wpływać na wynik wykonania, nawet gdy ręczne uruchomienie podobnego polecenia w oknie zapytania kończy się powodzeniem. Konfigurację można tworzyć i kontrolować zarówno w SSMS, jak i za pomocą procedur systemowych, takich jak msdb.dbo.sp_add_job, msdb.dbo.sp_add_jobstep, msdb.dbo.sp_add_schedule oraz msdb.dbo.sp_attach_schedule. Do ręcznego uruchomienia istniejącego zadania służy msdb.dbo.sp_start_job. Przed wykonaniem zmian należy sprawdzić, do której instancji jest podłączone SSMS, ponieważ nazwa joba i jego ustawienia dotyczą konkretnego serwera SQL Server. Trzeba także potwierdzić stan usługi SQL Server Agent, poprawność harmonogramu, właściciela zadania i uprawnienia wymagane przez każdy krok. W przypadku diagnostyki komputerowej analizę wykonuje się na podstawie konkretnych komunikatów z historii joba, logu agenta oraz dziennika SQL Server, bez utożsamiania obecności węzła SSMS z prawidłowym wykonaniem wszystkich zadań. |