24 Ekim 2010 Pazar

SQL Server 2008 - CDC (Change Data Capture) ile Verilerinizdeki Değişikliklerden Haberdar Olun

CDC, SQL Server 2008 ile gelen bir başka önemli özellik.

Verilerinizdeki değişiklikleri CDC kullanarak denetleyebilirsiniz.



CDC, bir tablodaki, insert, update ve  delete işlemlerini yakalayıp, değişiklikleri başka bir tabloya yazar.

Aşağıdaki kodu kullanarak bir tablodaki değişikliklerin kayıtlarını tutmaya başlayabilirsiniz.

--Bir veritabanında CDC seçeneği açık değilse aşağıdaki sistem prosedürü çalıştırılır ve CDC o veri tabanı için aktif hale getirilir.
EXEC sys.sp_cdc_enable_db_change_data_capture


--Değişiklikleri kaydetmek istediğiniz her tablo için de, aşağıdaki prosedürü çalıştırarak, ilgili tablo için CDC yi aktif hale getirebilirsiniz.

EXEC sys.sp_cdc_enable_table_change_data_capture
          @source_schema = 'dbo',
          @source_name = 'myTable',
          @role_name = 'cdc'


CDC tablosundaki verileri okuyabilmek ve diğer CDC işlemleri  için hazırlanmış bir çok sistem prosedürü ve fonksiyonu hazır olarak sunulur.

Sistem prosedürleri :

  • sys.sp_cdc_add_ job
  • sys.sp_cdc_ generate_wrapper_ function
  • sys.sp_cdc_change_ job
  • sys.sp_cdc_ get_captured_columns
  • sys.sp_cdc_cleanup_change_table
  • sys.sp_cdc_ get_ddl_history
  • sys.sp_cdc_disable_db
  • sys.sp_cdc_help_change_data_capture
  • sys.sp_cdc_disable_table
  • sys.sp_cdc_help_ jobs
  • sys.sp_cdc_scan
  • sys.sp_cdc_enable_db
  • sys.sp_cdc_start_ job
  • sys.sp_cdc_enable_table
  • sys.sp_cdc_stop_ job
  • sys.sp_cdc_drop_ job
Sistem fonsiyonları :
  • cdc.fn_cdc_ get_all_changes_<capture_instance>
  • sys.fn_cdc_has_column_changed
  • cdc.fn_cdc_ get_net_changes_<capture_instance>
  • sys.fn_cdc_increment_lsn
  • sys.fn_cdc_decrement_lsn
  • sys.fn_cdc_is_bit_set
  • sys.fn_cdc_ get_column_ordinal
  • sys.fn_cdc_map_lsn_to_time
  • sys.fn_cdc_ get_max_lsn
  • sys.fn_cdc_map_time_to_lsn
  • sys.fn_cdc_ get_min_lsn

Hiç yorum yok: