Tugas Pengendalian CDC

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

Penting

Komponen alur CDC, termasuk Tugas Kontrol CDC, Sumber CDC, dan Pemisah CDC, sudah usang. Detailnya, lihat pengumuman.

Tugas Kontrol CDC digunakan untuk mengontrol siklus hidup paket pengambilan data perubahan (CDC). Ini menangani sinkronisasi paket CDC dengan paket pemuatan awal, serta pengelolaan rentang Nomor Urutan Log (LSN) yang diproses dalam satu proses eksekusi paket CDC. Selain itu, tugas Kontrol CDC menangani skenario kesalahan dan pemulihan.

Tugas Kontrol CDC mempertahankan status paket CDC dalam variabel paket SSIS dan juga dapat mempertahankannya dalam tabel database sehingga status dipertahankan di seluruh aktivasi paket dan antara beberapa paket yang bersama-sama melakukan proses CDC umum (misalnya, satu tugas mungkin bertanggung jawab atas pemuatan awal dan yang lainnya untuk pembaruan umpan trickle).

Tugas Kontrol CDC mendukung dua grup operasi. Satu grup menangani sinkronisasi beban awal dan pemrosesan perubahan, dan yang lain mengelola rentang pemrosesan perubahan LSN untuk menjalankan paket CDC dan melacak apa yang berhasil diproses.

Operasi berikut menangani sinkronisasi beban awal dan pemrosesan perubahan:

Operasi Deskripsi
Mengatur Ulang Status CDC Operasi ini digunakan untuk mengatur ulang status CDC persisten yang terkait dengan konteks CDC saat ini. Setelah operasi ini dijalankan, LSN maksimum saat ini dari tabel LSN-timestamp sys.fn_cdc_get_max_lsn menjadi awal kisaran untuk pemrosesan berikutnya. Operasi ini memerlukan koneksi ke database sumber.
MarkInitialLoadStart Operasi ini digunakan di awal paket pemuatan awal untuk merekam LSN saat ini dalam database sumber sebelum paket pemuatan awal mulai membaca tabel sumber. Ini memerlukan koneksi ke database sumber untuk memanggil sys.fn_cdc_get_max_lsn.

Jika Anda memilih MarkInitialLoadStart saat bekerja dengan SQL Server CDC (yaitu, bukan Oracle), pengguna yang ditentukan dalam pengelola koneksi harus merupakan anggota db_owner atau sysadmin.
TandaiAkhirPemuatAwal Operasi ini digunakan di akhir paket pemuatan awal untuk merekam LSN saat ini dalam database sumber setelah paket pemuatan awal selesai membaca tabel sumber. LSN ini ditentukan dengan merekam waktu saat ini ketika operasi ini terjadi lalu mengkueri cdc.lsn_time_tabel pemetaan dalam database CDC mencari perubahan yang terjadi setelah waktu tersebut.

Jika Anda memilih MarkInitialLoadEnd saat menggunakan SQL Server CDC (yaitu bukan Oracle), pengguna yang ditentukan dalam pengelola koneksi harus merupakan db_owner atau sysadmin.
MarkCdcStart Operasi ini digunakan ketika pemuatan awal dilakukan dari database snapshot. Dalam hal ini, pemrosesan perubahan harus dimulai segera setelah rekam jepret LSN. Anda dapat menentukan nama database rekam jepret yang akan digunakan dan tugas Kontrol CDC meminta SQL Server untuk rekam jepret LSN. Anda juga memiliki pilihan untuk secara langsung menentukan LSN snapshot.

Jika Anda memilih MarkCdcStart saat mengerjakan CDC SQL Server (yaitu , bukan Oracle) pengguna yang ditentukan di manajer koneksi harus db_owner atau sysadmin.

Operasi berikut digunakan untuk mengelola rentang pemrosesan:

Operasi Deskripsi
DapatkanRentangPemrosesan Operasi ini digunakan sebelum memanggil aliran data yang menggunakan aliran data Sumber CDC. Ini menetapkan rentang LSN yang dibaca aliran data Sumber CDC saat dipanggil. Rentang disimpan dalam variabel paket SSIS yang digunakan oleh Sumber CDC selama pemrosesan aliran data.

Untuk informasi selengkapnya tentang status yang disimpan, lihat Menentukan Variabel Status.
TandaiRentangDiproses : Operasi ini dijalankan setelah setiap proses CDC dijalankan (setelah alur data CDC berhasil selesai) untuk merekam LSN terakhir yang sepenuhnya diproses dalam proses CDC tersebut. Lain kali GetProcessingRange dijalankan, posisi ini adalah awal dari rentang pemrosesan.

Menangani Persistensi Status CDC

Tugas Kontrol CDC mempertahankan status persisten antar aktivasi. Informasi yang disimpan dalam status CDC digunakan untuk menentukan dan mempertahankan rentang pemrosesan untuk paket CDC dan untuk mendeteksi kondisi kesalahan. Status persisten disimpan sebagai string. Untuk informasi selengkapnya, lihat Menentukan Variabel Status.

Tugas Kontrol CDC mendukung dua jenis persistensi status

  • Persistensi Status Manual: Dalam hal ini, tugas Kontrol CDC mengelola status yang disimpan dalam variabel paket tetapi pengembang paket harus membaca variabel dari penyimpanan persisten sebelum memanggil Kontrol CDC dan kemudian menulisnya kembali ke penyimpanan persisten tersebut setelah Kontrol CDC terakhir dipanggil dan eksekusi CDC selesai.

  • Persistensi Status Otomatis: Status CDC disimpan dalam tabel dalam database. State disimpan dengan nama yang diberikan dalam properti StateName di tabel yang disebutkan dalam properti Table to Use for Storing State, yang berada dalam manajer koneksi yang dipilih untuk menyimpan state. Defaultnya adalah manajer koneksi sumber tetapi praktik umumnya adalah untuk menjadi manajer koneksi target. Tugas Kontrol CDC memperbarui nilai status dalam tabel status dan ini diterapkan sebagai bagian dari transaksi sekitar.

Penanganan Kesalahan

Tugas Kontrol CDC dapat melaporkan kesalahan ketika:

  • Terjadi kegagalan saat membaca status CDC persisten atau saat memperbarui status persisten.

  • Gagal membaca informasi LSN saat ini dari basis data sumber.

  • Hasil pembacaan status CDC tidak konsisten.

Dalam semua kasus ini, tugas Kontrol CDC melaporkan kesalahan yang dapat ditangani dengan cara standar SSIS menangani kesalahan aliran kontrol.

Tugas CDC Control juga dapat melaporkan peringatan saat operasi Get Processing Range dipanggil segera setelah operasi Get Processing Range sebelumnya tanpa pemanggilan Mark Processed Range. Ini adalah indikasi bahwa eksekusi sebelumnya gagal atau bahwa paket CDC lain mungkin berjalan menggunakan nama status CDC yang sama.

Mengonfigurasi Tugas Kontrol CDC

Anda dapat mengatur properti melalui SSIS Designer atau secara terprogram.

Di Bagian Ini

Tentukan Variabel Status

Editor Tugas Kontrol CDC

Gunakan kotak dialog CDC Control Task Editor untuk mengonfigurasi tugas CDC Control. Konfigurasi tugas Kontrol CDC mencakup menentukan koneksi ke database CDC, operasi tugas CDC, dan informasi manajemen status.

Untuk mempelajari selengkapnya tentang tugas Kontrol CDC, lihat Tugas Kontrol CDC.

Untuk membuka Editor Tugas Kontrol CDC

  1. Di SQL Server Data Tools, buka paket SQL Server 2019 Integration Services (SSIS) yang memiliki tugas Kontrol CDC.

  2. Pada tab Alur Kontrol, klik dua kali tugas CDC Control.

Opsi

Pengelola koneksi ADO.NET untuk database CDC SQL Server
Pilih manajer koneksi yang sudah ada dari daftar, atau klik Baru untuk membuat koneksi baru. Koneksi harus ke database SQL Server yang diaktifkan untuk CDC dan tempat tabel perubahan yang dipilih berada.

Operasi Kontrol CDC
Pilih operasi yang akan dijalankan untuk tugas ini. Semua operasi menggunakan variabel status yang disimpan dalam variabel paket SSIS yang menyimpan status dan meneruskannya di antara komponen yang berbeda dalam paket.

  • Tandai dimulainya pemuatan awal: Operasi ini digunakan saat menjalankan pemuatan awal dari basis data aktif tanpa snapshot. Ini dipanggil di awal paket beban awal untuk merekam LSN saat ini dalam database sumber sebelum paket beban awal mulai membaca tabel sumber. Ini memerlukan koneksi ke database sumber.

    Jika Anda memilih Tandai Awal Pemuatan Awal saat bekerja dengan SQL Server CDC (yaitu, bukan Oracle), pengguna yang ditentukan di manajer koneksi harus merupakan anggota db_owner atau sysadmin.

  • Tandai akhir pemuatan awal: Operasi ini digunakan saat menjalankan pemuatan awal dari basis data aktif tanpa snapshot. Ini dipanggil di akhir paket beban awal untuk merekam LSN saat ini dalam database sumber setelah paket pemuatan awal selesai membaca tabel sumber. LSN ini ditentukan dengan merekam waktu saat ini ketika operasi ini terjadi lalu mengkueri tabel pemetaan cdc.lsn_time_dalam database CDC mencari perubahan yang terjadi setelah waktu tersebut

    Jika Anda memilih Tandai Akhir Pemuatan Awal saat menggunakan SQL Server CDC (yaitu, bukan Oracle), pengguna yang ditentukan dalam manajer koneksi harus merupakan db_owner atau sysadmin.

  • Tandai awal CDC: Operasi ini digunakan saat pemuatan awal dilakukan dari basis data cuplikan atau dari basis data tenang. Ini dipanggil pada titik mana pun dalam paket beban awal. Operasi ini menerima parameter yang dapat berupa LSN snapshot, nama database snapshot (yang darinya LSN snapshot akan ditentukan secara otomatis), atau dapat dibiarkan kosong; dalam hal ini, LSN database saat ini digunakan sebagai LSN awal untuk paket pemrosesan perubahan.

    Operasi ini digunakan alih-alih operasi Mark Initial Load Start/End.

    Jika Anda memilih Tandai Awal CDC saat menggunakan SQL Server CDC (yaitu, bukan Oracle), pengguna yang ditentukan dalam pengelola koneksi harus merupakan db_owner atau sysadmin.

  • Dapatkan rentang pemrosesan: Operasi ini digunakan dalam paket pemrosesan perubahan sebelum memanggil aliran data yang menggunakan aliran data Sumber CDC. Ini menetapkan rentang LSN yang dibaca aliran data Sumber CDC saat dipanggil. Rentang disimpan dalam variabel paket SSIS yang digunakan oleh Sumber CDC selama pemrosesan aliran data.

    Untuk informasi selengkapnya tentang status CDC yang mungkin disimpan, lihat Menentukan Variabel Status.

  • Tandai rentang yang diproses: Operasi ini digunakan dalam paket pemrosesan perubahan di akhir eksekusi CDC (setelah aliran data CDC berhasil diselesaikan) untuk merekam LSN terakhir yang sepenuhnya diproses dalam eksekusi CDC. Lain kali GetProcessingRange dijalankan, posisi ini menentukan awal rentang pemrosesan berikutnya.

  • Reset status CDC: Operasi ini digunakan untuk mengatur ulang status CDC persisten yang terkait dengan konteks CDC saat ini. Setelah operasi ini dijalankan, LSN maksimum saat ini dari tabel LSN-timestamp sys.fn_cdc_get_max_lsn menjadi awal kisaran untuk pemrosesan berikutnya. Operasi ini memerlukan koneksi ke database sumber.

    Contoh kapan operasi ini digunakan adalah ketika Anda hanya ingin memproses rekaman perubahan yang baru dibuat dan mengabaikan semua rekaman perubahan lama.

Variabel yang berisi status CDC
Pilih variabel paket SSIS yang menyimpan informasi status untuk operasi tugas. Anda harus menentukan variabel sebelum memulai. Jika Anda memilih Persistensi status otomatis, variabel status dimuat dan disimpan secara otomatis.

Untuk informasi selengkapnya tentang menentukan variabel status, lihat Menentukan Variabel Status.

LSN SQL Server untuk memulai nama CDC/Snapshot:
Masukkan LSN database sumber saat ini atau nama database snapshot yang digunakan untuk melakukan pemuatan awal guna menentukan titik awal CDC. Ini hanya tersedia jika Operasi Kontrol CDC diatur ke Tandai Mulai CDC.

Untuk informasi selengkapnya tentang operasi ini, lihat Tugas Kontrol CDC

Menyimpan status secara otomatis dalam tabel database
Pilih kotak centang ini untuk tugas Kontrol CDC untuk menangani pemuatan dan penyimpanan status CDC secara otomatis dalam tabel status yang terkandung dalam database yang ditentukan. Ketika tidak dipilih, pengembang harus memuat Status CDC saat paket dimulai dan menyimpannya setiap kali Status CDC berubah.

Pengelola koneksi untuk database tempat status disimpan
Pilih pengelola koneksi ADO.NET yang sudah ada dari daftar, atau klik Baru untuk membuat koneksi baru. Koneksi ini ke database SQL Server yang berisi tabel Status. Tabel Status berisi informasi Status.

Ini hanya tersedia jika Persistensi status otomatis dipilih dan ini adalah parameter yang diperlukan.

Tabel yang digunakan untuk menyimpan status
Ketik nama tabel status yang akan digunakan untuk menyimpan status CDC. Tabel yang ditentukan harus memiliki dua kolom yang disebut nama dan status dan kedua kolom harus dari varchar tipe data (256).

Anda dapat secara opsional memilih Baru untuk mendapatkan skrip SQL yang membangun tabel Status baru dengan kolom yang diperlukan. Saat Persistensi status otomatis dipilih, pengembang harus membuat tabel status sesuai dengan persyaratan yang tercantum di atas.

Ini hanya tersedia jika Persistensi status otomatis dipilih dan ini adalah parameter yang diperlukan.

Nama negara bagian
Ketik nama untuk diasosiasikan dengan status CDC yang persisten. Paket muatan penuh dan paket CDC yang menggunakan konteks CDC yang sama akan menentukan nama status bersama. Nama ini digunakan untuk mencari baris status dalam tabel status