Как добавить больше столбцов в существующую таблицу изменения данных (CDC) без потери данных - PullRequest
1 голос
/ 14 июня 2019

У меня есть таблица в Microsoft SQL Server 2008, для которой я уже включил CDC с 5 столбцами.Он уже запущен и работает на производстве и имеет тысячи записей.Теперь мне нужно добавить 4 новых столбца в одну и ту же таблицу и включить сбор данных для новых добавленных столбцов.

Я попробовал следующий сценарий: 1. Создал новый временный экземпляр для CDC и скопировал все данные из оригинала.CDC для экземпляра tempCDC.Теперь заново создайте экземпляр CDC с оригинальным именем и скопируйте все данные из временного экземпляра.

Но в этом случае начальные столбцы Lsn в CDC.change_tables будут сброшены.Я сохранил исходный стартовый Lsn и заменил его на исходный стартовый Lsn также в таблице CDC change_tables.

Но все равно он не работает, и кажется, что при воссоздании экземпляра он сбрасывает стартовый Lsn на некоторыхмест внутри.

Таким образом, я не могу просмотреть отчет на основе таблицы с поддержкой CDC.

1 Ответ

0 голосов
/ 22 июня 2019

Следующий запрос решил мою цель.

DECLARE @startLsn binary(10)

SELECT @startLsn = MIN([__$start_lsn]) FROM [cdc].[dbo_City_CT]

UPDATE [cdc].[change_tables] set [start_lsn] =@startLsn
WHERE [capture_instance] ='dbo_City';

Где [cdc]. [Dbo_City_CT] - воссозданная таблица конечного экземпляра, включающая все новые столбцы вместе со всемисуществующие данные.

Итак.Эта команда должна выполняться наконец после «воссоздания экземпляра и восстановления старых данных».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...