Menghidupkan Ulang Paket dengan Menggunakan Titik Pemeriksaan

Berlaku untuk:SQL Server SSIS Integration Runtime di Azure Data Factory

Layanan Integrasi dapat memulai ulang paket yang gagal dari titik kegagalan, alih-alih menjalankan ulang seluruh paket. Jika paket dikonfigurasi untuk menggunakan titik pemeriksaan, informasi tentang eksekusi paket ditulis ke file titik pemeriksaan. Ketika paket yang gagal dijalankan ulang, file titik pemeriksaan digunakan untuk memulai ulang paket dari titik kegagalan. Jika paket berhasil dijalankan, file titik pemeriksaan dihapus, lalu dibuat ulang saat paket dijalankan lagi.

Menggunakan titik pemeriksaan dalam paket dapat memberikan manfaat berikut.

  • Hindari mengulangi pengunduhan dan pengunggahan file besar. Misalnya, paket yang mengunduh beberapa file besar dengan menggunakan tugas FTP untuk setiap unduhan dapat dimulai ulang setelah pengunduhan satu file gagal dan kemudian hanya mengunduh file tersebut.

  • Hindari mengulangi pemuatan data dalam jumlah besar. Misalnya, paket yang melakukan penyisipan massal ke dalam tabel dimensi di gudang data menggunakan tugas Sisipkan Massal yang berbeda untuk setiap dimensi dapat dimulai ulang jika penyisipan gagal untuk satu tabel dimensi, dan hanya dimensi tersebut yang akan dimuat ulang.

  • Hindari mengulangi agregasi nilai. Misalnya, paket yang menghitung banyak agregat, seperti rata-rata dan jumlah, menggunakan tugas Aliran Data terpisah untuk melakukan setiap agregasi, dapat dimulai ulang setelah komputasi agregasi gagal dan hanya agregasi yang akan dikomputasi ulang.

Jika paket dikonfigurasi untuk menggunakan titik pemeriksaan, Integration Services mengambil titik hidupkan ulang dalam file titik pemeriksaan. Jenis kontainer yang gagal dan implementasi fitur seperti transaksi memengaruhi titik mulai ulang yang dicatat dalam file titik pemeriksaan. Nilai variabel saat ini juga diambil dalam file titik pemeriksaan. Namun, nilai variabel yang memiliki jenis data Objek tidak disimpan dalam file titik pemeriksaan.

Menentukan Titik Hidupkan Ulang

Kontainer host tugas, yang merangkum satu tugas, adalah unit kerja atom terkecil yang dapat dimulai ulang. Kontainer Foreach Loop dan kontainer yang ditransaksikan juga diperlakukan sebagai unit kerja atomik.

Jika paket dihentikan saat kontainer yang ditransaksikan berjalan, transaksi berakhir dan pekerjaan apa pun yang dilakukan oleh kontainer digulung balik. Ketika paket dimulai ulang, kontainer yang gagal dijalankan ulang. Penyelesaian kontainer turunan dari kontainer yang ditransaksikan tidak dicatat dalam file titik pemeriksaan. Oleh karena itu, ketika paket dimulai ulang, kontainer yang ditransaksikan dan kontainer turunannya berjalan lagi.

Catatan

Menggunakan titik pemeriksaan dan transaksi dalam paket yang sama dapat menyebabkan hasil yang tidak terduga. Misalnya, ketika paket gagal dan dimulai ulang dari titik pemeriksaan, paket mungkin mengulangi transaksi yang telah berhasil dilakukan.

Data titik pemeriksaan tidak disimpan untuk kontainer For Loop dan Foreach Loop. Ketika paket dimulai ulang, kontainer For Loop dan Foreach Loop dan kontainer turunan dijalankan lagi. Jika kontainer turunan dalam perulangan berhasil dijalankan, kontainer tersebut tidak direkam dalam file titik pemeriksaan, sebagai gantinya dijalankan ulang. Untuk informasi selengkapnya dan solusinya, lihat Titik Pemeriksaan SSIS tidak dihormati untuk item kontainer For Loop atau Foreach Loop.

Jika paket dimulai ulang, konfigurasi paket tidak dimuat ulang, sebaliknya paket menggunakan informasi konfigurasi yang ditulis ke file titik pemeriksaan. Ini memastikan bahwa paket menggunakan konfigurasi yang sama saat dijalankan ulang saat gagal.

Paket hanya dapat dimulai ulang pada tingkat alur kontrol. Anda tidak dapat memulai ulang paket di tengah aliran data. Untuk menghindari menjalankan ulang seluruh aliran data, paket mungkin dirancang untuk menyertakan beberapa aliran data, masing-masing menggunakan tugas Aliran Data yang berbeda. Dengan cara ini paket dapat dimulai ulang, menjalankan ulang hanya satu tugas Aliran Data.

Mengonfigurasi Paket untuk Memulai Ulang

File titik pemeriksaan mencakup hasil eksekusi semua kontainer yang selesai, nilai sistem saat ini dan variabel yang ditentukan pengguna, dan informasi konfigurasi paket. File ini juga menyertakan pengidentifikasi unik paket. Agar berhasil menghidupkan ulang paket, pengidentifikasi paket dalam file titik pemeriksaan dan paket harus cocok; jika tidak, hidupkan ulang gagal. Ini mencegah paket menggunakan file titik pemeriksaan yang ditulis oleh versi paket yang berbeda. Jika paket berhasil dijalankan, setelah dimulai ulang, file titik pemeriksaan dihapus.

Tabel berikut mencantumkan properti paket yang Anda atur untuk mengimplementasikan titik pemeriksaan.

Properti Deskripsi
CheckpointFileName Menentukan nama file titik pemeriksaan.
Titik PemeriksaanPenggunaan Menentukan apakah titik pemeriksaan digunakan.
SaveCheckpoints Menunjukkan apakah paket menyimpan titik pemeriksaan. Properti ini harus diatur ke True untuk memulai ulang paket dari titik kegagalan.

Selain itu, Anda harus mengatur properti FailPackageOnFailure ke true untuk semua kontainer dalam paket yang ingin Anda identifikasi sebagai titik hidupkan ulang.

Anda dapat menggunakan properti ForceExecutionResult untuk menguji penggunaan titik pemeriksaan dalam paket. Dengan mengatur ForceExecutionResult dari tugas atau kontainer ke Kegagalan, Anda dapat meniru kegagalan real-time. Saat Anda menjalankan ulang paket, tugas dan kontainer yang gagal akan dijalankan ulang.

Penggunaan Titik Pemeriksaan

Properti CheckpointUsage dapat diatur ke nilai berikut:

Nilai Deskripsi
Tidak pernah Menentukan bahwa file titik pemeriksaan tidak digunakan dan paket berjalan dari awal alur kerja paket.
Selalu Menentukan bahwa file titik pemeriksaan selalu digunakan dan bahwa paket dimulai ulang dari titik kegagalan eksekusi sebelumnya. Jika file titik pemeriksaan tidak ditemukan, paket gagal.
IfExists Menentukan bahwa file titik pemeriksaan digunakan jika ada. Jika file titik pemeriksaan ada, paket dimulai ulang dari titik kegagalan eksekusi sebelumnya; jika tidak, itu berjalan dari awal alur kerja paket.

Catatan

Opsi /CheckPointing pada dtexec setara dengan mengatur properti SaveCheckpoints paket ke True, dan properti CheckpointUsage ke Always. Untuk informasi selengkapnya, lihat Utilitas dtexec.

Mengamankan File Titik Pemeriksaan

Perlindungan tingkat paket tidak termasuk perlindungan file titik pemeriksaan dan Anda harus mengamankan file-file ini secara terpisah. Data titik pemeriksaan hanya dapat disimpan dalam sistem file dan Anda harus menggunakan daftar kontrol akses sistem operasi (ACL) untuk mengamankan lokasi atau folder tempat Anda menyimpan file. Penting untuk mengamankan file titik pemeriksaan karena berisi informasi tentang status paket, termasuk nilai variabel saat ini. Misalnya, variabel mungkin berisi kumpulan rekaman dengan banyak baris data privat seperti nomor telepon. Untuk informasi selengkapnya, lihat Akses ke File yang Digunakan oleh Paket.

Mengonfigurasi Titik Pemeriksaan untuk Memulai Ulang Paket yang Gagal

Anda mengonfigurasi paket Integration Services untuk memulai ulang dari titik kegagalan, alih-alih menjalankan ulang seluruh paket, dengan mengatur properti yang berlaku untuk titik pemeriksaan.

Untuk mengonfigurasi paket untuk memulai ulang

  1. Di SQL Server Data Tools (SSDT), buka proyek Integration Services yang berisi paket yang ingin Anda konfigurasi.

  2. Di Penjelajah Solusi, klik dua kali paket untuk membukanya.

  3. Klik tab Alur Kontrol.

  4. Klik kanan di mana saja di latar belakang permukaan desain alur kontrol, lalu klik Properti.

  5. Atur properti SaveCheckpoints ke True.

  6. Ketik nama file titik pemeriksaan di properti CheckpointFileName.

  7. Atur properti CheckpointUsage ke salah satu dari dua nilai:

    • Pilih Selalu untuk selalu memulai ulang paket dari titik pemeriksaan.

      Penting

      Kesalahan terjadi jika file titik pemeriksaan tidak tersedia.

    • Pilih IfExists untuk memulai ulang paket hanya jika file titik pemeriksaan tersedia.

  8. Konfigurasikan tugas dan kontainer tempat paket dapat dimulai ulang.

    • Klik kanan tugas atau kontainer dan klik Properti.

    • Atur properti FailPackageOnFailure ke True untuk setiap tugas dan kontainer yang dipilih.

Sumber Daya Eksternal