Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure 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 Azure SQL Managed Instance dibandingkan dengan SQL Server atau batasan pada pekerjaan Agen SQL di SQL Managed Instance untuk detail lebih lanjut.
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 di luar jam kerja, Anda dapat mengotomatiskan pekerjaan 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 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.
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 saat dimulai, tetapi jangan tampilkan entri log tambahan untuk penyelesaian atau kegagalan. Pekerjaan SQL Server Agent dalam skenario ini tampaknya tidak pernah berakhir.
Anda dapat menjalankan pekerjaan dengan beberapa cara:
- Berdasarkan satu atau lebih jadwal.
- Menanggapi satu atau beberapa peringatan.
- Dengan menjalankan prosedur yang disimpan
sp_start_job.
Setiap tindakan dalam pekerjaan adalah sebuah langkah dalam pekerjaan . Misalnya, langkah pekerjaan mungkin terdiri dari menjalankan pernyataan Transact-SQL, menjalankan paket SQL Server Integration Services (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 EXECUTE AS pernyataan 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 Anda tentukan sebagai menganggur.
- Satu kali, pada tanggal dan waktu tertentu.
- Pada jadwal yang 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
Sebuah peringatan dapat melakukan tindakan-tindakan berikut:
- Beri tahu satu atau lebih operator
- Menjalankan pekerjaan
Untuk informasi selengkapnya, lihat Pemberitahuan SQL Server Agent.
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 pemberitahuan melalui:
- 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 salah satu peran database tetap berikut dalam msdb database untuk mengontrol akses ke SQL Server Agent untuk pengguna yang bukan anggota peran server tetap sysadmin .
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
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 keamanan SQL Server Agent.
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-langkah pekerjaan menggunakan EXECUTE AS perintah 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. |
| Replikasi Distributor | 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 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 tempat mereka 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:
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.
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 Membuat pekerjaan SQL Server Agent.
Jalankan pekerjaan SQL Server Agent yang 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. | 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 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
TDS 8.0 dan dukungan enkripsi yang ketat
SQL Server 2025 (17.x) memperkenalkan dukungan TDS 8.0 dan TLS 1.3 untuk SQL Server Agent, yang dapat menggunakan enkripsi ketat. SQL Server Agent menemukan tingkat enkripsi yang dikonfigurasi di SQL Server Configuration Manager (Force Strict Encryption, Force Encryption, atau tidak ada) dan menggunakan opsi yang sesuai untuk menyambungkan ke SQL Server (strict, , mandatoryatau optional). Pekerjaan SQL Agent T-SQL yang terhubung ke instans lokal menggunakan pengaturan enkripsi SQL Server Agent. Ini berarti bahwa jika SQL Server Agent terhubung dengan strict enkripsi, maka pekerjaan T-SQL lokal juga terhubung dengan tingkat enkripsi yang sama.
| Versi TLS diaktifkan | Pengelola Konfigurasi SQL Pengaturan Konfigurasi |
Hasil SQL Server Agent yang diharapkan | Deskripsi |
|---|---|---|---|
| TLS 1.3 | Wajibkan Enkripsi Ketat | Koneksi berhasil dan mulai | TDS 8.0 menggunakan strict enkripsi |
| TLS 1.3 | Enkripsi Wajib | Kegagalan untuk menyambungkan dan memulai | TLS 1.3 memerlukan strict |
| TLS 1.3 | None | Kegagalan untuk menyambungkan dan memulai | TLS 1.3 memerlukan strict enkripsi |
| TLS 1.2 | Wajibkan Enkripsi Ketat | Koneksi berhasil dan mulai | TDS 8.0 dapat menggunakan TLS 1.2 |
| TLS 1.2 | Enkripsi Wajib | Koneksi berhasil dan mulai | TDS 7.x digunakan untuk mandatory koneksi |
| TLS 1.2 | None | Koneksi berhasil dan mulai | TDS 7.x digunakan untuk optional koneksi |
| TLS 1.3 dan TLS 1.2 | Wajibkan Enkripsi Ketat | Koneksi berhasil dan mulai | TDS 8.0 menggunakan enkripsi strict |
| TLS 1.3 dan TLS 1.2 | Enkripsi Wajib | Koneksi berhasil dan mulai | TDS 7.x digunakan untuk mandatory koneksi |
| TLS 1.3 dan TLS 1.2 | None | Koneksi berhasil dan mulai | TDS 7.x digunakan untuk optional koneksi |