SQL Server Agent

Berlaku untuk: SQL Server Azure SQL Managed Instance

Penting

Pada Azure SQL Managed Instance, sebagian besar, tetapi tidak semua fitur SQL Server Agent saat ini didukung. Lihat Azure SQL Managed Instance perbedaan T-SQL dari SQL Server untuk detailnya.

SQL Server Agent adalah layanan Microsoft Windows yang menjalankan tugas administratif terjadwal, yang disebut pekerjaan di SQL Server.

Manfaat SQL Server Agent

SQL Server Agent menggunakan SQL Server untuk menyimpan informasi pekerjaan. Pekerjaan berisi satu atau beberapa langkah pekerjaan. Setiap langkah berisi tugasnya sendiri, misalnya, mencadangkan database.

SQL Server Agent dapat menjalankan pekerjaan sesuai jadwal, sebagai respons terhadap peristiwa tertentu, atau sesuai permintaan. Misalnya, jika Anda ingin mencadangkan semua server perusahaan setiap hari kerja setelah jam kerja, Anda dapat mengotomatiskan tugas ini. Jadwalkan pencadangan untuk dijalankan setelah pukul 22:00 Senin hingga Jumat. Jika cadangan mengalami masalah, SQL Server Agent dapat merekam peristiwa dan memberi tahu Anda.

Catatan

Secara default, layanan SQL Server Agent dinonaktifkan saat SQL Server diinstal kecuali pengguna secara eksplisit memilih untuk memulai layanan secara otomatis.

Komponen SQL Server Agent

SQL Server Agent menggunakan komponen berikut untuk menentukan tugas yang akan dilakukan, kapan harus melakukan tugas, dan cara melaporkan keberhasilan atau kegagalan tugas.

Pekerjaan

Pekerjaan adalah serangkaian tindakan tertentu yang SQL Server Agent lakukan. Gunakan pekerjaan untuk menentukan tugas administratif yang dapat dijalankan satu atau beberapa kali dan dipantau keberhasilan atau kegagalannya. Pekerjaan dapat berjalan di satu server lokal atau di beberapa server jarak jauh.

Penting

SQL Server Agent pekerjaan yang berjalan pada saat peristiwa failover pada instans kluster failover SQL Server tidak dilanjutkan setelah failover ke node kluster failover lainnya. SQL Server Agent pekerjaan yang berjalan pada saat node Hyper-V dijeda tidak dilanjutkan jika jeda menyebabkan failover ke node lain. Pekerjaan yang dimulai tetapi gagal diselesaikan karena peristiwa failover dicatat sebagai dimulai, tetapi tidak menampilkan entri log tambahan untuk penyelesaian atau kegagalan. SQL Server Agent pekerjaan dalam skenario ini tampaknya tidak pernah berakhir.

Anda dapat menjalankan pekerjaan dengan beberapa cara:

  • Menurut satu atau beberapa jadwal.

  • Menanggapi satu atau beberapa pemberitahuan.

  • Dengan menjalankan prosedur tersimpan sp_start_job.

Setiap tindakan dalam pekerjaan adalah langkah pekerjaan. Misalnya, langkah pekerjaan mungkin terdiri dari menjalankan pernyataan Transact-SQL, menjalankan paket SSIS, atau mengeluarkan perintah ke server Analysis Services. Langkah-langkah pekerjaan dikelola sebagai bagian dari pekerjaan.

Setiap langkah pekerjaan berjalan dalam konteks keamanan tertentu. Untuk langkah-langkah pekerjaan yang menggunakan Transact-SQL, gunakan pernyataan EXECUTE AS untuk mengatur konteks keamanan untuk langkah pekerjaan. Untuk jenis langkah pekerjaan lainnya, gunakan akun proksi untuk mengatur konteks keamanan untuk langkah pekerjaan.

Jadwal

Jadwal menentukan kapan pekerjaan berjalan. Lebih dari satu pekerjaan dapat berjalan pada jadwal yang sama, dan lebih dari satu jadwal dapat berlaku untuk pekerjaan yang sama. Jadwal dapat menentukan kondisi berikut saat tugas berjalan:

  • Setiap kali SQL Server Agent dimulai.

  • Setiap kali pemanfaatan CPU komputer berada pada tingkat yang telah Anda tentukan sebagai menganggur.

  • Satu kali, pada tanggal dan waktu tertentu.

  • Pada jadwal berulang.

Untuk informasi selengkapnya, lihat Membuat dan Melampirkan Jadwal ke Pekerjaan.

Peringatan

Pemberitahuan adalah respons otomatis terhadap peristiwa tertentu. Misalnya, peristiwa dapat menjadi pekerjaan yang dimulai atau sumber daya sistem yang mencapai ambang tertentu. Anda menentukan kondisi di mana pemberitahuan terjadi.

Pemberitahuan dapat merespons salah satu kondisi berikut:

  • peristiwa SQL Server

  • SQL Server kondisi performa

  • Peristiwa Microsoft Windows Management Instrumentation (WMI) di komputer tempat SQL Server Agent berjalan

Pemberitahuan dapat melakukan tindakan berikut:

  • Memberi tahu satu atau beberapa operator

  • Menjalankan pekerjaan

Untuk informasi selengkapnya, lihat Pemberitahuan.

Operator

Operator menentukan informasi kontak untuk individu yang bertanggung jawab atas pemeliharaan satu atau beberapa instans SQL Server. Di beberapa perusahaan, tanggung jawab operator ditetapkan untuk satu individu. Di perusahaan dengan beberapa server, banyak individu dapat berbagi tanggung jawab operator. Operator tidak berisi informasi keamanan, dan tidak menentukan prinsip keamanan.

SQL Server dapat memberi tahu operator tentang peringatan melalui...

  • E-mail

  • Pager (melalui email)

  • kirim bersih

Catatan

Untuk mengirim pemberitahuan dengan menggunakan net send, layanan Windows Messenger harus dimulai di komputer tempat SQL Server Agent berada.

Penting

Opsi Kirim Pager dan net dihapus dari SQL Server Agent dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur-fitur ini.

Untuk mengirim pemberitahuan ke operator dengan menggunakan email atau pager, Anda harus mengonfigurasi SQL Server Agent untuk menggunakan Email Database. Untuk informasi selengkapnya, lihat Email Database.

Anda dapat menentukan operator sebagai alias untuk sekelompok individu. Dengan cara ini, semua anggota alias tersebut tidak diverifikasi secara bersamaan. Untuk informasi selengkapnya, lihat Operator.

Keamanan untuk Administrasi SQL Server Agent

SQL Server Agent menggunakan peran database tetap SQLAgentUserRole, SQLAgentReaderRole, dan SQLAgentOperatorRole dalam database msdb untuk mengontrol akses ke SQL Server Agent bagi pengguna yang bukan anggota peran server tetap sysadmin. Selain peran database tetap ini, subsistem dan proksi membantu administrator database memastikan bahwa setiap langkah pekerjaan berjalan dengan izin minimum yang diperlukan untuk melakukan tugasnya.

Peran

Anggota peran database tetap SQLAgentUserRole, SQLAgentReaderRole, dan SQLAgentOperatorRole dalam msdb, dan anggota peran server tetap sysadmin memiliki akses ke SQL Server Agent. Pengguna yang bukan milik salah satu peran ini tidak dapat menggunakan SQL Server Agent. Untuk informasi selengkapnya tentang peran yang digunakan oleh SQL Server Agent, lihat Menerapkan SQL Server Agent Security.

Subsistem

Subsistem adalah objek yang telah ditentukan sebelumnya yang mewakili fungsionalitas yang tersedia untuk langkah pekerjaan. Setiap proksi memiliki akses ke satu atau beberapa subsistem. Subsistem memberikan keamanan karena memisahkan akses ke fungsionalitas yang tersedia untuk proksi. Setiap langkah pekerjaan berjalan dalam konteks proksi, kecuali untuk langkah-langkah pekerjaan Transact-SQL. Langkah-langkah pekerjaan Transact-SQL menggunakan perintah EXECUTE AS untuk mengatur konteks keamanan kepada pemilik Pekerjaan.

SQL Server menentukan subsistem yang tercantum dalam tabel berikut:

Nama subsistem Deskripsi
Skrip Microsoft ActiveX Jalankan langkah pekerjaan pembuatan skrip ActiveX.

Peringatan Subsistem Scripting ActiveX dihapus dari SQL Server Agent di versi Microsoft SQL Server mendatang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.
Sistem Operasi (CmdExec) Jalankan program yang dapat dieksekusi.
PowerShell Jalankan langkah pekerjaan pembuatan skrip PowerShell.
Distributor Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Distribusi replikasi.
Penggabungan Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Penggabungan replikasi.
Pembaca Antrean Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Pembaca Antrean replikasi.
Rekam Jepret Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Rekam Jepret replikasi.
Pembaca Log Transaksi Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Pembaca Log replikasi.
Perintah Analysis Services Jalankan perintah Analysis Services.
Kueri Analysis Services Jalankan kueri Analysis Services.
Eksekusi paket SSIS Jalankan paket SSIS.

Catatan

Karena langkah-langkah pekerjaan Transact-SQL tidak menggunakan proksi, tidak ada subsistem SQL Server Agent untuk langkah-langkah pekerjaan Transact-SQL.

SQL Server Agent memberlakukan pembatasan subsistem bahkan ketika prinsip keamanan untuk proksi biasanya akan memiliki izin untuk menjalankan tugas dalam langkah pekerjaan. Misalnya, proksi untuk pengguna yang merupakan anggota peran server tetap sysadmin tidak dapat menjalankan langkah pekerjaan SSIS kecuali proksi memiliki akses ke subsistem SSIS, meskipun pengguna dapat menjalankan paket SSIS.

Proksi

SQL Server Agent menggunakan proksi untuk mengelola konteks keamanan. Proksi dapat digunakan dalam lebih dari satu langkah pekerjaan. Anggota peran server tetap sysadmin dapat membuat proksi.

Setiap proksi sesuai dengan kredensial keamanan. Setiap proksi dapat dikaitkan dengan sekumpulan subsistem dan serangkaian login. Proksi hanya dapat digunakan untuk langkah-langkah pekerjaan yang menggunakan subsistem yang terkait dengan proksi. Untuk membuat langkah pekerjaan yang menggunakan proksi tertentu, pemilik pekerjaan harus menggunakan login yang terkait dengan proksi tersebut atau anggota peran dengan akses tak terbatas ke proksi. Anggota peran server tetap sysadmin memiliki akses tak terbatas ke proksi. Anggota SQLAgentUserRole, SQLAgentReaderRole, atau SQLAgentOperatorRole hanya dapat menggunakan proksi di mana mereka telah diberikan akses khusus. Setiap pengguna yang merupakan anggota dari salah satu peran database tetap SQL Server Agent ini harus diberikan akses ke proksi tertentu sehingga pengguna dapat membuat langkah-langkah pekerjaan yang menggunakan proksi tersebut.

Gunakan langkah-langkah berikut untuk mengonfigurasi SQL Server Agent mengotomatiskan administrasi SQL Server:

  1. Tetapkan tugas administratif atau peristiwa server mana yang terjadi secara teratur dan apakah tugas atau peristiwa ini dapat dikelola secara terprogram. Tugas adalah kandidat yang baik untuk otomatisasi jika melibatkan urutan langkah yang dapat diprediksi dan terjadi pada waktu tertentu atau sebagai respons terhadap peristiwa tertentu.

  2. Tentukan serangkaian pekerjaan, jadwal, pemberitahuan, dan operator dengan menggunakan SQL Server Management Studio, skrip Transact-SQL, atau SQL Server Management Objects (SMO). Untuk informasi selengkapnya, lihat Membuat Pekerjaan.

  3. Jalankan pekerjaan SQL Server Agent yang telah Anda tentukan.

Catatan

Untuk instans default SQL Server, layanan SQL Server diberi nama SQLSERVERAGENT. Untuk instans bernama, layanan SQL Server Agent diberi nama SQLAgent$instancename.

Jika Anda menjalankan beberapa instans SQL Server, Anda dapat menggunakan administrasi multiserver untuk mengotomatiskan tugas yang umum di semua instans. Untuk informasi selengkapnya, lihat Administrasi Otomatis Di Seluruh Perusahaan.

Gunakan tugas berikut untuk memulai SQL Server Agent:

Deskripsi Topik
Menjelaskan cara mengonfigurasi SQL Server Agent. Mengonfigurasi SQL Server Agent
Menjelaskan cara memulai, menghentikan, dan menjeda layanan SQL Server Agent. Memulai, Menghentikan, atau Menjeda Layanan SQL Server Agent
Menjelaskan pertimbangan untuk menentukan akun untuk layanan SQL Server Agent. Pilih Akun untuk Layanan SQL Server Agent
Menjelaskan cara menggunakan log kesalahan SQL Server Agent. Log Kesalahan SQL Server Agent
Menjelaskan cara menggunakan objek performa. Menggunakan Objek Performa
Menjelaskan Wizard Rencana Pemeliharaan, yang merupakan utilitas yang Anda gunakan untuk membuat pekerjaan, pemberitahuan, dan operator untuk mengotomatiskan administrasi instans SQL Server. Menggunakan Wizard Rencana Pemeliharaan
Menjelaskan cara mengotomatiskan tugas administratif menggunakan SQL Server Agent. Tugas Administrasi Otomatis (SQL Server Agent)

NOSQLPS

Dimulai dengan SQL Server 2019, Anda dapat menonaktifkan SQLPS. Pada baris pertama langkah pekerjaan jenis PowerShell, Anda dapat menambahkan #NOSQLPS, yang menghentikan Agen SQL memuat otomatis modul SQLPS. Sekarang Pekerjaan Agen SQL Anda menjalankan versi PowerShell yang diinstal pada komputer, lalu Anda dapat menggunakan modul PowerShell lain yang Anda sukai.

Untuk menggunakan modul SqlServer di langkah Pekerjaan Agen SQL, Anda dapat menempatkan kode ini pada dua baris pertama skrip Anda.

#NOSQLPS
Import-Module -Name SqlServer

Lihat juga