SQL Server Agent adalah layanan Microsoft Windows yang menjalankan tugas administratif terjadwal, yang disebut pekerjaan di SQL Server.
T-SQL mencakup banyak koleksi prosedur tersimpan yang menangani pekerjaan Agen Server SQL.
Di sini, kami akan menggunakan beberapa di antaranya untuk membuat dan menjadwalkan tugas Agen Server SQL.
Anda juga dapat membuat pekerjaan Agen Server SQL melalui GUI (dalam SSMS) jika Anda mau.
Aktifkan Agen XPs
Jika ini adalah pertama kalinya Anda membuat tugas SQL Server Agent di instans SQL Server, Anda mungkin perlu mengaktifkan prosedur tersimpan diperpanjang Agen SQL Server (Agent XPs).
Berikut cara melakukannya menggunakan T-SQL, dan berikut cara melakukannya menggunakan SSMS GUI.
Setelah Anda selesai melakukannya, Anda dapat melanjutkan dan membuat pekerjaan Agen Server SQL seperti di bawah ini.
Contoh
Berikut adalah contoh kode yang digunakan untuk membuat dan menjadwalkan tugas Agen Server SQL.
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
Di sini, kami menggunakan lima prosedur tersimpan untuk membuat dan menjadwalkan pekerjaan. Sebagian besar prosedur ini menerima lebih banyak argumen (opsional) daripada yang saya gunakan dalam contoh ini. Untuk daftar lengkap argumen yang tersedia untuk setiap prosedur, lihat tautan pada tabel di bawah.
Prosedur tersimpan ini ada di msdb
database, dan Anda dapat melihat bahwa kami menyetel msdb sebagai database saat ini sebelum kami menjalankannya. Atau, Anda dapat mengkualifikasikannya dengan nama database (mis. msdb.dbo.sp_add_job...
, dll)
Tabel berikut memberikan gambaran singkat tentang setiap prosedur.
Prosedur Tersimpan | Deskripsi |
---|---|
sp_add_job | Menambahkan pekerjaan baru yang dijalankan oleh layanan Agen SQL. Lihat situs web Microsoft untuk informasi lebih lanjut. |
sp_add_jobstep | Menambahkan langkah yang melakukan operasi sebenarnya untuk pekerjaan yang ditambahkan dengan sp_add_job . Dalam contoh di atas, kami menambahkan langkah untuk membuat cadangan database. Kami menentukan bahwa menyediakan perintah T-SQL. @retry_interval adalah dalam hitungan menit. Lihat situs web Microsoft untuk informasi lebih lanjut. |
sp_add_schedule | Membuat jadwal yang dapat digunakan oleh sejumlah pekerjaan. Dalam hal ini, kami memberikan @freq_type nilai 4 yang harian. Kami juga memberikan @freq_interval nilai 4 , yang juga setiap hari. Waktu didasarkan pada jam 24 jam, dan dimasukkan dalam bentuk HHMMSS. Contoh kami menggunakan 041000 , yaitu 04:10:00. Lihat tautan Microsoft di bawah untuk berbagai opsi yang tersedia saat mengatur frekuensi. Lihat situs web Microsoft untuk informasi lebih lanjut. |
sp_attach_schedule | Menyetel jadwal pekerjaan. Berikut kami lampirkan jadwal yang telah kami tambahkan dengan sp_add_schedule ke pekerjaan yang kami tambahkan dengan sp_add_job . Perhatikan bahwa jadwal dan pekerjaan harus memiliki pemilik yang sama. Juga, jadwal dapat diatur untuk lebih dari satu pekerjaan, dan pekerjaan dapat dijalankan pada lebih dari satu jadwal. Lihat situs web Microsoft untuk informasi lebih lanjut. |
sp_add_jobserver | Menargetkan pekerjaan yang ditentukan di server yang ditentukan. Ini juga menerima @server_name argumen untuk menentukan server. Nilai defaultnya adalah (LOCAL) untuk mesin lokal. Dalam contoh kami, kami menggunakan mesin lokal sehingga kami dapat menghilangkan argumen ini. Lihat situs web Microsoft untuk informasi lebih lanjut. |
Lihat Pekerjaan
Anda dapat menggunakan sp_help_job
prosedur tersimpan di msdb database untuk melihat pekerjaan SQL Server Agent yang telah dibuat di server.
EXEC sp_help_job;
Begini tampilannya di mesin uji saya:
Dalam hal ini ada tiga pekerjaan.
Anda juga dapat melihat pekerjaan di Object Explorer ketika Anda memiliki SQL Server Agent> Jobs simpul diperluas.
sp_help_job
prosedur tersimpan memungkinkan Anda memberikan nama atau ID pekerjaan untuk mendapatkan informasi lebih rinci tentang pekerjaan itu.
Contoh:
EXEC sp_help_job @job_name= 'BackupPetHotelDB';
Hasil:
Hasilnya dipisahkan menjadi detail pekerjaan inti, langkah pekerjaan, jadwal pekerjaan, dan server target pekerjaan. Ini cukup mencerminkan prosedur tersimpan yang kami jalankan saat kami membuat pekerjaan.
Lihat dokumentasi Microsoft untuk sp_help_job
untuk informasi lebih lanjut, serta daftar argumen lain yang dapat Anda berikan.
Uji Pekerjaan
Anda dapat menggunakan sp_start_job
prosedur tersimpan untuk menguji bahwa pekerjaan Anda akan berjalan. Prosedur ini menerima nama atau ID pekerjaan dan akan menjalankan pekerjaan segera setelah Anda menjalankan prosedur.
Lihat Cara Menjalankan Pekerjaan Agen Server SQL menggunakan T-SQL sebagai contoh.