Veri değişiklikleri izle

SQL Server 2012verileri bir veritabanında yapılan değişiklikleri izlemek iki özellik sunar: veri yakalama ve izleme,. Bu özellikler, bir veritabanındaki kullanıcı tabloları yapılan dml değişiklikleri (ekleme, güncelleştirme ve silme işlemleri) belirlemek uygulamaları etkinleştirin. Değişiklik veri yakalama ve izleme Değiştir aynı veritabanında etkin olabilir; hiçbir özel hususlar gereklidir. Sürümleri için SQL ServerDestek değişiklik veri yakalama ve izleme Değiştir görmek SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.

Değişiklik veri kullanmanın yararları çekim veya izleme değiştirme

Yetenek-e doğru veritabanında değiştirilen veri sorgusu, verimli olması bazı uygulamaları için önemli bir gereksinimdir. Genellikle, veri değişiklikleri belirlemek için uygulama geliştiricileri bir özel izleme yöntemini uygulamalarında Tetikleyiciler, zaman damgası sütunları ve ek tabloları kullanarak uygulamalıdır. Bu uygulamalar oluşturma genellikle uygulamak için iş çok içerir Şema güncelleştirmeleri yol açar ve genellikle yüksek performans ek yükünü taşır.

Değişiklik veri yakalama veya uygulamalarda özel bir çözüm geliştirmek yerine bir veritabanındaki değişiklikleri izlemek için izleme kullanarak aşağıdaki faydaları vardır:

  • Azalan geliştirme süresi yoktur. İşlevselliği mevcut olduğu SQL Server 2012, özel bir çözüm geliştirmek yok.

  • Şema değişiklikleri gerekli değildir. Sütun ekleyebilir, Tetikleyiciler veya silinmiş satırlar izlemek için ya da kullanıcı tabloları sütunlar eklenemez, izleme bilgilerini saklamak için yan tablo oluşturmak gerekmez.

  • Bir yerleşik Temizleme mekanizması yoktur. Değişiklik izleme için temizlemesi, arka planda otomatik olarak gerçekleştirilir. Özel temizleme yan tabloda depolanan veriler için gerekli değildir.

  • İşlevler, değişiklik bilgilerini edinmek için sağlanmıştır.

  • Düşük üstbilgi yükü dml işlemleri yoktur. Senkron değişiklik izleme her zaman bazı ek yük olacaktır. Bununla birlikte, değişiklik izleme kullanarak ek yükünü en aza yardımcı olabilir. Yükü sık alternatif çözümler, özellikle tetikleyici kullan gerektiren çözümler kullanarak az olacaktır.

  • Değişiklik izlemeyi taahhüt hareketlerine dayanmaktadır. Değişikliklerin sırasını hareket tamamlama zaman dayanmaktadır. Bu uzun süren ve üst üste gelen hareketler olduğunda elde edilebilir güvenilir sonuçlar sağlar. Kullanma özel çözümler timestampdeğerler gerekir tasarlanmış Bu senaryolar ele.

  • Standart araçlar, yapılandırmak ve yönetmek için kullanabileceğiniz kullanılabilir. SQL Server 2012Standart ddl deyimleri sağlayan SQL Server Management Studio, katalog görünümleri ve güvenlik izinlerini.

Özellik farkları Değiştir veri yakalama ve izleme Değiştir

Aşağıdaki tablo Değiştir veri yakalama ve değişiklik izleme arasındaki özellik farkları listeler. Böylece değişiklikler dml işlemi sonrasında kullanılabilir izleme mekanizması içinde değişiklik veri yakalama hareket günlüğü değişiklikleri zaman uyumsuz bir yakalama içerir. Değişiklik izleme, izleme mekanizması böylece değişen bilgiyi hemen kullanılabilir zaman uyumlu dml işlemleri ile değişiklik izleme içerir.

Özellik

Değişiklik verilerini yakalama

Değişiklik izleme

İzlenen değişiklikler

 

 

dml değişiklikleri

Evet

Evet

İzlenen bilgi

 

 

Historical data

Evet

Hayır

Sütun değişip

Evet

Evet

DML türü

Evet

Evet

Değişiklik veri yakalama

Değişiklik veri yakalama, aslında dml değişiklikleri yapılmış ve değiştirildi gerçek veri yakalama tarafından bir kullanıcı tablosu historical değiştirme hakkında bilgi sağlar. İşlem günlüğünü okur ve sistemi düşük bir etkisi zaman uyumsuz bir işlem kullanarak değişiklikler yakalanır.

Aşağıdaki resimde gösterildiği gibi kullanıcı tablo için yapılan değişiklikler ilgili değişiklik tabloları yakalanır. Bu tabloları değiştirmek zaman içinde değişiklikler historical bir görünümünü sağlar. Veri yakalama bu fonksiyonları SQL Serversağlayan etkinleştirme değişiklik veri kolayca ve sistematik olarak tüketilecek.

Değişiklik verilerini yakalama kavramsal çizimi

Güvenlik modeli

Bu bölümde değişiklik veri yakalama güvenlik modeli açıklar.

  • Yapılandırma ve yönetim
    Etkinleştirmek veya değiştirme devre dışı bırakmak için veri arayan bir veritabanı için yakalama sys.sp_cdc_enable_db (Transact-sql)veya sys.sp_cdc_disable_db (Transact-sql)sabit sunucu bir üyesi olmanız sysadminrolü. Tablo düzeyinde veri yakalama Değiştir devre dışı bırakma ve etkinleştirme gerektirir arayan sys.sp_cdc_enable_table (Transact-sql)ve sys.sp_cdc_disable_table (Transact-sql)ya da sysadmin rolünün veya veritabanı üyesi üye olması database db_ownerrolü.

    Değişiklik veri yakalama işler yönetimini desteklemek için saklı yordamları kullanmak sunucu üyeleri için kısıtlı sysadminrolü ve üyeleri database db_ownerrolü.

  • Değişiklik numaralandırma ve meta veri sorguları
    Değişiklik veri yakalama örneğiyle ilişkili erişmek için kullanıcının tüm Yakalanan sütunları ilişkili kaynak tablo seçin erişim verilmelidir. Ayrıca, arayan da yakalama örneği oluşturulduğunda gating rolü belirtilirse, belirtilen gating rolünün bir üyesi olması gerekir. Döndürülen meta veri erişimi de genellikle temel kaynak tabloları seçme erişimi kullanarak ve herhangi bir tanımlanmış gating rol üyeliği geçişli, ancak meta verileri erişmek için diğer genel değişiklik veri yakalama işlevleri ortak rolü, tüm veritabanı kullanıcıları için erişilebilir olacaktır.

  • Etkin kaynak tabloları ddl işlemleri için değişiklik veri yakalama
    Tablo Değiştir veri yakalama için etkin olduğunda, ddl işlemleri yalnızca tabloya sabit sunucu rolü üyesi tarafından uygulanabilir sysadmin, üye database role db_owner, ya da üye database role db_ddladmin. Açık olan kullanıcılar verir bu işlemi deneyin tablo ddl işlemleri gerçekleştirmek için hata 22914 alırsınız.

Değişiklik veri yakalama için veri türü düşünceleri

Tüm temel sütun türleri, değişiklik veri yakalama tarafından desteklenir. Aşağıdaki tabloda, davranış ve birkaç sütun türü kısıtlamaları listeler.

Sütun türü

Yakalanan değişim tabloları değişiklikleri

Sınırlamaları

Seyrek sütunlar

Evet

Yakalama değişiklikleri bir columnset kullanırken desteklemiyor.

Hesaplanan sütunlar

Hayır

Hesaplanmış sütunları değişiklikler izlenmez. Sütun uygun tür değişikliği tablo görünür, ancak null değeri olacaktır.

XML

Evet

xml öğelerini tek tek yapılan değişiklikler izlenmez.

Zaman damgası

Evet

Değişikliği tablo veri türü ikili dönüştürülür.

blob veri türleri

Evet

Önceki resim blob sütun yalnızca sütun değiştirilirse depolanır.

Veri yakalama ve diğer SQL Server özellikleri değiştirme

Bu bölüm, aşağıdaki özellikler değişiklik veri yakalama ile etkileşimini açıklar:

  • Veritabanı yansıtma

  • İşlem çoğaltması

  • Veritabanı geri yükleme veya ekleme

Veritabanı Yansıtma

Değişiklik veri yakalama için etkinleştirilmiş bir veritabanını yansıtılabilir. Yakalama ve Temizleme otomatik olarak yansıtmayı olur emin olmak için şu adımları izleyin:

  1. Emin SQL ServerAgent yansıtmayı çalışıyor.

  2. Anapara yansıtma üzerinden başarısız olduktan sonra yakalama iş ve temizleme işi yansıtmayı oluşturun. İşleri oluşturmak için saklı yordam kullanın sys.sp_cdc_add_job (Transact-sql).

Veritabanı yansıtma hakkında daha fazla bilgi için bkz: (SQL Server) yansıtma veritabanı.

Işlem çoğaltma

Değişiklik veri yakalama ve işlem çoğaltma aynı veritabanında bir arada bulunabilir, ancak her iki özellikleri etkinleştirildiğinde değişiklik tabloları nüfusun farklı ele alınır. Değişiklik veri yakalama ve işlem çoğaltma her zaman aynı yordamı kullanın sp_replcmds, değişiklikler işlem günlüğünden okumak için. Değişiklik veri yakalama kendi başına, etkin olduğunda bir SQL ServerAracısı iş görüşmeleri sp_replcmds. Daha fazla bilgi için, bkz. NIB - Capture Job. Günlük Okuma Aracısı aynı veritabanında her iki özellikleri etkinleştirildiğinde, çağrı sp_replcmds. Bu aracı, değişiklik tabloları ve dağıtım veritabanı tablolarını doldurur. Daha fazla bilgi için, bkz. Günlük Okuma Aracısı çoğaltma.

Hangi değişiklik veri yakalama üzerinde etkin bir senaryo düşünün AdventureWorks2012 veritabanı ve iki tablo için yakalama etkinleştirilir. Tabloları değiştirmek doldurmak için yakalama iş görüşmeleri sp_replcmds. Veritabanı işlem çoğaltma için etkin ve yayın oluşturulur. Şimdi, Log Reader Agent için veritabanı oluşturulur ve yakalama iş silinir. Log Reader Agent, son günlük sıra numarası değişikliği tablo için kaydedilen günlükten taramaya devam eder. Bu değişiklik tabloları veri tutarlılığı sağlar. Bu veritabanı işlem çoğaltma devre dışıysa, günlük Okuma Aracısı kaldırılır ve yakalama iş yeniden oluşturulur.

[!NOT]

Günlük Okuma Aracısı değişiklik veri yakalama hem işlem çoğaltma için kullanıldığında, çoğaltılmış değişiklikler ilk dağıtım veritabanına yazılır. Daha sonra yakalanan değişiklikler değişiklik tabloları için yazılır. Her iki işlem birlikte taahhüt ediyoruz. Yoksa herhangi bir gecikme dağıtım veritabanına yazma, olacak ilgili bir gecikme önce değişiklik tabloları değişiklikleri görünür.

Geri yükleme veya değişiklik veri yakalama için etkinleştirilmiş bir veritabanını iliştirmek

SQL Serverbir veritabanı ekli veya geri sonra değişiklik veri yakalama etkin kalır eğer belirlemek için aşağıdaki mantık kullanır:

  • Bir veritabanı, aynı veritabanı adı ile aynı sunucuya geri, değişiklik veri yakalama etkin kalır.

  • Bir veritabanı başka bir sunucuya geri varsayılan değişiklik veri yakalama devre dışı bırakılır ve tüm ilgili meta veriler silinir.

    Değişiklik veri yakalama korumak için KEEP_CDCveritabanını geri yüklerken seçeneği. Bu seçenek hakkında daha fazla bilgi için bkz: geri.

  • Bir veritabanı ilişkisi kesildi ve aynı sunucu veya başka bir sunucuya bağlı, değişiklik veri yakalama etkin kalır.

  • Veritabanı ekli veya geri ile KEEP_CDCdeğişiklik veri yakalama gerektirdiğinden Enterprise, işlem dışında herhangi bir baskı seçeneğine engelleniyor SQL Serverkuruluş. Hata iletisi 932 görüntülenme:

    SQL Server cannot load database '%.*ls' because change data capture is enabled. The currently installed edition of SQL Server does not support change data capture. Either disable change data capture in the database by using a supported edition of SQL Server, or upgrade the instance to one that supports change data capture.

Sen-ebilmek kullanma sys.sp_cdc_disable_db değişiklik veri yakalama geri yüklenen veya ekli bir veritabanından kaldırmak için.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Değişiklik izleme

Değişiklik izleme, bir tablodaki satırların değiştirildi, ancak değiştirilen verileri yakalamak değil aslında yakalar. Bu uygulamaları doğrudan kullanıcı tablolardan elde son satırdaki verilerle değiştirilen satırları belirlemek için etkinleştirir. Bu nedenle, değişiklik izleme Değiştir veri yakalama için göre cevap verebilir historical soruları daha sınırlıdır. Ancak tarihsel bilgi gerektirmeyen bu uygulamalar için orada daha az depolama yükü nedeniyle değişen verilere değil esir. Bir zaman uyumlu izleme mekanizması, değişiklikleri izlemek için kullanılır. Bu en az yükü dml işlemleri için tasarlanmıştır.

Değişiklik izleme kullanarak yararlanacak bir eşitleme senaryo aşağıda gösterilmiştir. Senaryoda, bir uygulama aşağıdaki bilgiler gerekir: bu yana geçen süreyi tablo eşitlendi değiştirilen tablo ve yalnızca geçerli satır verileri tüm satırları. Zaman uyumlu bir mekanizma, değişiklikleri izlemek için kullanıldığından, bir uygulama iki yönlü eşitlemeyi gerçekleştirmek ve güvenilir bir şekilde oluşmuş olabilir herhangi bir çakışma algılama.

Değişiklik izleme kavramsal çizimi

İzleme ve Eşitleme Hizmetleri için ado değiştirin.NET

ADO.NET için Sync Servicesveritabanları, çevrimdışı hedefleyen uygulamalar oluşturmanıza olanak sağlayan kolay ve esnek bir API sağlayan ve birlikte çalışma senaryoları arasında senkronizasyon sağlar. ADO.NET için Sync Servicesdeğişiklikleri eşitlemek için bir API sağlar ama aslında sunucu ya da eş veritabanı değişiklikleri izlemez. Özel bir değişiklik izleme sistemi oluşturabilir, ancak bu genellikle önemli karmaşıklığı ve performans ek yükünü tanıtır. Bir sunucu veya eş veritabanı değişiklikleri izlemek için değişiklik izlemeyi de kullanmanızı öneririz SQL Server 2012çünkü yapılandırmak kolaydır ve yüksek performans izleme sağlar.

Değişiklik izleme hakkında daha fazla bilgi ve ADO.NET için Sync Services, aşağıdaki bağlantıları kullanın:

  • Değişiklik izleme hakkında

    Değişiklik izleme açıklar, nasıl değişiklik izleme çalışır ve değişiklik izleme birbirleriyle nasıl etkileşim kurduğu açıklanır üst düzey bir genel bakış sağlar SQL Server Veritabanı Altyapısıözellikleri.

  • Microsoft Eşitleme Framework Geliştirici Merkezi

    Tam belgeleri sağlar Sync Frameworkve Sync Services. Belgelerindeki Sync Services, "nasıl: Use SQL Server Değiştir izleme" konusuna ayrıntılı bilgi ve kod örnekleri içerir.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

İlgili görevler (gerekli)

Görev

Konu

Veri yakalama Değiştir'e genel bakış sağlar.

Değişiklik veri yakalama hakkında

Bir veritabanı veya tablo veri yakalama Değiştir devre açıklar.

Değişiklik veri yakalama devre

Değişiklik veri yakalama izlemek ve yönetmek açıklar.

Yönetme ve izleme verisini Değiştir yakalama

Değişiklik veri yakalama tüketicilere yönelik değişiklik verilerle çalışmak açıklar. Bu konu, doğrulama lsn sınırları, sorgu işlevleri ve sorgu işlev senaryoları kapsar.

Değişiklik veri ile çalışmak

Değişiklik izleme genel bakış sağlar.

Değişiklik izleme hakkında

Bir veritabanı veya tablo veri yakalama Değiştir devre açıklar.

Değişiklik izlemeyi devre

Değişiklik izleme yönetme, güvenlik yapılandırma ve değişiklik izleme kullanıldığında depolama ve performans etkileri belirlemek açıklar.

Değişiklik izleme yönetme

Nasıl değişiklik izleme kullanan uygulamalar izlenen değişiklikleri edinmek, bu değişiklikleri uygulamak için başka bir veri deposu ve kaynak veritabanını güncelleştirme açıklanır. Bu konuda da çalış devretme oluşur ve veritabanını yedekten geri yüklenmesi gerekir izleme rol değişikliği anlatılmaktadır.

Değişiklik izleme ile çalışmak

Ayrıca bkz.

Başvuru

İşlevler (Transact-sql) verisini Değiştir yakalama

Veri yakalama değiştirmek depolanan yordamlar (Transact-sql)

Ilgili dinamik yönetim görünümleri (Transact-sql) verisini Değiştir yakalama

Kavramlar

Değişiklik izleme işlevler (Transact-sql)

Diğer Kaynaklar

Tabloları (Transact-sql) verisini Değiştir yakalama