Penyeimbangan Beban Paket di Server Jarak Jauh dengan Menggunakan SQL Server Agent

Berlaku untuk: SQL Server (semua versi yang didukung) Integration Runtime SSIS di Azure Data Factory

Ketika banyak paket harus dijalankan, lebih mudah untuk menggunakan server lain yang tersedia. Metode penggunaan server lain ini untuk menjalankan paket ketika paket semuanya berada di bawah kendali satu paket induk disebut penyeimbangan beban. Dalam SQL Server Integration Services, penyeimbangan beban adalah prosedur manual yang harus dirancang oleh pemilik paket. Penyeimbangan beban tidak dilakukan secara otomatis oleh server. Selain itu, paket yang dijalankan di server jarak jauh harus seluruh paket, bukan tugas individual dalam paket lain.

Penyeimbangan beban berguna dalam skenario berikut:

  • Paket dapat berjalan secara bersamaan.

  • Paket besar dan, jika dijalankan secara berurutan, dapat berjalan lebih lama dari waktu yang diizinkan untuk diproses.

Administrator dan arsitek dapat menentukan apakah menggunakan server tambahan untuk pemrosesan akan menguntungkan proses mereka.

Ilustrasi Load-Balancing

Diagram berikut menunjukkan paket induk di server. Paket induk berisi beberapa tugas Execute SQL Job Agent. Setiap tugas dalam paket induk memanggil SQL Server Agent di server jarak jauh. Server jarak jauh tersebut berisi pekerjaan SQL Server Agent yang menyertakan langkah yang memanggil paket di server tersebut.

Gambaran umum arsitektur penyeimbangan beban SSIS Gambaran

Langkah-langkah yang diperlukan untuk penyeimbangan beban dalam arsitektur ini bukanlah konsep baru. Sebaliknya, penyeimbangan beban dicapai dengan menggunakan konsep yang ada dan objek SSIS umum dengan cara baru.

Eksekusi Paket pada Instans Jarak Jauh dengan menggunakan SQL Server Agent

Dalam arsitektur dasar untuk eksekusi paket jarak jauh, paket pusat berada pada instans SQL Server yang mengontrol paket jarak jauh lainnya. Diagram menunjukkan paket pusat ini, bernama Induk SSIS. Instans tempat paket induk ini berada mengontrol eksekusi pekerjaan SQL Server Agent yang menjalankan paket anak. Paket anak tidak dijalankan sesuai dengan jadwal tetap yang dikontrol oleh SQL Server Agent pada server jarak jauh. Sebaliknya, paket anak dimulai oleh SQL Server Agent ketika dipanggil oleh paket induk dan dijalankan pada instans SQL Server yang sama tempat SQL Server Agent berada.

Sebelum dapat menjalankan paket jarak jauh dengan menggunakan SQL Server Agent, Anda harus mengonfigurasi paket induk dan anak dan menyiapkan pekerjaan SQL Server Agent yang mengontrol paket anak. Bagian berikut ini menyediakan informasi selengkapnya tentang cara membuat, mengonfigurasi, menjalankan, dan memelihara paket yang berjalan di server jarak jauh. Ada beberapa langkah untuk proses ini:

  • Membuat paket anak dan menginstalnya di server jarak jauh.

  • Membuat pekerjaan SQL Server Agent pada instans jarak jauh yang akan menjalankan paket.

  • Membuat paket induk.

  • Tentukan skenario pengelogan untuk paket anak.

Implementasi Paket Anak

Saat Anda menerapkan penyeimbangan beban menggunakan Layanan Integrasi, paket anak diinstal di server lain untuk memanfaatkan waktu CPU atau server yang tersedia. Untuk membuat dan menjalankan paket anak memerlukan langkah-langkah berikut:

  • Merancang paket anak.

  • Memindahkan paket ke server jarak jauh.

  • Membuat pekerjaan SQL Server Agent di server jarak jauh yang berisi langkah yang menjalankan paket anak.

  • Menguji dan men-debug SQL Server Agent Pekerjaan dan paket anak.

Ketika Anda merancang paket anak, paket tidak memiliki batasan dalam desainnya, dan Anda dapat memasukkan fungsionalitas apa pun yang Anda inginkan. Namun, jika paket mengakses data, Anda harus memastikan bahwa server yang menjalankan paket memiliki akses ke data.

Untuk mengidentifikasi paket induk yang menjalankan paket anak, di SQL Server Data Tools (SSDT) klik kanan paket di Penjelajah Solusi lalu klik Paket Titik Entri.

Setelah paket anak dirancang, langkah selanjutnya adalah menyebarkannya di server jarak jauh.

Memindahkan Paket Anak ke Instans Jarak Jauh

Ada beberapa cara untuk memindahkan paket ke server lain. Dua metode yang disarankan adalah:

  • Mengekspor paket dengan menggunakan SQL Server Management Studio.

  • Menyebarkan paket dengan membangun utilitas penyebaran untuk proyek yang berisi paket yang ingin Anda sebarkan, lalu menjalankan Wizard Penginstalan Paket untuk menginstal paket ke sistem file atau ke instans SQL Server. Untuk informasi selengkapnya, lihat Penyebaran Paket Warisan (SSIS).

Anda harus mengulangi penyebaran ke setiap server jarak jauh yang ingin Anda gunakan.

Membuat Pekerjaan SQL Server Agent

Setelah paket anak disebarkan ke berbagai server, buat pekerjaan SQL Server Agent di setiap server yang berisi paket anak. Pekerjaan SQL Server Agent berisi langkah yang menjalankan paket anak saat agen pekerjaan dipanggil. Pekerjaan SQL Server Agent bukan pekerjaan terjadwal; mereka menjalankan paket anak hanya ketika dipanggil oleh paket induk. Pemberitahuan keberhasilan atau kegagalan pekerjaan kembali ke paket induk mencerminkan keberhasilan atau kegagalan pekerjaan SQL Server Agent dan apakah itu berhasil dipanggil, bukan keberhasilan atau kegagalan paket anak atau apakah itu dijalankan.

Men-debug Pekerjaan SQL Server Agent dan Paket Anak

Anda dapat menguji pekerjaan SQL Server Agent dan paket anak mereka dengan menggunakan salah satu metode berikut:

  • Menjalankan setiap paket anak di SSIS Designer, dengan mengklik Debug / Mulai Tanpa Debugging.

  • Menjalankan pekerjaan SQL Server Agent individu di komputer jarak jauh dengan menggunakan SQL Server Management Studio, untuk memastikan bahwa paket berjalan.

Untuk informasi tentang cara memecahkan masalah paket yang Anda jalankan dari pekerjaan SQL Server Agent, lihat Paket SSIS tidak berjalan saat Anda memanggil paket SSIS dari langkah pekerjaan SQL Server Agent di Pangkalan Pengetahuan Dukungan Microsoft.

SQL Server Agent memeriksa akses subsistem untuk proksi dan memberikan akses ke proksi setiap kali langkah pekerjaan berjalan.

Anda dapat membuat proksi di SQL Server Management Studio.

Implementasi Paket Induk

Saat menyeimbangkan beban paket SSIS di berbagai server, langkah selanjutnya setelah paket anak dibuat, disebarkan, dan pekerjaan SQL Server Agent jarak jauh yang dibuat untuk menjalankannya, adalah membuat paket induk. Paket induk akan berisi banyak tugas Execute SQL Server Agent Job, setiap tugas yang bertanggung jawab untuk memanggil pekerjaan SQL Server Agent berbeda yang menjalankan salah satu paket anak. Tugas Jalankan pekerjaan SQL Server Agent dalam paket induk pada gilirannya menjalankan berbagai pekerjaan SQL Server Agent. Setiap tugas dalam paket induk berisi informasi seperti cara menyambungkan ke server jarak jauh dan pekerjaan apa yang harus dijalankan di server tersebut. Untuk informasi selengkapnya, lihat Menjalankan Tugas Pekerjaan SQL Server Agent.

Untuk mengidentifikasi paket induk yang menjalankan paket anak, di SQL Server Data Tools (SSDT) klik kanan paket di Penjelajah Solusi lalu klik Paket Titik Entri.

Mencantumkan Paket Anak

Jika Anda menyebarkan proyek yang berisi paket induk dan paket anak ke server Layanan Integrasi, Anda dapat melihat daftar paket anak yang dijalankan oleh paket induk. Saat Anda menjalankan paket induk, laporan Gambaran Umum untuk paket induk secara otomatis dibuat di SQL Server Management Studio. Laporan ini mencantumkan paket turunan yang dijalankan oleh tugas Jalankan Paket yang terkandung dalam paket induk, seperti yang ditunjukkan pada gambar berikut.

Laporan Gambaran Umum dengan daftar

Untuk informasi tentang mengakses laporan Gambaran Umum , lihat Laporan untuk Server Layanan Integrasi.

Batasan Prioritas dalam Paket Induk

Ketika Anda membuat batasan prioritas antara tugas Execute SQL Server Agent Job dalam paket induk, batasan prioritas ini hanya mengontrol waktu pekerjaan SQL Server Agent di server jarak jauh dimulai. Batasan prioritas tidak dapat menerima informasi mengenai keberhasilan atau kegagalan paket anak yang dijalankan dari langkah-langkah pekerjaan SQL Server Agent.

Ini berarti bahwa keberhasilan atau kegagalan paket anak tidak menyebar ke induk, karena satu-satunya fungsi pekerjaan Jalankan SQL Server Agent dalam paket induk adalah meminta pekerjaan SQL Server Agent untuk menjalankan paket anak. Setelah pekerjaan SQL Server Agent berhasil dipanggil, paket induk menerima hasil .Success

Kegagalan dalam skenario ini berarti hanya ada kegagalan dalam memanggil tugas pekerjaan SQL Server Agent jarak jauh. Salah satu situasi di mana ini dapat terjadi adalah ketika server jarak jauh tidak berfungsi dan agen tidak merespons. Namun, selama agen diaktifkan, paket induk telah berhasil menyelesaikan tugasnya.

Catatan

Anda dapat menggunakan Execute SQL Task yang berisi pernyataan Transact-SQL dari sp_start_job N'package_name'. Untuk informasi selengkapnya, lihat sp_start_job (Transact-SQL).

Lingkungan Debugging

Saat menguji paket induk, gunakan lingkungan debugging perancang dengan menjalankannya menggunakan Debug / Mulai Debugging (F5). Atau, Anda dapat menggunakan utilitas prompt perintah, dtexec. Untuk informasi selengkapnya, lihat Utilitas dtexec.

Pengelogan untuk Paket Beban Seimbang di Server Jarak Jauh

Lebih mudah bagi administrator untuk mengelola log untuk semua paket anak yang berjalan di berbagai server ketika semua paket anak menggunakan penyedia log yang sama dan semuanya menulis ke tujuan yang sama. Salah satu cara Anda dapat membuat file log umum untuk semua paket anak adalah dengan mengonfigurasi paket anak untuk mencatat peristiwa mereka ke penyedia log SQL Server. Anda dapat mengonfigurasi semua paket untuk menggunakan database yang sama, server yang sama, dan instans server yang sama.

Untuk melihat file log, administrator hanya perlu masuk ke satu server untuk melihat file log untuk semua paket anak.

Untuk informasi tentang cara mengaktifkan pengelogan dalam paket, lihat Pengelogan Integration Services (SSIS).

Pekerjaan SQL Server Agent untuk Paket