Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Mevcut veritabanında bir değişiklik veri yakalama temizliği veya yakalama işi oluşturur.
Transact-SQL söz dizimi kuralları
Sözdizimi
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' ]
[ ; ]
Arguments
[ @job_type = ] N'job_type'
Eklenecek iş türü.
@job_typenvarchar(20) ve olamaz NULL. Geçerli girişler capture ve cleanup'dir.
[ @start_job = ] start_job
İş eklendikten hemen sonra başlatılıp başlamayacağını belirten bayrak.
@start_jobbit, varsayılan olarak .1
[ @maxtrans ] = max_trans
Her tarama döngüsünde işlem yapılacak maksimum işlem sayısı.
@maxtransint ile varsayılan 500olarak . Belirtilirse, değer pozitif bir tamsayı olmalıdır.
@maxtrans sadece yakalama işleri için geçerlidir.
[ @maxscans ] = max_scans
Tüm satırları günlükten çıkarmak için yürütülmesi gereken maksimum tarama döngüsü.
@maxscansint ile varsayılan 10olarak .
@max_scan sadece yakalama işleri için geçerlidir.
[ @continuous ] = sürekli
Yakalama işinin sürekli mi (1) yoksa sadece bir kez mı çalıştırılacağını (0) gösterir.
@continuousbit, varsayılan olarak 1.
@continuous
1olduğunda, sys.sp_cdc_scan işi günlüğü tarar ve işlemlere (@maxtrans * @maxscans) kadar işlem yapar. Daha sonra @pollinginterval'de belirtilen saniye sayısını bekler, ardından bir sonraki log taramasına başlar.@continuous
0olduğunda,sp_cdc_scaniş günlüğü @maxscans taramaya kadar çalıştırır, her taramada @maxtrans kadar işlemi işler ve ardından çıkış yapar.
@continuous sadece yakalama işleri için geçerlidir.
[ @pollinginterval ] = polling_interval
Log tarama döngüleri arasındaki saniye sayısı.
@pollinginterval bigint'tir ve varsayılan olarak .5
@pollinginterval yalnızca @continuous1olarak ayarlandığında yakalama görevleri için geçerlidir. Belirtilirse, değer 24 saatten (86399 saniyeye kadar) daha büyük veya 0 eşit ve daha az olmalıdır. Eğer bir değer 0 belirtilmişse, log taramaları arasında bekleme yok.
[ @retention ] = tutma
Veri satırlarını değiştiren dakika sayısı değişim tablolarında tutulmalıdır.
@retentionbüyük bir süredir ve varsayılan 4320 süresi (72 saat). Maksimum değer 52494800 (100 yıl). Belirtilirse, değer pozitif bir tamsayı olmalıdır.
@retention sadece temizlik işleri için geçerlidir.
[ @threshold = ] 'delete_threshold'
Temizleme sırasında tek bir ifade kullanılarak silinebilecek maksimum silme girdisi sayısı.
@threshold bigint'tir ve varsayılan olarak '5000dir.
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Sonuç kümesi
Yok.
Açıklamalar
Veritabanındaki ilk tablo değişiklik veri yakalama için etkinleştirildiğinde, varsayılan değerler kullanılarak bir temizlik işi oluşturulur. Veritabanındaki ilk tablo değişiklik veri yakalama için etkinleştirildiğinde ve veritabanı için işlemsel yayınlar bulunmadığında, varsayılan değerler kullanılarak bir yakalama işi oluşturulur. İşlemsel bir yayın olduğunda, işlem günlüğü okuyucusu yakalama mekanizmasını çalıştırmak için kullanılır ve ayrı bir yakalama işi zorunlu değildir veya izin verilmez.
Temizleme ve yakalama işleri varsayılan olarak oluşturulduğundan, bu saklanan prosedür yalnızca bir iş açıkça bırakıldığında ve yeniden oluşturulması gerektiğinde gereklidir.
İşin cdc.<database_name>_cleanup adı veya cdc.<database_name>_capture, burada <database_name> mevcut veritabanının adı gösterilir. Aynı isme sahip bir iş zaten varsa, isme bir nokta (.) ve ardından benzersiz bir tanımlayıcı eklenir, örneğin: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.
Bir temizleme veya yakalama işinin mevcut yapılandırmasını görmek için sys.sp_cdc_help_jobs kullanın. Bir işin yapılandırmasını değiştirmek için sys.sp_cdc_change_job kullanın.
Permissions
Sabit db_owner veritabanı rolünde üyelik gerektirir.
Örnekler
A. Bir yakalama işi oluşturun
Aşağıdaki örnek bir yakalama işi oluşturur. Bu örnek, mevcut temizlik işinin açıkça bırakıldığını ve yeniden oluşturulması gerektiğini varsayıyor. İş, varsayılan değerler kullanılarak oluşturulur.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Bir temizlik işi yarat
Aşağıdaki örnek, AdventureWorks2025 veritabanında bir temizlik işi oluşturmaktadır.
@start_job0 parametresi 5760 dakika (96 saat) olarak ayarlanmış ve @retention olarak ayarlanmıştır. Bu örnek, mevcut temizlik işinin açıkça bırakıldığını ve yeniden oluşturulması gerektiğini varsayıyor.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;