Хранимые процедуры системы отслеживания измененных данных (Transact-SQL)

Административные скрипты MS SQL > Хранимые процедуры системы отслеживания измененных данных (Transact-SQL)
10.04.2013 17:12:00



Статья:

sys.sp_cdc_add_job Создает задание очистки или записи системы отслеживания информации об изменениях в текущей базе данных.

А. Создание задания записи

В следующем примере создается задание отслеживания. В этом примере предполагается, что существующее задание очистки было явным образом удалено и его необходимо создать повторно. Задание создается с использованием значений по умолчанию.

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

Б. Создание задания очистки

В следующем примере создается задание очистки в базе данных AdventureWorks2008R2. Параметр @start_job имеет значение 0, а аргумент @retention — 5 760 минут (96 часов). В этом примере предполагается, что существующее задание очистки было явным образом удалено и его необходимо создать повторно.

USE AdventureWorks2008R2;
GO
EXEC sys.sp_cdc_add_job
     @job_type = N'cleanup'
    ,@start_job = 0
    

 

sys.sp_cdc_change_job Изменяет конфигурацию задания очистки системы отслеживания измененных данных или задания записи в текущей базе данных. Чтобы просмотреть текущие настройки задания, необходимо выполнить запрос к таблице dbo.cdc_jobs либо использовать процедуру sp_cdc_help_jobs.

А. Изменение задания записи

В следующем примере обновляется значение параметров @job_type, @maxscans и @maxtrans задания отслеживания в базе данных AdventureWorks2008R2. Другие допустимые параметры задания отслеживания (@continuous и @pollinginterval) пропущены; их значения не изменяются.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

Б. Изменение задания очистки

В следующем примере обновляется задание очистки базы данных AdventureWorks2008R2. Указаны все допустимые для данного типа задания параметры, кроме @threshold. Значение параметра @threshold не изменяется.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'cleanup',
    @retention = 2880;
GO

 

Удаляет строки из таблицы изменений текущей базы данных, основываясь на заданном значении параметра low_water_mark. Данная хранимая процедура используется для прямого управления процессом очистки таблицы изменений. Данную процедуру необходимо использовать с большой осторожностью, так как ее выполнение затрагивает всех потребителей данных таблицы изменений.

sys.sp_cdc_cleanup_change_table 
  [ @capture_instance = ] 'capture_instance', 
  [ @low_water_mark = ] low_water_mark ,
  [ @threshold = ]'delete threshold'

 

sys.sp_cdc_disable_db Отключает систему отслеживания измененных данных в текущей базе данных. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

sys.sp_cdc_disable_table Отключает систему отслеживания измененных данных для указанной исходной таблицы, а также отключает экземпляр отслеживания в текущей базе данных. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

sys.sp_cdc_disable_table 
  [ @source_schema = ] 'source_schema' , 
  [ @source_name = ] 'source_name'
  [ , [ @capture_instance = ] 'capture_instance' | 'all' ]

 

sys.sp_cdc_drop_job Удаляет из базы данных msdb задание очистки или задание отслеживания системы отслеживания измененных данных для текущей базы данных.

sys.sp_cdc_drop_job [ [ @job_type = ] 'job_type' ]
 
sys.sp_cdc_enable_db Включает систему отслеживания измененных данных для текущей базы данных. Эту процедуру необходимо выполнить в базе данных, чтобы для таблиц в этой базе можно было включить систему отслеживания измененных данных. Система отслеживания измененных данных регистрирует действия по вставке, обновлению и удалению, применяемые к таблицам, для которых включена система, предоставляя сведения об операциях изменения в легко обрабатываемом реляционном формате. Данные столбца, зеркально копирующего структуру столбцов отслеживаемой исходной таблицы, регистрируются для измененных строк вместе с метаданными, необходимыми для применения изменений к целевой среде. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

 

sys.sp_cdc_enable_table Активирует систему отслеживания измененных данных в указанной исходной таблице текущей базы данных. Когда таблица доступна для системы отслеживания измененных данных, запись каждой операции языка обработки данных DML, применяемая к каждой из таблиц, записывается в журнал транзакций. Процесс системы отслеживания измененных данных получает эти сведения из журнала и записывает их в таблицу изменений, к которой осуществляется доступ с помощью набора функций.

Отслеживание информации об изменениях доступно только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

sys.sp_cdc_enable_table 
    [ @source_schema = ] 'source_schema', 
    [ @source_name = ] 'source_name' ,
    [ @role_name = ] 'role_name'
    [,[ @capture_instance = ] 'capture_instance' ]
    [,[ @supports_net_changes = ] supports_net_changes ]
    [,[ @index_name = ] 'index_name' ]
    [,[ @captured_column_list = ] 'captured_column_list' ]
    [,[ @filegroup_name = ] 'filegroup_name' ]
  [,[ @partition_switch = ] 'partition_switch' ]

 

sys.sp_cdc_generate_wrapper_function Формирует сценарии для создания функций-оболочек для функций запроса к системе отслеживания измененных данных, имеющихся в SQL Server. API-интерфейс, который поддерживается в формируемых оболочках, позволяет указать интервал запроса как интервал datetime. Поэтому такую функцию полезно использовать во многих приложениях хранилищ данных, включая разработанные создателями пакета служб Integration Services, использовавшими технологию системы отслеживания измененных данных для определения добавочной нагрузки.

sys.sp_cdc_generate_wrapper_function
    [ [ @capture_instance sysname = ] 'capture_instance'
    [ , [ @closed_high_end_point = ] closed_high_end_pt
    [ , [ @column_list = ] 'column_list'
 
sys.sp_cdc_get_captured_columns Возвращает сведения о метаданных системы отслеживания измененных данных для исходных столбцов, отслеживаемых указанным экземпляром отслеживания. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.
sys.sp_cdc_get_captured_columns 
    [ @capture_instance = ] 'capture_instance'

sys.sp_cdc_get_ddl_history Возвращает журнал изменений языка DDL, связанный с заданным экземпляром записи, со времени включения системы отслеживания измененных данных для этого экземпляра записи. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'

sys.sp_cdc_help_change_data_capture Возвращает конфигурацию системы отслеживания измененных данных для каждой таблицы, включенной для системы отслеживания измененных данных в текущей базе данных. Для каждой исходной таблицы может возвращаться до двух строк — по одной строке для каждого экземпляра отслеживания. Система отслеживания измененных данных доступна только в следующих выпусках SQL Server 2008: Enterprise Edition, Developer Edition и Evaluation Edition.

sys.sp_cdc_help_change_data_capture 
  [ [ @source_schema = ] 'source_schema' ]
  [, [ @source_name = ] 'source_name' ]

sys.sp_cdc_help_jobs Выдает сведения о всех заданиях очистки системы отслеживания измененных данных и заданиях записи в текущей базе данных.

 

sys.sp_cdc_scan Выполняет операцию просмотра журнала системы отслеживания измененных данных.

sys.sp_cdc_scan [ [ @maxtrans = ] max_trans ] 
     [ , [ @maxscans = ] max_scans ] 
     [ , [ @continuous = ] continuous ] 
     [ , [ @pollinginterval = ] polling_interval ] 
 

sys.sp_cdc_start_job  Запускает задание отслеживания или очистки данных изменений для текущей базы данных.

sys.sp_cdc_start_job [ [ @job_type = ] 'job_type' ]

 

sys.sp_cdc_stop_job Останавливает задание очистки или задание отслеживания системы отслеживания измененных данных для текущей базы данных.

 sys.sp_cdc_stop_job [ [ @job_type= ] 'job_type' ]