Membuat, mengonfigurasi, dan mengelola pekerjaan elastis

Berlaku untuk:Azure SQL Database

Artikel ini menyediakan langkah-langkah yang diperlukan untuk membuat, mengonfigurasi, dan mengelola pekerjaan elastis untuk Azure SQL Database. Anda dapat menyelesaikan banyak langkah ini di portal Azure dan dengan menggunakan T-SQL, PowerShell, dan REST API. Pekerjaan elastis memungkinkan berjalannya satu atau beberapa skrip Transact-SQL (T-SQL) secara paralel di banyak database. Untuk informasi selengkapnya, pelajari selengkapnya tentang konsep otomatisasi pekerjaan di Azure SQL Database atau baca selengkapnya tentang pekerjaan Elastis di Azure SQL Database.

Membuat dan mengonfigurasi agen pekerjaan elastis

  1. Buat atau identifikasi S1 kosong atau Azure SQL Database yang lebih tinggi, menggunakan model pembelian DTU. Database ini harus berada di server yang sama dengan agen pekerjaan. Database ini digunakan sebagai database pekerjaan selama pembuatan agen pekerjaan elastis. Anda dapat membuat database tunggal melalui portal Azure, Azure CLI, Azure CLI (sql up), atau PowerShell.

  2. Buat agen pekerjaan elastis di portal Azure atau dengan PowerShell.

    Instruksi untuk membuat agen pekerjaan elastis di portal Azure adalah sebagai berikut:

    1. Di portal Azure, cari agen Pekerjaan Elastis. Pilih Buat untuk mulai menyediakan sumber daya agen pekerjaan elastis baru. Atau, ikuti tautan ini untuk membuat agen Elastic Job di portal Azure.
    2. Berikan nama agen pekerjaan Elastis.
    3. Pilih Grup Langganan dan Sumber Daya untuk agen. Jika perlu, buat grup sumber daya baru. Pekerjaan elastis dapat menargetkan database di grup sumber daya, langganan, bahkan wilayah Azure lainnya.
    4. Pilih server logis Azure SQL Database untuk menjadi server agen pekerjaan elastis.
    5. Pilih database Pekerjaan di server logis untuk menjadi database agen pekerjaan elastis. Beberapa validasi memastikan bahwa database cocok.
    6. Di bawah Tingkat layanan, pilih JA 100.
    7. Pilih Berikutnya: Identitas.
    8. Ada dua metode autentikasi untuk agen pekerjaan untuk menargetkan server/database, autentikasi Microsoft Entra dengan identitas terkelola yang ditetapkan pengguna (UMI), atau kredensial cakupan database.
      1. Buat UMI di luar proses provisi agen pekerjaan elastis, atau gunakan UMI yang ada. Pilih Tambahkan Identitas Terkelola yang Ditetapkan Pengguna. Pilih UMI. Pilih Tambahkan.
      2. Untuk menggunakan kredensial cakupan database, lihat langkah-langkah nanti dalam tutorial ini.
    9. Pilih Berikutnya: Tag.
    10. Pertimbangkan untuk menggunakan tag Azure. Misalnya, tag "Pemilik" atau "CreatedBy" untuk mengidentifikasi siapa yang membuat sumber daya, dan tag Lingkungan untuk mengidentifikasi apakah sumber daya ini berada di Produksi, Pengembangan, dll. Untuk informasi selengkapnya, lihat Mengembangkan strategi penamaan dan pemberian tag untuk sumber daya Azure.
    11. Pilih Tinjau + buat.
    12. Validasi pilihan agen pekerjaan elastis baru Anda di halaman Tinjau + buat , lalu pilih Buat.
    13. Langkah-langkah lebih lanjut diperlukan untuk mengautentikasi ke server target/database. Lanjutkan langkah-langkah di bagian berikut dari artikel tutorial ini.

Membuat autentikasi agen pekerjaan

Agen pekerjaan elastis harus dapat mengautentikasi ke setiap server atau database target. Di bagian ini, kami membahas langkah-langkah yang diperlukan agar agen pekerjaan elastis mengautentikasi ke server/database dalam grup target.

Ada dua opsi untuk autentikasi agen pekerjaan elastis ke target:

Menggunakan autentikasi Microsoft Entra dengan identitas terkelola yang ditetapkan pengguna (UMI)

Gunakan autentikasi Microsoft Entra (sebelumnya Azure Active Directory) dengan identitas terkelola (UMI) yang ditetapkan pengguna. Ini adalah metode autentikasi yang direkomendasikan.

  1. Aktifkan autentikasi Microsoft Entra (sebelumnya Azure Active Directory) pada semua server logis target pekerjaan/database, dan pada server logis output pekerjaan.
  2. Buat identitas terkelola yang ditetapkan pengguna (UMI) atau gunakan UMI yang sudah ada.
  3. Tetapkan UMI ke agen pekerjaan elastis yang dibuat.
    • Disarankan untuk menetapkan UMI saat membuat agen pekerjaan elastis, lihat langkah-langkah dalam Membuat dan mengonfigurasi agen pekerjaan elastis. Saat membuat agen pekerjaan di portal Azure, di tab Identitas, tetapkan ke agen pekerjaan elastis.
    • Untuk memperbarui agen pekerjaan elastis yang ada untuk menggunakan UMI, pada halaman portal Azure untuk agen pekerjaan elastis, navigasikan ke Identitas di bawah menu Keamanan di menu sumber daya. Pilih dan tetapkan UMI ke agen pekerjaan elastis.
    • Saat membuat atau memperbarui agen pekerjaan elastis dengan New-AzSqlElasticJobAgent cmdlet atau Set-AzSqlElasticJobAgent PowerShell, gunakan parameter: -IdentityType UserAssigned -IdentityID <identity resource path>. Misalnya:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • REST API juga dapat digunakan untuk membuat atau memperbarui agen pekerjaan elastis.
  4. Buat grup target dan tambahkan target untuk pekerjaan tersebut. Tentukan grup target dan target (database yang ingin Anda jalankan pekerjaannya) menggunakan PowerShell atau tentukan grup target dan target menggunakan T-SQL.
  5. Di setiap server/database target, buat pengguna mandiri yang dipetakan ke UMI atau kredensial cakupan database, menggunakan T-SQL atau PowerShell:
    1. Buat autentikasi pekerjaan dengan T-SQL.
    2. Buat autentikasi pekerjaan dengan PowerShell.
  6. Dalam database output, buat dan tetapkan izin ke pengguna pekerjaan UMI. Koneksi ke database output dan jalankan contoh skrip berikut untuk pengguna bernama jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Jika parameter output ditentukan dalam sp_add_jobstep panggilan di the @output_table_name argument, AGEN Pekerjaan UMI atau kredensial cakupan database harus diberikan izin untuk MEMBUAT TABEL dan MENYISIPKAN data ke dalam tabel output tersebut.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. Di setiap server target/database, berikan pengguna database izin yang diperlukan untuk menjalankan skrip pekerjaan. Izin ini bervariasi berdasarkan persyaratan kueri T-SQL.

Menggunakan kredensial cakupan database

Anda dapat menggunakan kredensial cakupan database dalam database pekerjaan dan di setiap server/database target untuk autentikasi. Di masa lalu, kredensial cakupan database adalah satu-satunya opsi yang tersedia dengan pekerjaan elastis.

Catatan

Jika UMI ditetapkan ke Agen Pekerjaan, Autentikasi SQL tidak akan digunakan untuk menyambungkan ke targetnya. Agen Pekerjaan hanya akan menggunakan autentikasi Microsoft Entra dengan UMI untuk menyambungkan ke semua database targetnya.

  1. Buat kredensial cakupan database dalam database pekerjaan.
    1. Menggunakan PowerShell untuk membuat kredensial cakupan database
    2. Gunakan T-SQL untuk membuat kredensial cakupan database.
  2. Tentukan grup target (database yang ingin Anda jalankan pekerjaannya) menggunakan PowerShell atau tentukan target menggunakan T-SQL.
  3. Buat login/pengguna agen pekerjaan di setiap database target tempat pekerjaan akan berjalan. Login/pengguna di setiap server/database target harus memiliki nama yang sama dengan identitas kredensial cakupan database untuk pengguna pekerjaan, dan kata sandi yang sama dengan kredensial cakupan database untuk pengguna pekerjaan.
    1. Gunakan PowerShell untuk menambahkan kredensial dan pengguna ke setiap database target.
    2. Untuk informasi selengkapnya tentang menambahkan pengguna, lihat Mengotorisasi akses server dan database menggunakan login dan akun pengguna.
  4. Dalam database output, buat dan tetapkan izin ke pengguna pekerjaan.
    1. Koneksi ke master database server logis yang menghosting database output. Jika belum ada, buat login terautentikasi SQL dengan nama yang sama dengan identitas kredensial cakupan database untuk pengguna pekerjaan, dan kata sandi yang sama dengan kredensial cakupan database untuk pengguna pekerjaan.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Koneksi ke database output dan jalankan contoh skrip berikut untuk pengguna bernama job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Jika parameter output ditentukan dalam sp_add_jobstep panggilan dalam argumen @output_table_name , UMI Agen Pekerjaan atau kredensial cakupan database harus diberikan izin untuk MEMBUAT TABEL dan MENYISIPKAN data ke dalam tabel output tersebut.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. Di setiap server target/database, berikan pengguna database izin yang diperlukan untuk menjalankan skrip pekerjaan. Izin ini bervariasi berdasarkan persyaratan kueri T-SQL.

Membuat, menjalankan, dan mengelola pekerjaan

  1. Gunakan PowerShell untuk membuat pekerjaan atau menggunakan T-SQL untuk membuat pekerjaan.
  2. Tambahkan langkah-langkah ke setiap pekerjaan elastis. Grup target harus dipilih untuk setiap langkah pekerjaan. Gunakan PowerShell untuk menambahkan langkah-langkah pekerjaan atau menggunakan T-SQL untuk menambahkan langkah-langkah pekerjaan.
  3. Gunakan PowerShell untuk menjalankan pekerjaan atau menggunakan T-SQL untuk menjalankan pekerjaan.
  4. Pantau status eksekusi pekerjaan menggunakan portal Azure, pantau pekerjaan dengan PowerShell atau pantau pekerjaan dengan T-SQL.

Mengonfigurasi titik akhir privat pekerjaan elastis Azure SQL

Setiap server target dapat dicapai melalui titik akhir privat yang dikelola layanan, dibuat dan dikelola oleh Microsoft, dan secara eksklusif untuk digunakan dengan pekerjaan elastis. Membuat titik akhir privat pekerjaan elastis membuat tautan privat antara pekerjaan elastis dan server target. Setelah dikonfigurasi, semua komunikasi antara agen pekerjaan elastis dan server target akan terjadi melalui titik akhir privat.

Konfigurasinya mudah. Anda harus membuat titik akhir privat untuk setiap server target yang diinginkan dan server output pekerjaan untuk mengaktifkan komunikasi ini.

  1. Di menu navigasi agen pekerjaan elastis, di bawah Keamanan, pilih Titik akhir privat.
  2. Pilih Tambahkan server dan buat titik akhir privat.
  3. Jendela Buat titik akhir privat terbuka.
    1. Anda dapat memilih server target dari Langganan apa pun, di mana saja di Azure.
    2. Pilih server logis Azure SQL Database target dalam langganan tersebut.
    3. Berikan nama titik akhir Privat.
  4. Pilih Buat titik akhir privat. Penyebaran akan memakan waktu beberapa saat. Segera, status Koneksi ion pada halaman Titik akhir privat akan menampilkan Tertunda.
  5. Di portal Azure, navigasikan ke server logis Azure SQL Database target.
  6. Sebagai administrator server logis Azure SQL Database target tersebut , di menu navigasi server SQL, di bawah Keamanan, pilih Jaringan.
  7. Pilih Akses privat.
  8. Setujui permintaan titik akhir privat yang tertunda.
  9. Status Koneksi ion pada halaman Titik akhir privat akan ditampilkan Disetujui. Sekarang, komunikasi apa pun antara agen pekerjaan dan database atau kumpulan elastis apa pun di server logis Azure SQL Database target tersebut akan melalui titik akhir privat yang dikelola layanan.
  10. Sebagai administrator server logis Azure SQL Database target tersebut , di menu navigasi server SQL, di bawah Keamanan, pilih Jaringan. Tidak perlu mengaktifkan Akses publik untuk tujuan pekerjaan elastis.

Mengonfigurasi pemberitahuan agen pekerjaan dengan Azure Monitor

Konfigurasikan Pemberitahuan Azure Monitor pada sumber daya agen pekerjaan elastis untuk diberi tahu tentang status eksekusi pekerjaan. Misalnya, Anda dapat diberi tahu tentang kegagalan/keberhasilan pekerjaan melalui grup Tindakan yang dikonfigurasi pengguna.

Anda dapat membuat pemberitahuan agen pekerjaan elastis dengan menggunakan portal Azure, PowerShell, atau REST API.

Membuat pemberitahuan agen pekerjaan dengan menggunakan portal Azure

Buat aturan Pemberitahuan Azure Monitor dengan portal Azure, Azure CLI, PowerShell, dan REST API. Aturan pemberitahuan untuk pekerjaan elastis beroperasi sama seperti aturan pemberitahuan lainnya, seperti untuk Azure SQL Database.

Untuk melanjutkan portal Azure:

  1. Pada menu sumber daya portal Azure untuk agen Pekerjaan Elastis, buka menu Pemantauan dan pilih Pemberitahuan.
  2. Di bawah perintah Siapkan aturan pemberitahuan pada sumber daya ini, pilih Buat aturan pemberitahuan.
  3. Pada halaman Buat aturan pemberitahuan, halaman Pilih sinyal terbuka. Pilih metrik pekerjaan elastis Eksekusi Pekerjaan Elastis Gagal, Eksekusi Pekerjaan Elastis Berhasil, atau Eksekusi Pekerjaan Elastis Kehabisan Waktu. Cuplikan layar dari portal Azure memperlihatkan halaman Buat aturan pemberitahuan.
  4. Di bawah Logika pemberitahuan, biarkan Ambang Batas, Jenis agregasi, Operator, dan Unit sebagai default.
  5. Atur Nilai ambang ke 0. Biarkan pengaturan lain sebagai default.
  6. Pilih Berikutnya: Tindakan.
  7. Pilih Buat grup tindakan atau pilih grup tindakan yang sudah ada.
    1. Buat grup tindakan Pemberitahuan Azure Monitor di portal Azure untuk mengatur pengaturan pemberitahuan, misalnya, ke administrator email atau pengembang kegagalan.
    2. Uji grup tindakan Pemberitahuan.
  8. Pilih Berikutnya: Detail.
  9. Berikan grup Langganan dan Sumber Daya sebagai detail Proyek.
  10. Berikan detail aturan Pemberitahuan untuk komunikasi pemberitahuan. Berikan nama aturan Pemberitahuan.
  11. Pilih Tag dan berikan metadata, seperti CreatedBy atau Environment untuk Pemberitahuan ini.
  12. Pilih Tinjau + Buat. Pilih Buat. Mungkin perlu waktu beberapa menit agar aturan pemberitahuan ditampilkan di portal Azure.
  13. Secara opsional, buat aturan pemrosesan Pemberitahuan Azure Monitor menggunakan portal Azure, Azure CLI, atau PowerShell. Gunakan aturan pemrosesan pemberitahuan untuk memutuskan apa yang terjadi ketika pemberitahuan dipicu, seperti menekan pemberitahuan atau menerapkan tindakan tertentu ke jenis pemberitahuan tertentu.

Menskalakan agen pekerjaan

Secara default, agen pekerjaan dibuat di JA100, memungkinkan hingga 100 eksekusi pekerjaan elastis secara bersamaan. Memulai perubahan tingkat layanan adalah operasi asinkron dan tingkat layanan baru akan tersedia setelah penundaan provisi singkat.

Jika Anda membutuhkan lebih dari 100 eksekusi bersamaan agen pekerjaan elastis, tingkat layanan yang lebih tinggi tersedia, lihat Tingkat kapasitas bersamaan. Saat ini Anda dapat mengubah tingkat layanan agen pekerjaan melalui portal Azure, PowerShell, atau REST API.

Melebihi tingkat layanan dengan pekerjaan bersamaan akan membuat penundaan antrean sebelum pekerjaan dimulai melebihi batas pekerjaan bersamaan tingkat layanan.

Menskalakan agen pekerjaan elastis dengan menggunakan portal Azure

  1. Navigasi ke halaman agen Pekerjaan Elastis di portal Azure.
  2. Pilih Tingkat Harga atau pilih Tingkatkan/Turunkan Skala dari menu konteks.
  3. Pilih tingkat layanan baru dari daftar dropdown Tingkat layanan.
  4. Tinjau kartu biaya.
  5. Pilih Perbarui.

Menskalakan agen pekerjaan elastis dengan menggunakan PowerShell

Parameter opsional -ServiceObjective untuk Set-AzSqlElasticJobAgent dapat digunakan untuk menentukan tujuan layanan baru. Contohnya:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Menskalakan agen pekerjaan elastis dengan menggunakan REST API

Anda dapat menggunakan REST API agen Pekerjaan untuk menskalakan agen pekerjaan. Contohnya:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}