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:Azure SQL Database
Artikel ini meninjau kemampuan dan detail pekerjaan elastis untuk Azure SQL Database.
- Untuk tutorial tentang mengonfigurasi pekerjaan elastis, lihat tutorial pekerjaan elastis.
- Pelajari selengkapnya tentang konsep otomatisasi di platform database Azure.
Gambaran umum pekerjaan elastis
Anda dapat membuat dan menjadwalkan pekerjaan elastis yang berjalan secara berkala terhadap satu atau banyak database Azure SQL. Pekerjaan menjalankan kueri Transact-SQL (T-SQL) dan melakukan tugas pemeliharaan.
Anda dapat menentukan database target atau grup database tempat pekerjaan berjalan. Anda juga dapat menentukan jadwal untuk menjalankan pekerjaan. Semua tanggal dan waktu dalam pekerjaan elastis berada di zona waktu UTC.
Pekerjaan menangani tugas autentikasi ke database target. Anda juga menentukan, memelihara, dan mempertahankan skrip Transact-SQL untuk dijalankan di seluruh grup database.
Setiap pekerjaan mencatat status eksekusi dan secara otomatis mencoba kembali operasi jika terjadi kegagalan.
Kapan menggunakan pekerjaan elastis
Gunakan otomatisasi pekerjaan elastis dalam skenario berikut:
-
Mengotomatiskan tugas manajemen dan menjadwalkannya untuk dijalankan setiap hari kerja atau setelah jam kerja, misalnya.
- Menyebarkan perubahan skema dan mengelola kredensial.
- Kumpulkan data performa atau log penyewa (pelanggan).
- Memperbarui data referensi (informasi umum di semua database).
- Muat data dari penyimpanan Azure Blob.
-
Konfigurasikan pekerjaan untuk dijalankan di kumpulan database secara berulang, seperti selama jam tidak sibuk.
- Kumpulkan hasil kueri dari sekumpulan database ke dalam tabel pusat secara berkelanjutan.
- Kueri dapat terus berjalan dan dikonfigurasi untuk memicu tugas tambahan.
-
Mengumpulkan data untuk pelaporan
- Mengumpulkan data dari kumpulan database ke dalam satu tabel tujuan.
- Jalankan kueri pemrosesan data di seluruh sekumpulan besar database, misalnya pengumpulan log pelanggan. Hasil dikumpulkan ke dalam satu tabel tujuan untuk analisis lebih lanjut.
-
Pergerakan data
- Untuk solusi yang dikembangkan khusus, otomatisasi bisnis, atau manajemen tugas lainnya.
- Pemrosesan ETL untuk mengekstrak, mengubah, dan memuat data antar tabel dalam database.
Pertimbangkan pekerjaan elastis saat Anda:
Memiliki tugas yang perlu berjalan secara teratur sesuai jadwal, menargetkan satu atau beberapa database.
Memiliki tugas yang perlu dijalankan sekali, tetapi di beberapa database.
Perlu menjalankan pekerjaan terhadap kombinasi database apa pun: satu atau beberapa database individual, semua database di server, semua database dalam kumpulan elastis, dengan fleksibilitas tambahan untuk menyertakan atau mengecualikan database tertentu. Pekerjaan dapat berjalan di beberapa server, beberapa kumpulan, dan dapat beroperasi pada database di dalam langganan-langganan yang berbeda. Server dan pool secara dinamis didaftar pada waktu operasi, sehingga tugas berjalan terhadap semua database yang ada di grup target saat eksekusi.
- Kemampuan ini adalah diferensiasi signifikan dari SQL Agent, yang tidak dapat menghitung database target secara dinamis, terutama dalam skenario pelanggan SaaS di mana database ditambahkan atau dihapus secara dinamis.
Komponen pekerjaan elastis
| Komponen | Deskripsi |
|---|---|
| Agen pekerjaan elastis | Sumber daya Azure yang Anda buat untuk menjalankan dan mengelola pekerjaan. |
| Database pekerjaan | Database di Azure SQL Database yang digunakan agen pekerjaan untuk menyimpan data terkait pekerjaan, definisi pekerjaan, dan lainnya. |
| Pekerjaan | Pekerjaan adalah unit pekerjaan yang terdiri dari satu atau beberapa langkah pekerjaan. Langkah-langkah pekerjaan menentukan skrip T-SQL untuk dijalankan dan detail lain yang diperlukan. |
| Kelompok sasaran | Sekumpulan server, pool, dan database untuk menjalankan tugas. |
Agen pekerjaan elastis
Agen pekerjaan elastis adalah sumber daya Azure untuk membuat, menjalankan, dan mengelola pekerjaan. Anda membuat agen pekerjaan elastis sebagai sumber daya Azure di portal (Membuat dan mengelola pekerjaan elastis dengan menggunakan PowerShell dan REST API juga didukung).
Membuat agen pekerjaan elastis memerlukan database yang sudah ada di Azure SQL Database. Agen mengonfigurasi Azure SQL Database yang ada ini sebagai database pekerjaan.
Anda dapat memulai, menonaktifkan, atau membatalkan pekerjaan melalui portal Azure. portal Azure juga memungkinkan Anda melihat definisi pekerjaan dan riwayat eksekusi.
Biaya agen pekerjaan elastis
Basis data pekerjaan ditagih pada tarif yang sama dengan basis data apa pun di Azure SQL Database. Harga untuk agen tugas elastis didasarkan pada penetapan harga tetap dari tingkat layanan yang Anda pilih untuk agen tugas tersebut. Untuk informasi selengkapnya, lihat halaman harga Azure SQL Database.
Database pekerjaan elastis
Gunakan database pekerjaan untuk menentukan pekerjaan dan melacak status dan riwayat eksekusi pekerjaan. Tugas dijalankan pada database target. Database pekerjaan juga menyimpan metadata agen, log, hasil, dan definisi pekerjaan. Ini berisi banyak prosedur tersimpan yang berguna dan objek database lainnya untuk membuat, menjalankan, dan mengelola pekerjaan menggunakan T-SQL.
Anda memerlukan Azure SQL Database untuk membuat agen pekerjaan elastis. Agen pekerjaan menyimpan semua metadata terkait pekerjaannya dalam database pekerjaan, yang seharusnya menjadi Azure SQL Database baru yang kosong.
Tujuan layanan yang direkomendasikan dari database pekerjaan adalah DTU S1 atau lebih tinggi, tetapi pilihan optimal tergantung pada kebutuhan performa pekerjaan Anda: jumlah langkah pekerjaan, jumlah target pekerjaan, dan seberapa sering pekerjaan berjalan.
Jika operasi terhadap database pekerjaan lebih lambat dari yang diharapkan, pantau kinerja database dan pemanfaatan sumber daya dalam database pekerjaan selama periode lambat menggunakan portal Microsoft Azure atau DMV sys.dm_db_resource_stats. Jika pemanfaatan sumber daya, seperti CPU, IO Data, atau Log Write mendekati 100% dan berkorelasi dengan periode kelambatan, pertimbangkan untuk menskalakan database secara bertahap ke tujuan layanan yang lebih tinggi (baik dalam model pembelian berbasis DTU atau dalam model pembelian vCore) hingga performa database pekerjaan cukup meningkat.
Basis data tugas itu sendiri dapat menjadi target pekerjaan elastis. Dalam skenario ini, perlakukan database pekerjaan sama seperti database target lainnya. Anda harus membuat pengguna tugas dan memberikan izin yang cukup pada basis data tugas. Kredensial cakupan database untuk pengguna pekerjaan juga harus ada di database pekerjaan, seperti halnya untuk database target lainnya.
Ketika database pekerjaan menjadi target sebuah pekerjaan, pastikan pekerjaan Anda tidak mengubah atau menghapus metadata khusus agen pekerjaan yang disimpan dalam database tersebut. Hanya gunakan prosedur tersimpan pekerjaan atau tampilan pekerjaan untuk memodifikasi atau mengkueri informasi terkait pekerjaan.
Penting
Jangan ubah objek yang sudah ada atau buat objek baru di database pekerjaan, meskipun Anda dapat membaca dari tabel untuk pelaporan dan analitik.
Pekerjaan elastis dan langkah-langkah pekerjaan
Pekerjaan adalah unit pekerjaan yang berjalan sesuai jadwal atau sebagai pekerjaan satu kali. Pekerjaan terdiri dari satu atau beberapa langkah pekerjaan.
Setiap langkah pekerjaan menentukan skrip T-SQL untuk dijalankan, satu atau beberapa grup target untuk menjalankan skrip T-SQL, dan kredensial yang perlu disambungkan agen pekerjaan ke database target. Setiap langkah pekerjaan memiliki kebijakan waktu habis dan coba lagi yang dapat disesuaikan, dan dapat secara opsional menentukan parameter output.
Target pekerjaan elastis
Pekerjaan elastis dapat menjalankan satu atau beberapa skrip T-SQL secara paralel, di sejumlah besar database, sesuai jadwal, atau sesuai permintaan. Sasaran dapat berupa tingkat Azure SQL Database apa pun.
Anda dapat menjalankan pekerjaan terjadwal terhadap kombinasi database apa pun: satu atau beberapa database individual, semua database di server, atau semua database dalam kumpulan elastis, dengan fleksibilitas tambahan untuk menyertakan atau mengecualikan database tertentu. Pekerjaan dapat berjalan di beberapa server dan beberapa kumpulan, dan bahkan dapat berjalan terhadap database dalam langganan yang berbeda. Server-server dan kumpulan secara dinamis ditentukan pada waktu runtime, sehingga tugas berjalan terhadap semua database yang ada di grup target saat dijalankan.
Gambar berikut menunjukkan agen pekerjaan yang mengeksekusi pekerjaan di berbagai jenis grup target:
Kelompok sasaran
Grup target menentukan kumpulan database tempat langkah pekerjaan berjalan. Grup target dapat berisi angka dan kombinasi apa pun dari jenis berikut:
Server SQL logis: jika Anda menentukan server, semua database yang ada di server pada saat eksekusi pekerjaan adalah bagian dari grup. Anda harus memberikan
masterkredensial database sehingga grup dapat dijumlahkan dan diperbarui sebelum eksekusi pekerjaan. Untuk informasi selengkapnya tentang server logis, lihat Apa itu server logis di Azure SQL Database dan Azure Synapse?Kumpulan elastis: jika Anda menentukan kumpulan elastis, semua database yang berada di kumpulan elastis pada saat eksekusi pekerjaan adalah bagian dari grup. Seperti halnya
masterserver, Anda harus memberikan kredensial database sehingga grup dapat diperbarui sebelum eksekusi pekerjaan.Database tunggal: tentukan satu atau beberapa database individual untuk menjadi bagian dari grup.
Tip
Ketika pekerjaan dieksekusi, enumerasi dinamis mengevaluasi ulang kumpulan database dalam grup target yang menyertakan server atau kumpulan. Enumerasi dinamis memastikan bahwa tugas dijalankan di semua database yang ada di server atau pool pada saat pelaksanaan tugas. Mengevaluasi ulang daftar database saat runtime berguna untuk skenario di mana keanggotaan kumpulan atau server sering berubah.
Kumpulan dan database tunggal dapat disertakan atau dikecualikan dari grup. Anda dapat membuat grup target dengan kombinasi database apa pun. Misalnya, Anda dapat menambahkan server ke grup target, tetapi mengecualikan database tertentu dalam kumpulan elastis (atau mengecualikan seluruh kumpulan).
Grup target dapat menyertakan database dalam beberapa langganan dan di beberapa wilayah. Eksekusi lintas wilayah memiliki latensi yang lebih tinggi daripada eksekusi dalam wilayah yang sama.
Contoh berikut menunjukkan bagaimana definisi grup target yang berbeda dijumlahkan secara dinamis pada saat eksekusi pekerjaan untuk menentukan database mana yang akan terpengaruh:
Contoh 1 memperlihatkan grup target yang terdiri dari daftar database individual. Saat langkah pekerjaan menggunakan grup target ini, tindakan langkah pekerjaan dijalankan di masing-masing database tersebut.
Contoh 2 memperlihatkan grup target yang berisi server sebagai target. Ketika langkah pekerjaan menggunakan grup target ini, server secara dinamis dijumlahkan untuk menentukan daftar database yang saat ini berada di server. Tindakan langkah pekerjaan dijalankan di masing-masing database tersebut.
Contoh 3 memperlihatkan grup target yang sama dengan Contoh 2, tetapi database individual secara khusus dikecualikan. Tindakan langkah pekerjaan tidak dijalankan dalam database yang dikecualikan.
Contoh 4 menunjukkan grup sasaran yang mencakup kumpulan elastis sebagai target. Mirip dengan Contoh 2, kumpulan secara dinamis dijumlahkan pada waktu proses pekerjaan untuk menentukan daftar database di kumpulan.
- Contoh 5 dan Contoh 6 memperlihatkan skenario tingkat lanjut di mana server, kumpulan elastis, dan database dapat digabungkan menggunakan sertakan dan mengecualikan aturan.
Jadwal pekerjaan elastis
Pekerjaan elastis adalah produk yang dirancang untuk cloud sebagai prioritas utama. Mereka dirancang untuk memulai bahkan jika masalah jaringan sementara atau ketersediaan layanan terjadi saat dijadwalkan. Jadwal pekerjaan elastis memperhitungkan waktu mulai jadwal dan interval yang diminta. Saat Anda membuat jadwal pekerjaan elastis, pekerjaan akan berjalan sesegera mungkin setelah setiap peristiwa interval terjadwal.
Penting
Sebagai praktik terbaik, buat jadwal pekerjaan yang dimulai di masa mendatang.
Jadwal pekerjaan mendeteksi peristiwa yang terlewat. Jika Anda membuat jadwal pekerjaan baru yang dimulai di masa lalu, pekerjaan akan segera dijalankan saat diaktifkan. Jika dinonaktifkan atau tidak tersedia, pekerjaan akan segera berjalan setelah diaktifkan atau tersedia.
Misalnya, saat ini 2 Januari, 09.00 UTC. Anda menyiapkan pekerjaan baru untuk menjadwalkan waktu mulai malam ini, 2 Januari pukul 22.30 (UTC), untuk dijalankan setiap hari. Pekerjaan dijalankan pada pukul 22.30 (UTC).
Untuk mencegah pekerjaan dimulai secara tidak sengaja, buat jadwal yang dimulai di masa mendatang. Dalam contoh yang dapat menyebabkan mulai pekerjaan secara tidak sengaja, Anda menyiapkan pekerjaan baru untuk berjalan setiap hari pada pukul 22.30 UTC. Anda menonaktifkan pekerjaan selama seminggu. Kemudian, jika Anda mengaktifkan pekerjaan pada pukul 08.30 UTC, pekerjaan segera dijalankan, mengejar ketinggalan dari peristiwa interval yang terlewat yang seharusnya dijalankan semalam. Setelah eksekusi, agen tugas tidak akan berjalan lagi hingga eksekusi terjadwal berikutnya pada pukul 22.30 UTC. Untuk mencegah eksekusi pada pukul 08.30 UTC dalam skenario ini, perbarui jadwal pekerjaan mulai 8 Januari pukul 22.30 UTC, lalu aktifkan pekerjaan. Atau, aktifkan pekerjaan pada saat pekerjaan dapat langsung berjalan.
Autentikasi
Pilih satu metode untuk semua target pada agen tugas elastis. Misalnya, untuk satu agen pekerjaan elastis, Anda tidak dapat mengonfigurasi satu server target untuk menggunakan kredensial yang cakupannya terbatas pada database dan yang lain untuk menggunakan autentikasi Microsoft Entra ID.
Agen pekerjaan elastis dapat tersambung ke server dan database yang ditentukan oleh grup target menggunakan dua opsi autentikasi:
- Gunakan autentikasi Microsoft Entra (sebelumnya Azure Active Directory) dengan identitas terkelola yang ditetapkan pengguna (UMI).
- Gunakan kredensial cakupan basis data.
Autentikasi melalui identitas terkelola yang ditetapkan pengguna (UMI)
Autentikasi Microsoft Entra melalui identitas terkelola yang ditetapkan pengguna (UMI) adalah opsi yang direkomendasikan untuk menyambungkan pekerjaan elastis ke Azure SQL Database. Dengan dukungan Microsoft Entra ID, agen tugas terhubung ke basis data target (termasuk database, server, dan kumpulan elastis) serta basis data keluaran menggunakan UMI.
Secara opsional, Anda dapat mengaktifkan autentikasi ID Microsoft Entra di server logis yang berisi database pekerjaan elastis, untuk mengakses dan mengkueri database tersebut melalui koneksi ID Microsoft Entra. Namun, agen pekerjaan menggunakan autentikasi berbasis sertifikat internal untuk menyambungkan ke database pekerjaannya.
Anda dapat membuat satu UMI, atau menggunakan UMI yang ada, dan menetapkan UMI yang sama ke beberapa agen tugas. Setiap agen pekerjaan hanya mendukung satu UMI. Setelah Anda menetapkan UMI ke agen pekerjaan, agen pekerjaan menggunakan identitas ini untuk menyambungkan dan menjalankan pekerjaan T-SQL di database target. Agen pekerjaan tidak menggunakan Autentikasi SQL terhadap server target atau database.
Nama UMI harus dimulai dengan huruf atau angka dan memiliki panjang antara 3 dan 128 karakter. Ini dapat berisi karakter tanda hubung (-) dan garis bawah (_).
Untuk informasi selengkapnya tentang UMI di Azure SQL Database, lihat Identitas terkelola untuk Azure SQL, termasuk langkah-langkah yang diperlukan dan manfaat menggunakan UMI sebagai identitas server logis Azure SQL Database. Untuk informasi selengkapnya, lihat Autentikasi Microsoft Entra untuk Azure SQL.
Penting
Saat menggunakan autentikasi ID Microsoft Entra, buat pengguna Anda jobuser dari ID Microsoft Entra tersebut di setiap database target. Berikan pengguna tersebut izin yang diperlukan untuk menjalankan pekerjaan Anda di setiap database target.
Menggunakan identitas terkelola yang ditetapkan sistem (SMI) tidak didukung.
Autentikasi melalui kredensial dengan cakupan basis data
Meskipun autentikasi Microsoft Entra (sebelumnya Azure Active Directory) adalah opsi yang direkomendasikan, Anda dapat mengonfigurasi pekerjaan untuk menggunakan kredensial cakupan database untuk menyambungkan ke database yang ditentukan oleh grup target setelah eksekusi. Sebelum Oktober 2023, kredensial terlingkup basis data adalah satu-satunya opsi autentikasi.
Jika grup target berisi server atau kumpulan, kredensial yang terkait dengan cakupan basis data ini tersambung ke master database untuk menyusun daftar database yang tersedia.
Buat kredensial cakupan database dalam database pekerjaan.
Semua database target harus memiliki login dengan izin yang memadai agar pekerjaan berhasil diselesaikan (
jobuserdalam diagram berikut).Kredensial yang Anda buat di database target (
LOGINdanPASSWORDuntukmasteruserdanjobuser, dalam diagram berikut) harus cocok denganIDENTITYdanSECRETdalam kredensial yang Anda buat di database pekerjaan.Anda dapat menggunakan kembali kredensial di berbagai proyek. Kata sandi kredensial dienkripsi dan diamankan dari pengguna yang memiliki akses baca-saja ke objek pekerjaan.
Gambar berikut membantu Anda memahami cara menyiapkan kredensial pekerjaan yang tepat, dan bagaimana agen pekerjaan elastis terhubung menggunakan kredensial database sebagai autentikasi untuk masuk dan pengguna di server dan database target.
Catatan
Saat menggunakan kredensial dengan cakupan database, pastikan untuk membuat pengguna jobuser Anda di setiap database target.
Titik akhir privat pekerjaan elastis
Agen pekerjaan elastis mendukung titik akhir privat pekerjaan elastis. Membuat titik akhir privat untuk pekerjaan elastis menetapkan tautan privat antara pekerjaan elastis dan server target. Fitur titik akhir privat untuk pekerjaan elastis berbeda dari Azure Private Link.
Fitur titik akhir privat pekerjaan elastis mendukung koneksi privat ke server target dan output, sehingga agen pekerjaan dapat menjangkaunya bahkan ketika opsi Tolak Akses Publik diaktifkan. Menggunakan titik akhir privat juga merupakan salah satu solusi yang mungkin jika Anda ingin menonaktifkan opsi Izinkan layanan dan sumber daya Azure mengakses server tersebut.
Titik akhir privat pekerjaan elastis mendukung semua opsi autentikasi agen pekerjaan elastis.
Fitur titik akhir privat pekerjaan elastis memungkinkan Anda memilih titik akhir privat yang dikelola layanan untuk membangun koneksi yang aman antara agen pekerjaan dan server target dan outputnya. Titik akhir privat yang dikelola layanan adalah alamat IP privat dalam jaringan virtual dan subnet tertentu. Saat Anda memilih menggunakan titik akhir privat pada salah satu server target dan output job agent Anda, Azure membuat titik akhir privat yang dikelola oleh layanan. Titik akhir privat ini kemudian secara eksklusif digunakan oleh agen pekerjaan untuk menghubungkan dan menjalankan pekerjaan, atau untuk menulis output pekerjaan pada database target dan output tersebut.
Anda dapat membuat dan mengizinkan titik akhir privat pekerjaan elastis melalui portal Microsoft Azure. Server target yang terhubung melalui tautan privat dapat berada di mana saja di Azure, bahkan di geografi dan langganan yang berbeda. Anda harus membuat titik akhir privat untuk setiap server target yang dituju dan server output pekerjaan guna mengaktifkan komunikasi ini.
Untuk tutorial mengenai konfigurasi titik akhir privat baru yang dikelola layanan untuk Azure SQL elastic jobs, lihat Konfigurasi titik akhir privat pekerjaan elastis Azure SQL.
Persyaratan untuk titik akhir privat pekerjaan elastis
Untuk menggunakan titik akhir privat pekerjaan elastis, agen pekerjaan dan server target atau database harus dihosting di Azure (wilayah yang sama atau berbeda) dan dalam jenis cloud yang sama (misalnya, baik di cloud publik maupun di cloud pemerintah).
Penyedia
Microsoft.Networksumber daya wajib terdaftar untuk langganan host agen tugas dan server target serta keluaran.Azure membuat endpoint privat tugas elastis per target dan server keluaran. Anda harus menyetujui elemen-elemen tersebut sebelum agen pekerjaan elastis dapat menggunakannya. Anda dapat menyetujuinya melalui panel Jaringan server logis tersebut atau klien pilihan Anda. Kemudian, agen pekerjaan elastis dapat menjangkau database apa pun di bawah server tersebut menggunakan koneksi privat.
Koneksi dari agen pekerjaan elastis ke database pekerjaan tidak menggunakan titik akhir privat. Agen pekerjaan itu sendiri menggunakan autentikasi berbasis sertifikat internal untuk menyambungkan ke database pekerjaannya.
- Jika Anda menambahkan database pekerjaan sebagai anggota grup target, database tersebut bertindak sebagai target reguler. Anda perlu menyiapkan titik akhir privat sesuai kebutuhan.
Izin database tugas elastis
Selama pembuatan agen pekerjaan, skema, tabel, dan peran yang disebut jobs_reader dibuat dalam job database. Peran ini dibuat dengan izin berikut dan dirancang untuk memberi administrator kontrol akses yang lebih baik untuk pemantauan pekerjaan. Pengelola dapat memberikan pengguna kemampuan untuk memantau pelaksanaan tugas dengan menambahkannya ke dalam peran di dalam database tugas.
| Nama peran |
jobs izin skema |
jobs_internal hak akses skema |
|---|---|---|
jobs_reader |
SELECT |
Tidak |
Perhatian
Jangan perbarui tampilan katalog internal dalam database pekerjaan, seperti jobs.target_group_members. Mengubah tampilan katalog ini secara manual dapat merusak database pekerjaan dan menyebabkan kegagalan. Tampilan ini hanya untuk kueri baca-saja. Anda dapat menggunakan prosedur tersimpan pada database pekerjaan Anda untuk menambahkan atau menghapus grup target dan anggota, seperti jobs.sp_add_target_group_member.
Pertimbangkan implikasi keamanan sebelum memberikan akses yang ditingkatkan ke database pekerjaan. Pengguna berbahaya dengan izin untuk membuat atau mengedit pekerjaan dapat membuat atau mengedit pekerjaan yang menggunakan kredensial tersimpan untuk menyambungkan ke database di bawah kontrol pengguna berbahaya. Kerentanan ini dapat memungkinkan pengguna berbahaya untuk menentukan kata sandi kredensial atau menjalankan perintah berbahaya.
Memantau pekerjaan elastis
Agen pekerjaan elastis terintegrasi dengan Pemberitahuan Azure untuk pemberitahuan status pekerjaan, menyederhanakan solusi untuk memantau status dan riwayat eksekusi pekerjaan.
Portal Microsoft Azure menyertakan fitur tambahan untuk mendukung pekerjaan elastis dan pemantauan pekerjaan. Pada halaman Gambaran Umum agen pekerjaan Elastis, eksekusi pekerjaan terbaru ditampilkan, seperti yang ditunjukkan pada cuplikan layar berikut.
Anda dapat membuat aturan Pemberitahuan Azure Monitor dengan portal Azure, Azure CLI, PowerShell, dan REST API. Metrik Pekerjaan Elastis yang Gagal adalah titik awal yang baik untuk memantau dan menerima notifikasi tentang eksekusi pekerjaan elastis. Selain itu, Anda dapat memilih untuk diberi tahu melalui tindakan yang dapat dikonfigurasi seperti SMS atau email oleh fasilitas Pemberitahuan Azure. Untuk informasi selengkapnya, lihat Membuat pemberitahuan untuk Azure SQL Database di portal Azure.
Untuk sampel, lihat Membuat, mengonfigurasi, dan mengelola tugas elastis.
Output pekerjaan
Hasil langkah-langkah pekerjaan pada setiap database target dicatat secara rinci, dan output skrip dapat diambil ke tabel tertentu. Anda bisa menentukan database untuk menyimpan data apa pun yang dikembalikan dari pekerjaan.
Riwayat pekerjaan
Anda dapat melihat riwayat eksekusi pekerjaan elastis dalam database pekerjaan dengan mengkueri tabel jobs.job_executions. Pekerjaan pembersihan sistem membersihkan riwayat eksekusi yang lebih lama dari 45 hari. Untuk menghapus riwayat yang berusia kurang dari 45 hari secara manual, jalankan sp_purge_jobhistory prosedur tersimpan dalam database pekerjaan.
Status pekerjaan
Anda dapat memantau eksekusi pekerjaan elastis pada database pekerjaan dengan melakukan kueri pada tabel jobs.job_executions.
Praktik terbaik
Pertimbangkan praktik terbaik berikut saat bekerja dengan pekerjaan database elastis.
Praktik terbaik keamanan
Batasi penggunaan API untuk individu tepercaya.
Berikan kredensial hak istimewa sesedikit mungkin yang diperlukan untuk melakukan tahap tugas. Untuk informasi selengkapnya, lihat Otorisasi dan Izin.
Saat menggunakan server atau anggota grup target kumpulan, buat kredensial terpisah dengan hak pada
masterdatabase untuk menampilkan dan mencantumkan database. Kredensial ini memperluas daftar database dari server dan pool sebelum pelaksanaan pekerjaan.
Performa pekerjaan elastis
Pekerjaan elastis menggunakan sumber daya komputasi minimal sambil menunggu pekerjaan jangka panjang selesai.
Tergantung pada ukuran grup target database dan waktu eksekusi yang diinginkan untuk pekerjaan (jumlah pekerja bersamaan), agen memerlukan jumlah komputasi dan performa database pekerjaan yang berbeda (semakin banyak target dan jumlah pekerjaan yang lebih tinggi, semakin tinggi jumlah komputasi yang diperlukan).
Tingkat kapasitas bersamaan
Mulai Oktober 2023, agen pekerjaan elastis memiliki beberapa tingkat performa untuk memungkinkan peningkatan kapasitas.
Kenaikan kapasitas menunjukkan jumlah total dari database target yang dapat terhubung secara bersamaan yang dapat disambungkan oleh agen tugas dan memulai pekerjaan. Untuk mendapatkan jumlah koneksi target bersamaan yang lebih banyak untuk pelaksanaan pekerjaan, tingkatkan kelas agen pekerjaan dari kelas default JA100, yang memiliki batas 100 koneksi target bersamaan.
Sebagian besar lingkungan memerlukan kurang dari 100 pekerjaan bersamaan kapan saja, sehingga JA100 adalah default.
| Tingkatan agen tugas elastis | Jumlah tugas bersamaan maksimum |
|---|---|
JA100 |
100 |
JA200 |
200 |
JA400 |
400 |
JA800 |
800 |
Melebihi tingkat kapasitas konkurensi agen pekerjaan dengan target pekerjaan menciptakan penundaan antrean untuk beberapa database dan server target. Misalnya, jika Anda memulai pekerjaan dengan 110 target di tingkat JA100, 10 target menunggu untuk memulai sampai yang lain selesai.
Anda dapat memodifikasi tingkat atau tujuan layanan agen pekerjaan elastis melalui portal Microsoft Azure, PowerShell, atau REST API Agen Pekerjaan. Misalnya, lihat Menskalakan agen pekerjaan.
Membatasi dampak tugas pada kumpulan elastis
Untuk memastikan sumber daya tidak terbebani saat menjalankan pekerjaan terhadap database di kumpulan elastis Azure SQL Database, konfigurasikan pekerjaan untuk membatasi jumlah database yang dijalankan pekerjaan secara bersamaan.
Atur jumlah database yang dijalankan secara bersamaan oleh pekerjaan dengan menetapkan parameter sp_add_jobstep prosedur yang disimpan @max_parallelism di T-SQL.
Skrip idempotent
Skrip T-SQL pekerjaan elastis harus idempoten, yaitu, jika skrip berhasil dan dijalankan lagi, hasil yang sama terjadi. Skrip dapat gagal karena masalah jaringan sementara. Dalam hal ini, pekerjaan secara otomatis mencoba menjalankan skrip sejumlah kali yang telah ditentukan sebelumnya sebelum berhenti. Skrip idempogen memiliki hasil yang sama meskipun berhasil dijalankan dua kali (atau lebih).
Taktik sederhana adalah menguji keberadaan objek sebelum membuatnya. Contoh berikut adalah hipotetis:
IF NOT EXISTS (SELECT *
FROM sys.objects
WHERE [name] = N'some_object')
PRINT 'Object does not exist'; -- Create the object
ELSE
PRINT 'Object exists'; -- If it exists, drop the object before recreating it.
Demikian pula, skrip harus dapat mengeksekusi dengan sukses dengan menguji secara logis dan melawan kondisi apa pun yang ditemukannya.
Batasan
Ini adalah batasan saat ini untuk layanan pekerjaan elastis. Tim produk secara aktif bekerja untuk menghapus sebanyak mungkin batasan ini.
| Masalah | Deskripsi |
|---|---|
| Agen pekerjaan elastis perlu dibuat ulang dan dimulai di wilayah baru setelah failover atau pindah ke wilayah Azure baru. | Layanan pekerjaan elastis menyimpan semua agen pekerjaan dan metadata pekerjaannya dalam database pekerjaan. Setiap failover atau pemindahan sumber daya Azure ke wilayah Azure baru juga memindahkan database pekerjaan, agen pekerjaan, dan metadata pekerjaan ke wilayah Azure baru. Namun, agen pekerjaan elastis adalah sumber daya khusus komputasi yang perlu dibuat ulang secara eksplisit dan dimulai di wilayah baru sebelum pekerjaan mulai dieksekusi lagi. Setelah dimulai, agen pekerjaan elastis melanjutkan eksekusi pekerjaan di wilayah baru sesuai jadwal pekerjaan yang ditentukan sebelumnya. |
| Log Audit SQL berlebihan dari basis data pekerjaan | Agen pekerjaan elastis beroperasi dengan terus-menerus melakukan polling database pekerjaan untuk memeriksa kedatangan pekerjaan baru dan operasi CRUD lainnya. Jika audit diaktifkan di server yang menampung database pekerjaan, database pekerjaan dapat menghasilkan sejumlah besar log audit. Anda dapat mengurangi masalah ini dengan memfilter log audit ini dengan menggunakan Set-AzSqlServerAudit perintah dengan ekspresi predikat.Contohnya: Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "application_name <> 'Microsoft Azure SQL Database elastic jobs'"Perintah ini hanya memfilter log audit dari agen pekerjaan ke database pekerjaan, bukan log audit dari agen pekerjaan ke database target apa pun. |
| Penggunaan database Hyperscale sebagai database pekerjaan | Menggunakan database Hyperscale sebagai database kerja tidak didukung. Namun, pekerjaan elastis dapat menargetkan database Hyperscale dengan cara yang sama seperti database di Azure SQL Database lainnya. |
| Database tanpa server dan jeda otomatis dengan pekerjaan elastis. | Jeda otomatis pada database serverless yang diaktifkan tidak didukung sebagai database tugas. Database serverless yang ditargetkan oleh pekerjaan otomatis mendukung jeda otomatis, dan koneksi pekerjaan dapat memulainya kembali. |
| Ekspor Database Pekerjaan ke BACPAC file | Ekspor database pekerjaan ke file BACPAC tidak didukung. Jika SQL Server yang berisi database pekerjaan perlu diekspor, hilangkan database pekerjaan terlebih dahulu sebelum mengekspor server. |