-->
Здесь я публикую небольшие мои заметки, а также интересные ссылки, все что связанно с моей профессией. Для перехода на персональный сайт, используйте ссылку http://k-semenenko.blogspot.com

четверг, 25 ноября 2010 г.

Использование Change Data Capture (CDC) in SQL Server 2008.

Пару дней назад на работе возникала необходимость в одном из проектов отслеживания изменений в базе данных. Задача такая: есть насколько таблиц, которые нужно мониторить на предмет операций Insert, update и delete. Сначала, решили исползовать аудит, но он не давал нам необходимой информации, такой как с какого на какое значение быль выполнен update или что именно было удалено и т.п. Поискав решения вспомнил о SQL Server СDC (Change Data Capture). Никогда раньше не использовал эту службу и вот что нарыл:

use SRPV
go

Активация CDC-функционала для конкретной  базы данных

exec sys.sp_cdc_enable_db

Ппроверяем что значение поля is_cdc_enabled в sys.databases изменилось для БД SRPV. Это признак того что для указанной БД активирована служба CDC.

select name, is_cdc_enabled from sys.databases

Активируем CDC для конкретной таблицы (в данном примере это таблица WaggonsSend). Будет созданно 2 job-а. cdc.test_new_capture и cdc.test_new_cleanup
Для добавления таблицы указываем ее имя в @source_name.

exec sys.sp_cdc_enable_table
    @source_schema = 'dbo',
    @source_name = 'WaggonsSend' ,
    @role_name = 'CDC_Admins',
    @supports_net_changes = 1

Проверяем  таблица установлена источником СDC
 
select name, type, type_desc, is_tracked_by_cdc, * from sys.tables
where name in ('dbo_WaggonsSend')

Просмотр всех объектов созданных для обеспечения функционирования CDC.

select o.name, o.type, o.type_desc, s.name from sys.objects o
join sys.schemas  s on s.schema_id = o.schema_id
where s.name = 'cdc'

Просмотр изменений в таблице можно просмотреть так:

use SRPV
DECLARE @begin_lsn binary(10), @end_lsn binary(10)
SET @begin_lsn = sys.fn_cdc_get_min_lsn('dbo_WaggonsSend')
SET @end_lsn   = sys.fn_cdc_get_max_lsn()
select tm.tran_begin_time,
        tm.tran_end_time,
        tm.tran_id,
    CASE __$operation
     when 1 then  'delete'
      when 2 then  'insert'
     when 3 then  'update (before the update)'
     when 4 then  'update (after the update)'
    end operation,
    ch.*
from cdc.fn_cdc_get_all_changes_dbo_WaggonsSend(@begin_lsn, @end_lsn, 'all update old') ch
left join cdc.lsn_time_mapping tm on ch.__$start_lsn=tm.start_lsn

Просмотр джобов отвечающих за работу CDC (здесь можно просмотреть такие параметры как
pllinginterval - с какой периодичностью в сек. движок будет сканировать транзакшн лог и заполнять хранилище информации
retention - количество минут сколько будет храниться инфа в хранилище. Отчисткой занимается джоб cdc.test_new_cleanup, запускаемый 1 разв неделю)

use msdb
select * from dbo.cdc_jobs

Редактирование этих параметроов

EXEC [sys].[sp_cdc_change_job]
    @job_type = N'capture',
    @pollinginterval = 5  --раз в пять секунд движок CDC будет сканировать транзакшн лог и пополнять хранилище информацией. Делается это джобом cdc.test_new_capture, который запущен всегда, т.е. один раз запущен и находится в статусе Running постоянно.

EXEC [sys].[sp_cdc_change_job]
    @job_type = N'cleanup',
    @retention = 10080 --  10080 минут - это 7 дней. Именно столько я установил для хранения истории в хранилище.


Просмотр всех таблиц на которых сконфигурированна CDC в текущей БД
EXECUTE sys.sp_cdc_help_change_data_capture;


Хранилище это системные таблицы, созданные в процессе конфигурирования CDC. Информацию из можно селектить как с помощью хп cdc.fn_cdc_get_all_changes_dbo_WaggonsSend (синтаксис я указывал выше) так и напрямую

 select * from cdc.dbo_WaggonsSend_CT
where bla-bla-bla

А здесь подробнейшая информация на эту тему =))

суббота, 20 ноября 2010 г.

Экзамены по новой версии SQL Server code-named Denali

Экзамены по новой версии SQL Server code-named Denali: "

По новой версии SQL Server 'Denali' планируются к выпуску следующие экзамены:


70-460 PRO: Designing, Optimizing and Maintaining a Database Administrative Solution Using Microsoft SQL Server 11
70-461 PRO: Designing Database Solutions and Data Access Using Microsoft SQL Server 11
70-586 TS: Microsoft SQL Server 11, Implementation and Maintenance
70-587 TS: Microsoft® SQL Server 11, Database Development
70-588 TS: Microsoft SQL Server 11, Business Intelligence Development and Maintenance


Post from: http://shomin.info

Экзамены по новой версии SQL Server code-named Denali




Related posts:

  1. SQL Server code-named “Denali” Выпущен CTP1 новой версии SQL Server - “Denali”. Подробности здесь: code-named “Denali” web page CTP Books Online Post from: http://shomin.infoSQL Server code-named “Denali”...

  2. SQL Server 2005 Подробности смотрите в моей публикации Курсы SQL Server 2005 – что выбрать?   MCTS: SQL Server 2005 Требования: Экзамен 70-431 TS: Microsoft SQL Server 2005 - Implementation and Maintenance Курсы для подготовки: Курс 2778: Writing Queries Using Microsoft SQL Server 2008 Transact-SQL (3 дня) (этот курс рассчитан на обе версии...

  3. Экзамены по Visual Studio 2010 Начато создание экзаменов по Visual Studio 2010. Планируются к выпуску следующие экзамены: 70-511 TS: Microsoft .NET Framework 4, Windows Applications Development (WPF) 70-515 TS: Microsoft .NET Framework 4, Web Applications Development 70-513 TS: Microsoft .NET Framework 4, Windows Communication Foundation Development 70-516 TS: Microsoft .NET Framework 4, Accessing Data with...

"

среда, 10 ноября 2010 г.

Мелкая, но приятная фича SQL Server Denali - Sequence numbers!

Новая версия SQL Server-а дает возможность заюзать нам SEQUENCE NUMBERS- генерация последовательных значений и на всегда забыть чтото типа NextID или GenID или identity полей. Приятного чтения =)) http://msdn.microsoft.com/en-us/library/ff878058%28v=SQL.110%29.aspx

--
BR Semenenko Konstantin

Вышла CTP версия нового SQL Server Denali и SQL Server 2008 R2 Parallel Data Warehouse.

Что нового в  SQL Server Denali CTP относительно R2?  (статья на русском http://www.gotdotnet.ru/blogs/DeColores/8895/ 


Что такое SQL Server 2008 R2 Parallel Data Warehouse - http://blogs.technet.com/b/dataplatforminsider/archive/2010/11/09/parallel-data-warehouse-is-now-available.aspx
--
BR Semenenko Konstantin