Pekerjaan elastis di Azure SQL Database

Berlaku untuk:Azure SQL Database

Dalam artikel ini, kami meninjau kemampuan dan detail pekerjaan elastis untuk Azure SQL Database.

Gambaran umum pekerjaan elastis

Anda dapat membuat dan menjadwalkan pekerjaan elastis yang dapat dieksekusi secara berkala terhadap satu atau banyak database Azure SQL untuk menjalankan kueri Transact-SQL (T-SQL) dan melakukan tugas pemeliharaan.

Anda dapat menentukan database target atau grup database tempat pekerjaan akan dijalankan, dan juga menentukan jadwal untuk menjalankan pekerjaan. Semua tanggal dan waktu dalam pekerjaan elastis berada di zona waktu UTC.

Pekerjaan menangani tugas masuk ke database target. Anda juga menentukan, mengelola, dan mempertahankan skrip Transact-SQL untuk dieksekusi di seluruh grup database.

Setiap pekerjaan mencatat status eksekusi dan juga secara otomatis mencoba kembali operasi jika terjadi kegagalan.

Kapan menggunakan pekerjaan elastis

Ada beberapa skenario ketika Anda dapat menggunakan otomatisasi pekerjaan elastis:

  • Mengotomatiskan tugas manajemen dan menjadwalkannya untuk dijalankan setiap hari kerja, setelah jam kerja, dll.
    • Menyebarkan perubahan skema, manajemen kredensial.
    • Pengumpulan data performa atau pengumpulan telemetri penyewa (pelanggan).
    • Memperbarui data referensi (informasi umum di semua database).
    • Muat data dari penyimpanan Azure Blob.
  • Konfigurasikan pekerjaan untuk dijalankan di seluruh kumpulan database secara berulang, seperti selama jam sibuk.
    • Kumpulkan hasil kueri dari set database ke dalam tabel terpusat secara berkelanjutan.
    • Kueri dapat terus dijalankan dan dikonfigurasi untuk memicu tugas tambahan yang akan dijalankan.
  • Mengumpulkan data untuk pelaporan
    • Mengumpulkan data dari kumpulan database ke dalam satu tabel tujuan.
    • Jalankan kueri pemrosesan data yang berjalan lebih lama di set besar database, misalnya pengumpulan telemetri 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/memproses/menyisipkan data antar tabel dalam database.

Pertimbangkan pekerjaan elastis saat Anda:

  • Memiliki tugas yang perlu dijalankan 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 bahkan dapat berjalan melawan database dalam langganan yang berbeda. Server dan kumpulan secara dinamis dijumlahkan pada waktu proses, sehingga pekerjaan berjalan terhadap semua database yang ada di grup target pada saat eksekusi.
    • Ini adalah diferensiasi signifikan dari SQL Agent, yang tidak dapat secara dinamis menghitung database target, terutama dalam skenario pelanggan SaaS di mana database ditambahkan/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, dll.
Tugas Pekerjaan adalah unit pekerjaan yang terdiri dari satu atau beberapa langkah pekerjaan. Langkah-langkah pekerjaan menentukan skrip T-SQL untuk dijalankan, serta detail lain yang diperlukan untuk mengeksekusi skrip.
Grup target Kumpulan server, kumpulan, dan database untuk menjalankan pekerjaan.

Pekerjaan atau agen pekerjaan elastis

Agen pekerjaan elastis adalah sumber daya Azure untuk membuat, menjalankan, dan mengelola pekerjaan. Agen pekerjaan elastis adalah sumber daya Azure yang Anda buat di portal (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

Database pekerjaan ditagih pada tingkat yang sama dengan database apa pun di Azure SQL Database. Untuk biaya agen pekerjaan Elastis, lihat Kalkulator Harga Azure.

Database pekerjaan elastis

Database pekerjaan digunakan untuk menentukan pekerjaan dan melacak status dan riwayat eksekusi pekerjaan. Pekerjaan dijalankan dalam database target. Database pekerjaan juga digunakan untuk menyimpan metadata agen, log, hasil, definisi pekerjaan, dan juga berisi banyak prosedur tersimpan yang berguna dan objek database lainnya untuk membuat, menjalankan, dan mengelola pekerjaan menggunakan T-SQL.

Azure SQL Database (S1 atau lebih tinggi) disarankan untuk membuat agen pekerjaan elastis.

Database pekerjaan harus bersih, kosong, S1 atau tujuan layanan yang lebih tinggi Azure SQL Database.

Tujuan layanan yang direkomendasikan dari database pekerjaan adalah S1 atau lebih tinggi, tetapi pilihan optimal tergantung pada kebutuhan performa pekerjaan Anda: jumlah langkah pekerjaan, jumlah target pekerjaan, dan seberapa sering pekerjaan dijalankan.

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 lambat, pertimbangkan untuk secara bertahap meningkatkan skala database ke tujuan layanan yang lebih tinggi (baik dalam model DTU atau dalam model vCore)hingga kinerja database pekerjaan cukup ditingkatkan.

Penting

Jangan ubah objek yang 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 dijalankan 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 terhadap, dan mandat yang dibutuhkan agen pekerjaan untuk terhubung 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 menyediakan kemampuan untuk menjalankan satu atau beberapa skrip T-SQL secara paralel, di sejumlah besar database, sesuai jadwal atau sesuai permintaan. Target 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, semua database dalam kumpulan elastis, dengan fleksibilitas tambahan untuk menyertakan atau mengecualikan database tertentu. Pekerjaan dapat berjalan di beberapa server, beberapa kumpulan, dan bahkan dapat berjalan melawan database dalam langganan yang berbeda. Server dan kumpulan secara dinamis dijumlahkan pada waktu proses, sehingga pekerjaan berjalan terhadap semua database yang ada di grup target pada saat eksekusi.

Gambar berikut menunjukkan agen pekerjaan yang mengeksekusi pekerjaan di berbagai jenis grup target:

Diagram konseptual agen pekerjaan elastis menggunakan kredensial database sebagai autentikasi ke target.

Grup target

Grup target menentukan kumpulan database pekerjaan yang akan dijalankan. Grup target bisa berisi angka dan kombinasi apa pun dari yang berikut ini:

  • Server SQL logis - jika server ditentukan, semua database yang ada di server pada saat eksekusi pekerjaan adalah bagian dari grup. Kredensial master database harus disediakan sehingga grup dapat dijumlahkan dan diperbarui sebelum eksekusi pekerjaan. Untuk informasi selengkapnya tentang server logika, lihat Apa itu server di Azure SQL Database dan Azure Synapse Analytics?.
  • Kumpulan elastis - jika kumpulan elastis ditentukan, semua database yang berada di kumpulan elastis pada saat eksekusi pekerjaan adalah bagian dari grup. Adapun server, master kredensial database harus disediakan sehingga grup dapat diperbarui sebelum eksekusi pekerjaan.
  • Database tunggal - tentukan satu atau beberapa database individual untuk menjadi bagian dari grup.

Tip

Pada saat eksekusi pekerjaan, enumerasi dinamis mengevaluasi kembali kumpulan database dalam grup target yang menyertakan server atau kumpulan. Enumerasi dinamis memastikan bahwa pekerjaan berjalan di semua database yang ada di server atau kumpulan pada saat eksekusi pekerjaan. Mengevaluasi kembali daftar database pada waktu proses secara khusus berguna untuk skenario di mana keanggotaan kumpulan atau server sering berubah.

Kumpulan dan database tunggal dapat ditentukan sebagai disertakan atau dikecualikan dari grup. Ini memungkinkan pembuatan 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 bisa 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 secara dinamis dijumlahkan pada saat eksekusi pekerjaan untuk menentukan database mana yang akan dijalankan pekerjaan:

Diagram contoh grup target.

  • Contoh 1 memperlihatkan grup target yang terdiri dari daftar database individual. Ketika langkah pekerjaan dijalankan menggunakan grup target ini, tindakan langkah pekerjaan akan dijalankan di masing-masing database tersebut.
  • Contoh 2 memperlihatkan grup target yang berisi server sebagai target. Ketika langkah pekerjaan dijalankan menggunakan grup target ini, server secara dinamis dijumlahkan untuk menentukan daftar database yang saat ini ada di server. Tindakan langkah pekerjaan akan 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 akan dijalankan dalam database yang dikecualikan.
  • Contoh 4 memperlihatkan grup target yang berisi kumpulan elastis sebagai target. Mirip dengan Contoh 2,kumpulan akan dijumlahkan secara dinamis pada waktu kerja untuk menentukan daftar database dalam kumpulan.

Diagram contoh skenario tingkat lanjut dengan grup target menyertakan dan mengecualikan aturan.

  • Contoh 5 dan Contoh 6 memperlihatkan skenario tingkat lanjut di mana server, kumpulan elastis, dan database dapat digabungkan menggunakan sertakan dan mengecualikan aturan.

Catatan

Database pekerjaan itu sendiri dapat menjadi target pekerjaan. Dalam skenario ini, database pekerjaan diperlakukan sama seperti database target lainnya. Pengguna pekerjaan harus dibuat dan diberikan izin yang memadai dalam database pekerjaan, dan kredensial cakupan database untuk pengguna pekerjaan juga harus ada di database pekerjaan, seperti halnya untuk database target lainnya.

Autentikasi

Pilih satu metode untuk semua target untuk agen pekerjaan elastis. Misalnya, untuk satu agen pekerjaan elastis, Anda tidak dapat mengonfigurasi satu server target untuk menggunakan kredensial cakupan database dan yang lain untuk menggunakan autentikasi ID Microsoft Entra.

Agen pekerjaan elastis dapat tersambung ke server/database yang ditentukan oleh grup target melalui dua opsi autentikasi:

Autentikasi melalui identitas terkelola yang ditetapkan pengguna (UMI)

Autentikasi Microsoft Entra (sebelumnya Azure Active Directory) melalui identitas terkelola yang ditetapkan pengguna (UMI) adalah opsi yang direkomendasikan untuk menyambungkan pekerjaan elastis ke Azure SQL Database. Dengan dukungan ID Microsoft Entra, agen pekerjaan akan dapat terhubung ke database target (database, server, kumpulan elastis) dan database output menggunakan UMI.

Diagram cara kerja identitas terkelola yang ditetapkan pengguna (UMI) dengan pekerjaan elastis.

Secara opsional, autentikasi ID Microsoft Entra juga dapat diaktifkan di server logis yang berisi database pekerjaan elastis, untuk mengakses/mengkueri database tersebut melalui koneksi ID Microsoft Entra. Namun, agen pekerjaan itu sendiri 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 pekerjaan. Hanya satu UMI yang didukung per agen pekerjaan. Setelah UMI ditetapkan ke agen Pekerjaan, Agen Pekerjaan hanya akan menggunakan identitas ini untuk menyambungkan dan menjalankan Pekerjaan t-SQL di database target. Autentikasi SQL tidak akan digunakan terhadap server/database target Agen Pekerjaan tersebut.

Nama UMI harus dimulai dengan huruf atau angka dan dengan panjang antara 3 hingga 128. Ini dapat berisi - karakter dan _ .

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 Menggunakan Microsoft Entra (sebelumnya Azure Active Directory) untuk mengautentikasi ke platform 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 cakupan database

Meskipun autentikasi Microsoft Entra (sebelumnya Azure Active Directory) adalah opsi yang direkomendasikan, pekerjaan dapat dikonfigurasi untuk menggunakan kredensial cakupan database untuk menyambungkan ke database yang ditentukan oleh grup target setelah eksekusi. Sebelum Oktober 2023, kredensial cakupan database adalah satu-satunya opsi autentikasi.

Jika grup target berisi server atau kumpulan, kredensial cakupan database ini digunakan untuk menyambungkan ke master database untuk menghitung database yang tersedia.

  • Kredensial cakupan database harus dibuat dalam database pekerjaan.
  • Semua database target harus memiliki login dengan izin yang memadai agar pekerjaan berhasil diselesaikan (jobuser dalam diagram berikut).
  • Kredensial yang dibuat dalam database target (LOGIN dan untuk masteruser dan jobuserPASSWORD , dalam diagram berikut) harus cocok IDENTITY dengan dan SECRET dalam kredensial yang dibuat dalam database pekerjaan.
  • Kredensial dapat digunakan kembali di seluruh pekerjaan, dan kata sandi kredensial dienkripsi dan diamankan dari pengguna yang memiliki akses baca-saja ke objek pekerjaan.

Gambar berikut dirancang untuk membantu memahami penyiapan kredensial pekerjaan yang tepat, dan bagaimana agen pekerjaan elastis terhubung menggunakan kredensial database sebagai autentikasi untuk masuk/pengguna di server/database target.

Diagram kredensial pekerjaan elastis, dan bagaimana agen pekerjaan elastis terhubung menggunakan kredensial database sebagai autentikasi untuk masuk/pengguna di server/database target.

Catatan

Saat menggunakan kredensial cakupan database, ingatlah untuk membuat pengguna Anda jobuser di setiap database target.

Titik akhir privat pekerjaan elastis

Agen pekerjaan elastis mendukung titik akhir privat pekerjaan elastis. Membuat titik akhir privat pekerjaan elastis membuat tautan privat antara pekerjaan elastis dan server target. Fitur titik akhir privat pekerjaan elastis berbeda dari Azure Private Link.

Diagram titik akhir privat yang dikelola layanan untuk pekerjaan elastis.

Fitur titik akhir privat pekerjaan elastis mendukung koneksi privat ke server target/output, sehingga agen pekerjaan masih 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/outputnya. Titik akhir privat yang dikelola layanan adalah alamat IP privat dalam jaringan virtual dan subnet tertentu. Saat Anda memilih untuk menggunakan titik akhir privat di salah satu server target/output agen pekerjaan Anda, titik akhir privat yang dikelola layanan dibuat oleh Microsoft. Titik akhir privat ini kemudian secara eksklusif digunakan oleh agen pekerjaan untuk menghubungkan dan menjalankan pekerjaan, atau untuk menulis output pekerjaan pada database target/output tersebut.

Titik akhir privat pekerjaan elastis dapat dibuat dan diizinkan melalui portal 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 diinginkan dan server output pekerjaan untuk mengaktifkan komunikasi ini.

Untuk tutorial mengonfigurasi titik akhir privat baru yang dikelola layanan untuk pekerjaan elastis, lihat Mengonfigurasi 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/database target harus dihosting di Azure (wilayah yang sama atau berbeda) dan dalam jenis cloud yang sama (misalnya, baik di cloud publik atau keduanya di cloud pemerintah).
  • Microsoft.Network penyedia sumber daya harus didaftarkan untuk langganan host agen pekerjaan dan server target/output.
  • Titik akhir privat pekerjaan elastis dibuat per server target/output. Mereka harus disetujui sebelum agen pekerjaan elastis dapat menggunakannya. Ini dapat dilakukan melalui panel Jaringan server logis tersebut atau klien pilihan Anda. Agen pekerjaan elastis kemudian akan dapat menjangkau database apa pun di bawah server tersebut menggunakan koneksi privat.
  • Koneksi dari agen pekerjaan elastis ke database pekerjaan tidak akan menggunakan titik akhir privat. Agen pekerjaan itu sendiri menggunakan autentikasi berbasis sertifikat internal untuk menyambungkan ke database pekerjaannya. Satu peringatan adalah jika Anda menambahkan database pekerjaan sebagai anggota grup target. Kemudian berperilaku sebagai target reguler yang perlu Anda siapkan dengan titik akhir privat sesuai kebutuhan.

Izin database pekerjaan elastis

Selama pembuatan agen pekerjaan, skema, tabel, dan peran yang disebut jobs_reader dibuat dalam database pekerjaan. Peran ini dibuat dengan izin berikut dan dirancang untuk memberi administrator kontrol akses yang lebih baik untuk pemantauan pekerjaan. Administrator dapat memberi pengguna kemampuan untuk memantau eksekusi pekerjaan dengan menambahkannya ke peran jobs_reader dalam database pekerjaan.

Nama peran Izin skema 'pekerjaan' Izin skema 'jobs_internal'
jobs_reader SELECT Tidak

Perhatian

Anda tidak boleh memperbarui 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/menghapus grup/anggota target, seperti jobs.sp_add_target_group_member.

Penting

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, yang dapat memungkinkan pengguna berbahaya menentukan kata sandi kredensial atau menjalankan perintah berbahaya.

Memantau pekerjaan elastis

Mulai Oktober 2023, agen pekerjaan elastis memiliki integrasi dengan Pemberitahuan Azure untuk pemberitahuan status pekerjaan, menyederhanakan solusi untuk memantau status dan riwayat eksekusi pekerjaan.

portal Azure juga memiliki fitur tambahan baru untuk mendukung pekerjaan elastis dan pemantauan pekerjaan. Pada halaman Gambaran Umum agen pekerjaan Elastis, eksekusi pekerjaan terbaru ditampilkan, seperti pada cuplikan layar berikut.

Cuplikan layar dari halaman Gambaran Umum portal Azure memperlihatkan eksekusi pekerjaan terbaru.

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 pemberitahuan 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 pekerjaan elastis.

Output pekerjaan

Hasil dari langkah pekerjaan pada setiap database target dicatat secara rinci, dan output skrip dapat ditangkap ke tabel tertentu. Anda bisa menentukan database untuk menyimpan data apa pun yang dikembalikan dari pekerjaan.

Job history

Lihat 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 kurang dari 45 hari secara manual, jalankan sp_purge_jobhistory prosedur tersimpan dalam database pekerjaan.

Status pekerjaan

Anda dapat memantau eksekusi pekerjaan elastis dalam database pekerjaan dengan mengkueri 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.
  • Kredensial harus memiliki hak istimewa paling sedikit yang diperlukan untuk melakukan langkah pekerjaan. Untuk informasi selengkapnya, lihat Otorisasi dan Izin.
  • Saat menggunakan server dan/atau anggota grup target kumpulan, sangat disarankan untuk membuat kredensial terpisah dengan hak pada master database untuk melihat/mencantumkan database yang digunakan untuk memperluas daftar database server dan/atau kumpulan sebelum eksekusi 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 database target bersamaan yang dapat disambungkan agen pekerjaan dan memulai pekerjaan. Untuk koneksi target yang lebih bersamaan untuk eksekusi pekerjaan, tingkatkan tingkat agen pekerjaan dari tingkat JA100 default, yang memiliki batas 100 koneksi target bersamaan.

Sebagian besar lingkungan memerlukan kurang dari 100 pekerjaan bersamaan kapan saja, sehingga JA100 adalah default.

Tingkat agen pekerjaan elastis Pekerjaan bersamaan maksimum
JA100 100
JA200 200
JA400 400
JA800 800

Melebihi tingkat kapasitas konkurensi agen pekerjaan dengan target pekerjaan akan membuat penundaan antrean untuk beberapa database/server target. Misalnya, jika Anda memulai pekerjaan dengan target 110 di tingkat JA100, 10 pekerjaan akan menunggu untuk memulai sampai yang lain selesai.

Tujuan tingkat atau layanan agen pekerjaan elastis dapat dimodifikasi melalui portal Azure, PowerShell, atau REST API Agen Pekerjaan. Misalnya, lihat Menskalakan agen pekerjaan.

Membatasi dampak pekerjaan pada kumpulan elastis

Untuk memastikan sumber daya tidak terbebani saat menjalankan pekerjaan terhadap database di kumpulan elastis Azure SQL Database, pekerjaan dapat dikonfigurasi untuk membatasi jumlah database yang dapat dijalankan pekerjaan secara bersamaan.

Tetapkan jumlah database bersamaan yang dijalankan pekerjaan dengan mengatur sp_add_jobstep parameter @max_parallelism prosedur yang disimpan di T-SQL.

Skrip idempotent

Skrip T-SQL pekerjaan elastis harus idempotensi. Idempotent berarti bahwa jika skrip berhasil, dan dijalankan lagi, hasil yang sama terjadi. Skrip dapat gagal karena masalah jaringan sementara. Dalam hal ini, pekerjaan akan secara otomatis mencoba menjalankan skrip yang telah ditetapkan beberapa kali sebelum berhenti. Skrip idempogen memiliki hasil yang sama meskipun berhasil dijalankan dua kali (atau lebih).

Taktik sederhana adalah menguji keberadaan objek sebelum membuatnya. Berikut ini adalah contoh 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. Kami berupaya aktif menghapus sebanyak mungkin batasan ini.

Masalah Deskripsi
Agen pekerjaan elastis perlu dibuat ulang dan dimulai di wilayah baru setelah failover/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 akan memindahkan database pekerjaan, agen pekerjaan, dan metadata pekerjaan ke wilayah Azure baru. Namun, agen pekerjaan elastis adalah sumber daya komputasi saja dan perlu dibuat ulang secara eksplisit dan dimulai di wilayah baru sebelum pekerjaan akan mulai dieksekusi lagi di wilayah baru. Setelah dimulai, agen pekerjaan elastis akan melanjutkan eksekusi pekerjaan di wilayah baru sesuai jadwal pekerjaan yang ditentukan sebelumnya.
Log Audit berlebihan dari database 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, sejumlah besar log audit dapat dihasilkan oleh database pekerjaan. Hal ini dapat diatasi dengan memfilter log audit ini menggunakan perintah Set-AzSqlServerAudit 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 "database_principal_name <> '##MS_JobAccount##'"

Perintah ini hanya akan memfilter agen pekerjaan ke log audit database pekerjaan, bukan agen pekerjaan ke log audit database target apa pun.
Penggunaan database Hyperscale sebagai database pekerjaan Menggunakan database Hyperscale sebagai database pekerjaan 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 database tanpa server yang diaktifkan tidak didukung sebagai database pekerjaan. Database tanpa server yang ditargetkan oleh pekerjaan elastis mendukung jeda otomatis, dan akan dilanjutkan oleh koneksi pekerjaan.
Mengekspor Database Pekerjaan ke file BACPAC Ekspor Database Pekerjaan ke file BACPAC tidak didukung. Jika SQL Server yang berisi Database Pekerjaan perlu diekspor, Database Pekerjaan harus dihilangkan terlebih dahulu sebelum mengekspor server.

Langkah selanjutnya