Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
sqlman Member Откуда: Киев Сообщений: 272 |
Добрый день. Как известно, для достижения инкрементальной загрузки данных CDC (именно логов) нужно изначально выполнить Initial data load в CDC Control Task. При этом, для получения соответствующего CDC state нужно выполнить переливку самих данных (не логов CDC) в этой самой фазе Initial data load. Не понимаю логики такой работы. Так как стоит задача именно инкрементального переноса лого CDC из одной базы в другую. При чём тут данные? Не могли бы вы прояснить логику такого подхода? Спасибо. |
12 май 15, 12:28 [17628150] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
Так для размышления: в логах SQL Server'а хранятся данные. |
||
12 май 15, 20:48 [17630877] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8488 |
Имеется в виду SSIS пакет. Полагаю, речь идет о первичной синхронизации и автор не понимает - для чего она требуется. |
12 май 15, 21:32 [17631086] Ответить | Цитировать Сообщить модератору |
sqlman Member Откуда: Киев Сообщений: 272 |
Mind, Понятно, что "логи CDC" = "Отчет о работе CDC что-ли". Что ещё??? Задача построить аудит с помощью CDC, с хранением данных в отдельной базе. Всё просто. |
13 май 15, 13:48 [17634041] Ответить | Цитировать Сообщить модератору |
sqlman Member Откуда: Киев Сообщений: 272 |
Автор не понимает зачем первоначально синхронизировать данные исходной таблицы, когда требуется синхронизация только данных CDC. |
||
13 май 15, 13:49 [17634053] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8488 |
sqlman, чтобы гарантировать целостность данных. Первоначальная заливка + последующая заливка изменений как раз гарантирует идентичность данных на отправителе и получаеле. Получатель изначально может содержать некорректные данные, проще перелить, чем проверять, вероятно. |
13 май 15, 15:50 [17635182] Ответить | Цитировать Сообщить модератору |
Ivan Durak Member Откуда: Minsk!!! Сообщений: 3663 |
хороший вопрос. CDC это изменения. На что вы собрались накатывать изменения? Подсказываю - на исходные данные |
||
13 май 15, 16:35 [17635485] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||||
13 май 15, 20:05 [17636589] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4822 |
Выставите в исходной таблице ROWVERSION и отталкивайтесь от неё. |
13 май 15, 20:53 [17636740] Ответить | Цитировать Сообщить модератору |
Alexander Ryndin Member Откуда: Сообщений: 4918 Блог |
Change Data Capture - это никакой не тул для репликация (для этого у MSSQL есть другие инструменты) и никуда CDC накатывать данные не обязан. CDC - это захват изменений. Точка. Он регистрирует факт изменения, а что потом с ними делать - это уже другой вопрос. Я не специалист по Microsoft CDC, но давайте расскажу на примере того, что я знаю хорошо - GoldenGate. GoldenGate - это, в одной стороны, средство для захвата изменений. Он парсит Transaction Log MSSQL и если необходимо лезет в Backup за резервной копией старого лога. Распарсенный лог содержит вектор изменений (для INSERT это новые значения, для UPDATE старые и новые, для DELETE только старые). Этот вектор изменений пишется в специальные файлы на диске, которые потом транслируются на целевые системы. Дальше эти вектора изменений можно использовать по разному: 1) можно реконструировать исходную команду (UPDATE, DELETE, INSERT) и тогда вы получите репликацию 2) а можно превратить все UPDATE, DELETE, INSERT в INSERT, добавив поля с типом операции, временем commit, пользователем, совершившим изменение, временем захвата и т.д. Так вот, в первом случае вам действительно нужна начальная копия, чтобы в нее реплицировать, а во втором случае ничего синхронизировать не нужно. Целевая таблица будет изначально пустая, на ней будут отключены первичные и уникальные ключи, да и остальные constraint тоже. И нее будут вставляться все изменения. Получится как раз то, что вы хотите - таблица аудита или истории (кто как называет). Часто делают оба вариант и получают stage область, полезную для загрузки хранилища данных. |
||||
14 май 15, 00:41 [17637485] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||||||
14 май 15, 20:11 [17641801] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |