SQL Server Agent to usługa Microsoft Windows, która wykonuje zaplanowane zadania administracyjne, zwane zadaniami w SQL Server.
T-SQL zawiera duży zbiór procedur przechowywanych, które zajmują się zadaniami SQL Server Agent.
Tutaj użyjemy niektórych z nich do utworzenia i zaplanowania zadania agenta SQL Server.
Jeśli wolisz, możesz również tworzyć zadania agenta SQL Server za pomocą GUI (w SSMS).
Włącz XP agenta
Jeśli po raz pierwszy tworzysz zadanie SQL Server Agent w swojej instancji SQL Server, prawdopodobnie będziesz musiał włączyć rozszerzone procedury składowane agenta SQL Server (Agent XP).
Oto jak to zrobić za pomocą T-SQL, a oto jak to zrobić za pomocą GUI SSMS.
Gdy to zrobisz, możesz kontynuować i utworzyć zadanie agenta SQL Server, jak to poniżej.
Przykład
Oto przykład kodu używanego do tworzenia i planowania zadania agenta SQL Server.
USE msdb;
GO
EXEC sp_add_job
@job_name = N'BackupPetHotelDB' ;
GO
EXEC sp_add_jobstep
@job_name = N'BackupPetHotelDB',
@step_name = N'Run the backup',
@subsystem = N'TSQL',
@command = N'BACKUP DATABASE [PetHotel] TO DISK = N''C:\Backups\PetHotel.bak'' WITH CHECKSUM',
@retry_attempts = 5,
@retry_interval = 5;
GO
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
EXEC sp_add_jobserver
@job_name = N'BackupPetHotelDB';
GO
Tutaj używamy pięciu procedur składowanych w celu utworzenia i zaplanowania zadania. Większość z tych procedur akceptuje znacznie więcej (opcjonalnych) argumentów niż te, których użyłem w tym przykładzie. Aby uzyskać pełną listę argumentów dostępnych dla każdej procedury, zobacz łącza w poniższej tabeli.
Te procedury składowane znajdują się w msdb
bazy danych i widać, że ustawiliśmy msdb jako bieżąca baza danych, zanim je uruchomiliśmy. Alternatywnie możesz zakwalifikować je nazwą bazy danych (np. msdb.dbo.sp_add_job...
itd.)
Poniższa tabela zawiera szybki przegląd każdej procedury.
Procedura przechowywana | Opis |
---|---|
sp_add_job | Dodaje nowe zadanie wykonywane przez usługę SQL Agent. Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji. |
sp_add_jobstep | Dodaje krok, który wykonuje rzeczywistą operację dla zadania dodanego za pomocą sp_add_job . W powyższym przykładzie dodajemy krok do backupu bazy danych. Określamy to podając polecenie T-SQL. @retry_interval jest w kilka minut. Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji. |
sp_add_schedule | Tworzy harmonogram, który może być używany przez dowolną liczbę zadań. W tym przypadku podaliśmy @freq_type wartość 4 który jest codziennie. Daliśmy również @freq_interval wartość 4 , który jest również codziennie. Czas jest oparty na zegarze 24-godzinnym i jest wprowadzany w postaci GGMMSS. Nasz przykład używa 041000 , czyli 04:10:00. Zobacz łącze Microsoft poniżej, aby zapoznać się z różnymi opcjami dostępnymi podczas ustawiania częstotliwości. Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji. |
sp_attach_schedule | Ustawia harmonogram zadania. Tutaj dołączamy harmonogram, który dodaliśmy za pomocą sp_add_schedule do zadania, które dodaliśmy za pomocą sp_add_job . Pamiętaj, że harmonogram i zadanie muszą mieć tego samego właściciela. Ponadto harmonogram można ustawić dla więcej niż jednego zadania, a zadanie można uruchomić w więcej niż jednym harmonogramie. Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji. |
sp_add_jobserver | Celuje określone zadanie na określonym serwerze. Akceptuje to również @server_name argument do określenia serwera. Wartość domyślna to (LOCAL) dla komputera lokalnego. W naszym przykładzie użyliśmy komputera lokalnego, więc mogliśmy pominąć ten argument. Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji. |
Wyświetl zadanie
Możesz użyć sp_help_job
procedura składowana w msdb bazy danych, aby wyświetlić zadania SQL Server Agent, które zostały utworzone na serwerze.
EXEC sp_help_job;
Oto jak to wygląda na mojej maszynie testowej:
W tym przypadku są trzy miejsca pracy.
Możesz również zobaczyć zadania w Eksploratorze obiektów, gdy masz SQL Server Agent> Zadania węzeł rozwinięty.
sp_help_job
procedura składowana umożliwia podanie nazwy lub identyfikatora zadania w celu uzyskania bardziej szczegółowych informacji o tym zadaniu.
Przykład:
EXEC sp_help_job @job_name= 'BackupPetHotelDB';
Wynik:
Wyniki są rozdzielane na podstawowe szczegóły zadania, etapy zadania, harmonogramy zadań i serwery docelowe zadań. Odzwierciedla to w dużym stopniu procedury składowane, które uruchomiliśmy podczas tworzenia zadania.
Zobacz dokumentację firmy Microsoft dla sp_help_job
aby uzyskać więcej informacji, a także listę innych argumentów, które możesz podać.
Przetestuj zadanie
Możesz użyć sp_start_job
procedura składowana, aby sprawdzić, czy zadanie zostanie uruchomione. Ta procedura akceptuje nazwę lub identyfikator zadania i uruchomi zadanie, gdy tylko wykonasz procedurę.
Zobacz Jak uruchomić zadanie agenta SQL Server przy użyciu T-SQL, jako przykład.