Mengotomatiskan tugas manajemen menggunakan pekerjaan elastis (pratinjau)

BERLAKU UNTUK: Azure SQL Database

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. 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:

  • Otomatisasi tugas manajemen dan jadwalkan untuk dijalankan setiap hari kerja, setelah jam kerja, dll.
    • Menyebarkan perubahan skema, manajemen info masuk, pengumpulan data performa, atau pengumpulan telemetri penyewa (pelanggan).
    • Perbarui data referensi (informasi umum di semua database), muat data dari Microsoft Azure Storage Blob.
  • Mengonfigurasi pekerjaan untuk dieksekusi di seluruh kumpulan database secara berulang, seperti selama jam sibuk.
    • Kumpulkan hasil kueri dari set database ke dalam tabel terpusat secara berkelanjutan. Kueri performa dapat terus dijalankan dan dikonfigurasi untuk memicu tugas tambahan untuk 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

Azure Automation pada platform lain

Pertimbangkan teknologi penjadwalan pekerjaan berikut pada platform yang berbeda:

  • Pekerjaan Elastis adalah layanan Penjadwalan Pekerjaan yang menjalankan pekerjaan kustom pada satu atau banyak database di Azure SQL Database.
  • Pekerjaan Agen SQL dijalankan oleh layanan Agen SQL yang terus digunakan untuk otomatisasi tugas di SQL Server dan juga disertakan dengan Azure SQL Managed Instance. Pekerjaan Agen SQL tidak tersedia di Azure SQL Database.

Pekerjaan Elastis dapat menargetkan Database Azure SQL, kumpulan elastis Azure SQL Database,dan Database Azure SQL dalam peta shard.

Perlu dicatat perbedaan antara Agen SQL (tersedia di SQL Server dan sebagai bagian dari SQL Managed Instance), dan agen Pekerjaan Elastic Database (yang dapat menjalankan T-SQL pada Database atau database Azure SQL di SQL Server dan Azure SQL Managed Instance, Azure Synapse Analytics).

Pekerjaan Elastis Agen SQL
Cakupan Sejumlah database di Azure SQL Database dan/atau gudang data di cloud Azure yang sama dengan agen pekerjaan. Target dapat berada di server, langganan, dan/atau wilayah yang berbeda.

Grup target dapat terdiri dari database individu atau gudang data, atau semua database dalam peta server, kumpulan, atau shard (secara dinamis dijumlahkan pada waktu kerja).
Setiap database individual dalam instans yang sama dengan agen SQL. Fitur Administrasi Multi Server dari SQL Server Agent memungkinkan instans master/target untuk mengoordinasikan eksekusi pekerjaan, meskipun fitur ini tidak tersedia dalam SQL managed instance.
API dan Alat yang Didukung Portal, PowerShell, T-SQL, Azure Resource Manager T-SQL, SQL Server Management Studio (SSMS)

Target pekerjaan elastis

Pekerjaan Elastis menyediakan kemampuan untuk menjalankan satu atau lebih skrip T-SQL secara paralel, di sejumlah besar database, sesuai jadwal atau sesuai permintaan.

Anda dapat menjalankan pekerjaan terjadwal terhadap kombinasi database apa pun: satu atau beberapa database individual, semua database di server, semua database dalam kumpulan elastis, atau peta pecahan, 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:

Model konseptual agen Pekerjaan Elastis

Komponen pekerjaan elastis

Komponen Deskripsi (detail tambahan di bawah tabel)
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.
Grup target Kumpulan server, kumpulan, database, dan peta shard untuk menjalankan pekerjaan.
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.

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 juga didukung).

Membuat agen Pekerjaan Elastis memerlukan database yang sudah ada di Azure SQL Database. Agen mengonfigurasi Azure SQL Database yang sudah ada ini sebagai database pekerjaan.

Membuat agen Pekerjaan Elastis itu gratis. Database pekerjaan ditagih pada tingkat yang sama dengan database apa pun di Azure SQL Database.

Database pekerjaan elastis

Database Job digunakan untuk mendefinisikan pekerjaan dan melacak status dan riwayat eksekusi pekerjaan. 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.

Untuk pratinjau saat ini, database yang sudah ada di Azure SQL Database (S0 atau lebih tinggi) diperlukan untuk membuat agen Pekerjaan Elastis.

Database pekerjaan harus menjadi Azure SQL Database yang bersih, kosong, S0, atau lebih tinggi. Tujuan layanan yang direkomendasikan dari Database pekerjaan adalah S1 atau lebih tinggi, tetapi pilihan optimal tergantung pada kebutuhan kinerja 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.

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:

Nama Peran Izin skema 'pekerjaan' Izin skema 'jobs_internal'
jobs_reader PILIH Tidak ada

Penting

Pertimbangkan implikasi keamanan sebelum memberikan akses ke database pekerjaan sebagai administrator database. Pengguna jahat dengan izin untuk membuat atau mengedit pekerjaan dapat membuat atau mengedit pekerjaan yang menggunakan mandat yang disimpan untuk menyambungkan ke database di bawah kontrol pengguna berbahaya, yang dapat memungkinkan pengguna jahat untuk menentukan kata sandi mandat.

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. mandat database master harus disediakan sehingga grup dapat dimaklumi 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. Sedangkan untuk server, mandat database master harus disediakan sehingga grup dapat diperbarui sebelum eksekusi pekerjaan.
  • Database tunggal - tentukan satu atau beberapa database individual untuk menjadi bagian dari grup.
  • Peta Shard - database peta shard.

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. Perhatikan bahwa 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:

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.

Contoh grup target tambahan

Contoh 5 dan Contoh 6 memperlihatkan skenario tingkat lanjut di mana server, kumpulan elastis, dan database dapat digabungkan menggunakan sertakan dan mengecualikan aturan.
Contoh 7 menunjukkan bahwa pecahan dalam peta pecahan juga dapat dievaluasi pada waktu kerja.

Catatan

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

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.

Keluaran 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.

Riwayat pekerjaan

Tampilkan 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, sp_purge_jobhistory prosedur yang disimpan di database Job.

Status pekerjaan

Anda dapat memantau eksekusi Pekerjaan Elastis di database pekerjaan dengan mengkueri tabel jobs.job_executions.

Kinerja, kapasitas, dan keterbatasan agen

Pekerjaan Elastis menggunakan sumber daya komputasi minimal sambil menunggu pekerjaan jangka panjang selesai.

Tergantung pada ukuran kelompok target database dan waktu eksekusi yang diinginkan untuk pekerjaan (jumlah pekerja bersamaan), agen memerlukan jumlah komputasi dan kinerja database pekerjaan yang berbeda (semakin banyak target dan jumlah pekerjaan yang lebih tinggi, semakin tinggi jumlah komputasi yang diperlukan).

Saat ini, batasnya adalah 100 pekerjaan serentak.

Mencegah pekerjaan mengurangi kinerja database target

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

Langkah berikutnya