Bagikan melalui


Tugas Kontrol CDC

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

Penting

Komponen Aliran CDC, termasuk Tugas Kontrol CDC, Sumber CDC, dan Pemisah CDC, tidak digunakan lagi. Detailnya, lihat pengumuman.

Tugas Kontrol CDC digunakan untuk mengontrol siklus hidup paket pengambilan data perubahan (CDC). Ini menangani sinkronisasi paket CDC dengan paket beban awal, manajemen rentang Nomor Urutan Log (LSN) yang diproses dalam 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
ResetCdcState 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 tanda waktu sys.fn_cdc_get_max_lsn LSN menjadi awal rentang untuk rentang 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 mengerjakan CDC SQL Server (yaitu, bukan Oracle) pengguna yang ditentukan di manajer koneksi harus db_owner atau sysadmin.
MarkInitialLoadEnd 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 mengerjakan CDC SQL Server (yaitu , bukan Oracle) pengguna yang ditentukan di manajer koneksi harus db_owner atau sysadmin.
MarkCdcStart Operasi ini digunakan ketika beban awal dibuat dari database rekam jepret. 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 opsi untuk menentukan LSN rekam jepret secara langsung.

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
GetProcessingRange 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.
MarkProcessedRange : Operasi ini dijalankan setelah setiap CDC berjalan (setelah aliran data CDC berhasil diselesaikan) untuk merekam LSN terakhir yang sepenuhnya diproses dalam eksekusi CDC. 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. Status disimpan di bawah nama yang disediakan di properti StateName dalam tabel bernama di properti Tabel untuk Digunakan untuk Penyimpanan Status , yang terletak di manajer koneksi yang dipilih untuk menyimpan status. 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:

  • Ini gagal membaca status CDC persisten atau ketika memperbarui status persisten gagal.

  • Ini gagal membaca informasi LSN saat ini dari database sumber.

  • 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 Kontrol CDC juga dapat melaporkan peringatan ketika operasi Dapatkan Rentang Pemrosesan dipanggil langsung setelah operasi Dapatkan Rentang Pemrosesan lain tanpa Tandai Rentang Yang Diproses dipanggil. 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 Editor Tugas Kontrol CDC untuk mengonfigurasi tugas Kontrol CDC. 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 Kontrol CDC.

Opsi

Pengelola koneksi ADO.NET 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 mulai beban awal: Operasi ini digunakan saat menjalankan beban awal dari database aktif tanpa rekam jepret. 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 Mulai Beban Awal saat bekerja di CDC SQL Server (yaitu, bukan Oracle) pengguna yang ditentukan dalam manajer koneksi harus db_owner atau sysadmin.

  • Tandai akhir beban awal: Operasi ini digunakan saat menjalankan beban awal dari database aktif tanpa rekam jepret. 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 cdc.lsn_time_tabel pemetaan di database CDC mencari perubahan yang terjadi setelah waktu tersebut

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

  • Tandai CDC mulai: Operasi ini digunakan saat beban awal dibuat dari database rekam jepret atau dari database quiescence. Ini dipanggil pada titik mana pun dalam paket beban awal. Operasi menerima parameter yang dapat menjadi rekam jepret LSN, nama database rekam jepret (dari mana LSN rekam jepret akan diturunkan 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 CDC Mulai saat mengerjakan CDC SQL Server (yaitu, bukan Oracle) pengguna yang ditentukan dalam pengelola koneksi harus 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 kemungkinan status CDC yang 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 tanda waktu sys.fn_cdc_get_max_lsn LSN menjadi awal rentang untuk rentang 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.

SQL Server LSN untuk memulai nama CDC/Rekam Jepret:
Ketik LSN database sumber saat ini atau nama database rekam jepret tempat beban awal dilakukan untuk menentukan di mana CDC dimulai. Ini hanya tersedia jika Operasi Kontrol CDC diatur ke Tandai CDC Mulai.

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.

manajer Koneksi ion 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 status
Ketik nama untuk dikaitkan dengan status CDC persisten. Beban penuh dan paket CDC yang berfungsi dengan konteks CDC yang sama akan menentukan nama status umum. Nama ini digunakan untuk mencari baris status dalam tabel status