Вот некоторые вещи, которые следует учитывать из моего опыта.
, если у вас нет их уже добавить последний измененный столбец DATETIME в каждый таблицы. Убедитесь, что он автоматически устанавливает значение getdate(). Этот триггер также может захватывать удаления в локальную таблицу для периодической передачи в таблицу промежуточного назначения. (Если это невозможно, у вас может быть «локальная» таблица с данными за последние X месяцев и сравнить с ней, чтобы обнаружить изменения? Возможно, сохраните первичный ключ и контрольную сумму, которую вы можете сравнить с контрольной суммой в реальном времени)
создайте все ваши таблицы преобразования в старой базе данных или в отдельной базе данных, чтобы в один прекрасный день вы могли отключить все. На новом сервере рассмотрит отдельную БД для хранения ваших импорта промежуточных таблиц и хранимые выхлопатывает, которые делают реального импорт
рассмотреть модернизацию старой базы данных, чтобы получить лучшую производительность возможности - или оставить старый и медленным, так что вы есть, чтобы уйти в отставку!
Я не знаю CDC, поэтому не могу посоветовать, но я делал это несколько раз, поэтому у меня есть шрамы и каждый раз выучились из предыдущего.
У меня будет таблица, в которой будет храниться ваше последнее время синхронизации в строке для каждой таблицы. Затем вы можете создать представление или запрос, который должен быть скопирован в таблицы постановочных
В вашей промежуточной БД, создать sprocs, которые будут делать слияние каждой таблицы
надеюсь, у вас есть удалить флаги на таблицы или может стать беспорядочным. Вам могут потребоваться триггеры, чтобы скопировать эти данные до их появления. Затем вы можете пометить его в своих промежуточных таблицах
построить систему вытяжки и расписание с соответствующей частотой. Запишите метаданные, чтобы вы могли с легкостью сообщить об этом
создать отдельную систему импорта с отчетностью. Эта сторона может быть сложной, чтобы получить зависимость в правильном порядке.использования SSIS для управления порядком, когда таблицы импортируются, но вы можете найти его проще для разработки и тестирования, если фактический импорт осуществляется хранимыми процедурами в базе данных импорта
считает сохранение данных промежуточной базы данных, но использование метка времени, чтобы показать, когда применяются импортные/обновленные/удаленные изменения (а также даты и время изменения в исходной системе) в случае, если есть вопросы
- вы говорите, что это один из способов интерфейса. Я согласен, что теперь вы должны публично говорить. Однако в конце этого проекта может оказаться полезным изменить интерфейс, чтобы старая система была заполнена новой (для кодовых таблиц, чтобы они оставались в очереди или некоторые транзакционные данные).
В других случаях вам может понадобиться округлить поездку от старого к новому и обратно в Старый или N> O> N, так что вы можете получить первичные данные ключа из обеих систем, доступных для других экстрактов
- база данных назначения, которая еще разрабатывается? Если это связано с разработчиками в ваших планах и с пользователями!
убедитесь, что ваши пользователи подписались на всех кодовых таблицах, которые они будут использовать для классификации данных в приложении. Убедитесь, что они понимают, как вы будете сопоставлять старые и новые коды. Это может означать, что если у вас есть несколько новых кодов из старого кода, они должны будут обновить их вручную, к счастью, вы сохранили метаданные, чтобы они могли получать ежедневный отчет, чтобы они знали, что проверить!
Являются ли две базы данных на разных серверах? Как долго вы должны их синхронизировать? Это целая схема или только несколько таблиц? Являются ли структуры похожими или у вас есть много поисков для преобразования данных? – Mike
Да на разных серверах. Мне нужно, чтобы они синхронизировались в течение года. Структуры таблиц различаются так много поисков, отображений и преобразований. –
Итак, вы будете делать это уже 3 года! Какой у вас объем изменений? – Mike