sys.sp_cdc_add_job (T-SQL)

Berlaku untuk:SQL Server

Membuat pekerjaan pembersihan atau pengambilan penangkapan data perubahan di database saat ini.

Konvensi sintaks transact-SQL

Sintaks

sys.sp_cdc_add_job [ @job_type = ] N'job_type'
    [ , [ @start_job = ] start_job ]
    [ , [ @maxtrans = ] max_trans ]
    [ , [ @maxscans = ] max_scans ]
    [ , [ @continuous = ] continuous ]
    [ , [ @pollinginterval = ] polling_interval ]
    [ , [ @retention ] = retention ]
    [ , [ @threshold ] = 'delete_threshold' ]
[ ; ]

Argumen

[ @job_type = ] N'job_type'

Jenis pekerjaan yang akan ditambahkan. @job_type adalah nvarchar(20) dan tidak boleh NULL. Input yang valid adalah capture dan cleanup.

[ @start_job = ] start_job

Bendera yang menunjukkan apakah pekerjaan harus dimulai segera setelah ditambahkan. @start_job sedikit dengan default 1.

[ @maxtrans ] = max_trans

Jumlah maksimum transaksi yang akan diproses di setiap siklus pemindaian. @maxtrans int dengan default 500. Jika ditentukan, nilainya harus bilangan bulat positif.

@maxtrans hanya berlaku untuk pekerjaan pengambilan.

[ @maxscans ] = max_scans

Jumlah maksimum siklus pemindaian yang akan dijalankan untuk mengekstrak semua baris dari log. @maxscans int dengan default 10.

@max_scan hanya berlaku untuk pekerjaan pengambilan.

[ @continuous ] = berkelanjutan

Menunjukkan apakah pekerjaan penangkapan akan berjalan terus menerus (1), atau hanya berjalan sekali (0). @continuous sedikit dengan default 1.

  • Ketika @continuous adalah 1, pekerjaan sp_cdc_scan memindai log dan memproses hingga (@maxtrans * @maxscans) transaksi. Kemudian menunggu jumlah detik yang ditentukan dalam @pollinginterval sebelum memulai pemindaian log berikutnya.

  • Ketika @continuous adalah 0, sp_cdc_scan pekerjaan dijalankan hingga @maxscans pemindaian log, memproses hingga @maxtrans transaksi selama setiap pemindaian, dan kemudian keluar.

@continuous hanya berlaku untuk pekerjaan pengambilan.

[ @pollinginterval ] = polling_interval

Jumlah detik antara siklus pemindaian log. @pollinginterval besar dengan default 5.

@pollinginterval hanya berlaku untuk pekerjaan pengambilan saat @continuous diatur ke 1. Jika ditentukan, nilai harus lebih besar dari atau sama dengan 0 dan kurang dari 24 jam (hingga 86399 detik). Jika nilai 0 ditentukan, tidak ada tunggu di antara pemindaian log.

[ @retention ] = retensi

Jumlah menit yang mengubah baris data akan dipertahankan dalam tabel perubahan. @retention besar dengan default 4320 (72 jam). Nilai maksimumnya adalah 52494800 (100 tahun). Jika ditentukan, nilainya harus bilangan bulat positif.

@retention hanya berlaku untuk pekerjaan pembersihan.

[ @threshold = ] 'delete_threshold'

Jumlah maksimum entri penghapusan yang dapat dihapus dengan menggunakan satu pernyataan saat pembersihan. @threshold besar dengan default 5000.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Pekerjaan pembersihan dibuat menggunakan nilai default saat tabel pertama dalam database diaktifkan untuk mengubah pengambilan data. Pekerjaan penangkapan dibuat menggunakan nilai default ketika tabel pertama dalam database diaktifkan untuk mengubah pengambilan data dan tidak ada publikasi transaksi untuk database. Ketika publikasi transaksi ada, pembaca log transaksi ini digunakan untuk mendorong mekanisme penangkapan, dan pekerjaan pengambilan terpisah tidak diperlukan atau diizinkan.

Karena pekerjaan pembersihan dan penangkapan dibuat secara default, prosedur tersimpan ini hanya diperlukan ketika pekerjaan telah dihilangkan secara eksplisit dan harus dibuat ulang.

Nama pekerjaan adalah cdc.<database_name>_cleanup atau cdc.<database_name>_capture, di mana <database_name> adalah nama database saat ini. Jika pekerjaan dengan nama yang sama sudah ada, nama ditambahkan dengan titik (.) diikuti oleh pengidentifikasi unik, misalnya: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.

Untuk melihat konfigurasi pekerjaan pembersihan atau pengambilan saat ini, gunakan sp_cdc_help_jobs. Untuk mengubah konfigurasi pekerjaan, gunakan sp_cdc_change_job.

Izin

Memerlukan keanggotaan dalam peran database tetap db_owner .

Contoh

J. Membuat pekerjaan pengambilan

Contoh berikut membuat pekerjaan pengambilan. Contoh ini mengasumsikan bahwa pekerjaan pembersihan yang ada secara eksplisit dihilangkan dan harus dibuat ulang. Pekerjaan dibuat menggunakan nilai default.

USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO

B. Membuat pekerjaan pembersihan

Contoh berikut membuat pekerjaan pembersihan di database AdventureWorks2022. Parameter @start_job diatur ke 0 dan @retention diatur ke 5760 menit (96 jam). Contoh ini mengasumsikan bahwa pekerjaan pembersihan yang ada secara eksplisit dihilangkan dan harus dibuat ulang.

USE AdventureWorks2022;
GO

EXEC sys.sp_cdc_add_job
    @job_type = N'cleanup',
    @start_job = 0,
    @retention = 5760;