Bagikan melalui


SQL Server Agent

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Artikel ini memberikan gambaran umum tentang SQL Server Agent, yang merupakan layanan Microsoft Windows yang menjalankan tugas administratif terjadwal (disebut pekerjaan) di SQL Server dan Azure SQL Managed Instance.

Penting

Pada Azure SQL Managed Instance, sebagian besar, tetapi tidak semua fitur SQL Server Agent saat ini didukung. Lihat perbedaan T-SQL antara Azure SQL Managed Instance dan SQL Server untuk lebih jelasnya.

Manfaat SQL Server Agent

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

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.

Nota

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

Komponen Agen SQL Server

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

Gunakan Pengelola Konfigurasi SQL Server untuk mengelola layanan SQL Server Agent, dan menggunakan SQL Server Management Studio (SSMS) untuk mengelola properti, pekerjaan, pemberitahuan, operator, dan proksi SQL Server Agent dengan mudah dalam antarmuka pengguna grafis.

Pekerjaan

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

Penting

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

Anda dapat menjalankan pekerjaan dengan beberapa cara:

  • Berdasarkan satu atau lebih jadwal.

  • Menanggapi satu atau beberapa peringatan.

  • Dengan menjalankan prosedur tersimpan sp_start_job.

Setiap tindakan dalam pekerjaan adalah sebuah langkah dalam 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.

Gunakan prosedur tersimpan sistem sp_help_job untuk mengetahui informasi tentang tugas spesifik. Gunakan dbo.sysjobs tabel sistem untuk melihat informasi tentang pekerjaan. Misalnya, gunakan pernyataan Transact-SQL (T-SQL) berikut untuk melihat informasi tentang semua pekerjaan di server:

USE MSDB
GO
SELECT job_id, [name] FROM dbo.sysjobs;

Jadwal

Jadwal menentukan kapan sebuah tugas dijalankan. 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 untuk waktu ketika pekerjaan berjalan:

  • Setiap kali SQL Server Agent dimulai.

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

  • Satu kali, pada tanggal dan waktu tertentu.

  • Pada jadwal berulang.

Untuk informasi selengkapnya, lihat Membuat dan melampirkan jadwal ke pekerjaan.

Tanda

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

Pemberitahuan dapat merespons salah satu kondisi berikut:

  • Peristiwa SQL Server

  • Kondisi performa SQL Server

  • 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 terkait pemberitahuan melalui...

  • Email

  • Pager (melalui email)

  • kirim pesan jaringan

Nota

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

Penting

Opsi Pager dan net send akan dihapus dari SQL Server Agent di 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 Database Mail.

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 SQLAgentUserRole, SQLAgentReaderRole, dan SQLAgentOperatorRole peran database tetap dalam database msdb untuk mengontrol akses ke SQL Server Agent untuk pengguna yang bukan anggota sysadmin peran server tetap. 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 tetap database SQLAgentUserRole, SQLAgentReaderRole, dan SQLAgentOperatorRole di dalam msdb, serta anggota peran tetap server sysadmin memiliki akses ke SQL Server Agent. Pengguna yang tidak tergabung dalam 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 membatasi akses ke fungsionalitas yang tersedia untuk proksi. Setiap langkah pekerjaan berjalan dalam konteks proksi, kecuali untuk langkah-langkah pekerjaan Transact-SQL. Transact-SQL langkah pekerjaan 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 dalam versi Microsoft SQL Server di masa 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 tugas yang mengaktifkan Agen Penggabungan Replikasi.
Pembaca Antrean Replikasi Jalankan langkah pekerjaan yang mengaktifkan Agen Pembaca Antrean Replikasi.
Cuplikan 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 Layanan Analisis Jalankan kueri Analysis Services.
Pelaksanaan paket SSIS Jalankan paket SSIS.

Nota

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

SQL Server Agent menerapkan pembatasan subsistem bahkan ketika prinsipal keamanan untuk proksi biasanya akan memiliki izin untuk menjalankan tugas dalam tahap 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.

Proxy

SQL Server Agent menggunakan proksi untuk mengelola konteks keamanan. Proksi dapat digunakan dalam lebih dari satu tahap pekerjaan. Anggota sysadmin dalam peran server tetap 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 dalam pekerjaan yang menggunakan proksi tertentu, pemilik pekerjaan harus menggunakan login yang terkait dengan proksi tersebut atau menjadi anggota peran dengan akses penuh ke proksi. Anggota peran server tetap sysadmin memiliki akses tak terbatas ke proksi. Anggota SQLAgentUserRole, SQLAgentReaderRole, atau SQLAgentOperatorRole hanya dapat menggunakan proksi tempat mereka telah diberikan akses tertentu. Setiap pengguna yang merupakan anggota dari salah satu peran database tetap Agen SQL Server ini harus diberikan akses ke proksi tertentu sehingga pengguna dapat membuat langkah-langkah pekerjaan yang menggunakan proksi tersebut.

Mengotomatiskan administrasi

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

  1. Menetapkan 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, Transact-SQL skrip, atau SQL Server Management Objects (SMO). Untuk informasi selengkapnya, lihat Menciptakan Pekerjaan.

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

Nota

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

Jika 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 SeluruhPerusahaan.

Gunakan tugas berikut untuk mulai menggunakan SQL Server Agent:

Deskripsi Artikel
Menjelaskan cara mengonfigurasi SQL Server Agent. Mengonfigurasi SQL Server Agent
Menjelaskan cara memulai, menghentikan, dan menjeda layanan SQL Server Agent. Mulai, Hentikan, atau Jeda Layanan Agen SQL Server
Menjelaskan pertimbangan untuk menentukan akun untuk layanan SQL Server Agent. Pilih Akun untuk SQL Server Agent Service
Menjelaskan cara menggunakan log kesalahan SQL Server Agent. Log Kesalahan Agen SQL Server
Menjelaskan cara menggunakan objek performa. Menggunakan Objek Kinerja
Menjelaskan Wizard Rencana Pemeliharaan, yang merupakan utilitas yang Anda gunakan untuk membuat pekerjaan, pemberitahuan, dan operator untuk mengotomatiskan administrasi instans SQL Server. Gunakan Pandu 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 lainnya yang Anda suka.

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

#NOSQLPS
Import-Module -Name SqlServer