Aracılığıyla paylaş


Veri yakalama Değiştir'i etkinleştirme

Bu konu nasıl etkinleştirileceği veritabanı ve tablo için veri yakalama değişikliği içerir.

Bir veritabanı için veri yakalama Değiştir'i etkinleştirme

Tek tek tablolar için üyesi olan bir yakalama örnek oluşturulmadan öncesysadminsabit sunucu rolü gerekir önce etkinleştirmeniz veritabanında değişiklik veri yakalama.Saklı yordam çalıştırarak bu yapılırsys.sp_cdc_enable_db (Transact-SQL)veritabanı içerik.Bir veritabanı zaten etkin olup olmadığını belirlemek için sorguis_cdc_enabledsütunundasys.databasesKatalog görünümü.

Veritabanında değişiklik veri yakalama için etkinleştirildiğindecdcşema,cdckullanıcı, meta veriler tabloları ve diğer sistem nesneleri oluşturulan veritabanı.The cdc schema contains the change data capture metadata tables and, after source tables are enabled for change data capture, the individual change tables serve as a repository for change data.The cdc schema also contains associated system functions used to query for change data.

Değişiklik veri yakalama özel kullanımı gerektirencdcşema vecdckullanıcı.Bir şema ya da adlı bir veritabanı kullanıcısıcdcşimdilik kullanıcı ve şema bırakılan veya yeniden adlandırılmış bir veritabanında, veritabanı değişikliği veri yakalama için etkin duruma getirilemez.

Etkinleştirme veritabanı şablonu değiştirme, veri yakalama örnek veritabanını etkinleştirme konusuna bakın.

Important noteImportant Note:

Şablonlar, bulmak içinSQL Server Management StudioGitGörünümTemplate Explorer' ı tıklatın ve sonra seçin SQL Server şablonları . Yakalama verisini Değiştir olan bir alt.Bu klasörü altında bu konuda başvurulan tüm şablonları bulabilirsiniz.De birŞablon Gezgini simge SQL Server Management Studioaraç.

-- ================================

--HDM şablonu için veritabanını etkinleştir

-- ================================

USE MyDB
GO

EXEC sys.sp_cdc_enable_db
GO

Tablo için veri yakalama Değiştir'i etkinleştirme

Veritabanında değişiklik veri yakalama, üyelerinin etkin sonradb_ownersabit veritabanı rolü saklı yordam kullanarak tek tek kaynak tablo için bir yakalama örnek oluşturmasys.sp_cdc_enable_table.Bir kaynak olup olmadığını belirlemek için tablo zaten değişikliği etkin veri yakalama, is_tracked_by_cdc sütununda incelemeksys.tablesKatalog görünümü.

Bir yakalama örnek oluşturulurken, aşağıdaki seçenekler belirtilebilir:

Columns in the source table to be captured.

Varsayılan olarak, tüm kaynak sütunları tablo yakalanan sütun olarak tanımlanır.Gereken alt küme küme sütun, yalnızca izlenen gibi gizlilik veya performans nedenleriyle olarak kullanan@captured_column_listparametre için alt küme küme sütunlar.

A filegroup to contain the change table.

Varsayılan olarak, değişiklik tablo veritabanının varsayılan dosya grubu bulunur.Ayrı ayrı tablolar yerleşimini denetlemek için istediğiniz veritabanı sahipleri kullanarak@filegroup_nameparametre için belirli bir dosya grubu değişikliği tablo ilişkili yakalama örnek.Adlandırılmış dosya grubu zaten bulunması gerekir.Genellikle, kaynak tabloları ayrı bir dosya grubu değişikliği tablolara yerleştirilmesi önerilir.Bkz:Enable a Table Specifying Filegroup Optionkullanımını gösteren örnek için şablon@filegroup_nameparametre.

===================================================

--Tablo dosya grubu seçeneği şablon belirtme etkinleştir

-- ===================================================

USE MyDB
GO

EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name   = N'MyTable',
@role_name     = N'MyRole',
@filegroup_name = N'MyDB_CT',
@supports_net_changes = 1
GO

A role for controlling access to a change table.

Değişiklik veriye erişimi denetlemek için adlandırılmış rolü amacı var.Belirtilen rol, varolan bir sabit sunucu rolü veya bir veritabanı rolü olabilir.Bu adda bir veritabanı rolü, belirtilen rol zaten mevcut değilse, otomatik olarak oluşturulur.Üyeleri ya dasysadminordb_ownerrole sahip tam erişim veri değişikliği tablo.Diğer tüm kullanıcıların, kaynak tablo yakalanan sütunlar üzerinde SELECT izni olmalıdır.Ayrıca, ne zaman bir rolü belirtilirse, her iki üyesi olmayan kullanıcılarsysadminordb_ownerrol üyeleri belirtilen rol. de olmalıdır

Gating rol kullanmak istiyorsanız, kesin olarak küme@role_nameparametre NULL.Bkz:Enable a Table Without Using a Gating Roleetkinleştirme örnek şablon bir tablo gating bir rol.

-- ===================================================

--Bir tablo olmayan kullanarak geçişi rol şablonu etkinleştir

-- ===================================================

USE MyDB
GO

EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name   = N'MyTable>',
@role_name     = NULL,
@supports_net_changes = 1
GO

A function to query for net changes.

Bir yakalama örnek her zaman tüm değişiklik tanımlanan aralığında oluşan tablosu girdilerini döndürmek için bir tablo değerli fonksiyon içerir.Bu işlev, "cdc.fn_cdc_get_all_changes_" için yakalama örnek adını ekleyerek adı verilir.Daha fazla bilgi için bkz:cdc.fn_cdc_get_all_changes_ < capture_instance > (Transact-SQL).

, Parametre@supports_net_changesküme 1, net değişim yakalama örnek. de işlev oluşturulurBu işlev çağrısı belirtilen aralıkta değişen farklı her satır için yalnızca bir değişiklik verir.Daha fazla bilgi için bkz:cdc.fn_cdc_get_net_changes_ < capture_instance > (Transact-SQL).

Net Değişim sorgularını destekler için kaynak tablonun birincil anahtar veya benzersiz satırları tanımlamak benzersiz dizin olmalıdır.Kullanılan benzersiz dizin, dizin adı kullanılarak belirtilmelidir@index_nameparametre.Birincil anahtar sütunları tanımlanan veya benzersiz dizin yakalanması için kaynak sütunlar listesi dahil edilmelidir.

Bkz:Enable a Table for All and Net Changes Queriesşablon için örnek gösteren iki sorgu işlevlerini. yakalama örneği oluşturma

=======================================================

--Bir tablo için tüm ve net değişiklik sorgu şablonu etkinleştir

-- =======================================================

USE MyDB
GO

EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name   = N'MyTable',
@role_name     = N'MyRole',
@supports_net_changes = 1
GO

Not

Değişiklik veri yakalama tablo varolan bir birincil anahtar, etkin olduğunda,@index_nameparametre diğer benzersiz dizin belirlemek için kullanılmaz, değişiklik veri yakalama özelliği kullanacağı birincil anahtarı.Birincil anahtar sonraki değişiklikler ilk devre dışı bırakma değişiklik veri yakalama tablo için izin verilmez.Bu mi olsun geçerlidir net değişim sorgu işlemi istendi değişiklik veri yakalama yapılandırıldığında desteği.Sonraki ek bir birincil anahtar varsa birincil anahtarı olmayan bir tablo üzerinde saatte etkin değişiklik veri yakalama, değişiklik veri yakalama tarafından göz ardı edilir.Anahtarı ve anahtar sütunları değiştirme veri yakalama tablo etkinleştirildikten sonra oluşturulan birincil anahtar kullanmalısınız çünkü, kısıtlama kaldırılabilir.