У меня есть локальная база данных SQL Server, в которой я копирую большие объемы данных из удаленной базы данных SQL Server и в нее. Локальная версия - 2008 год, а удаленная версия - 2012 год.Копирование больших объемов данных в реплицируемую базу данных
Удаленная БД имеет репликацию транзакций, настроенную на одну локальную БД и другую удаленную БД. Все это прекрасно работает.
Я создал пакет SSIS, который опустошает таблицы назначения (удаленная БД), а затем использует объект Data Flow
для добавления данных из источника. Для гибкости у меня есть каждая таблица в своем собственном Sequence Container
(это позволяет мне запускать одну или несколько таблиц за раз). Настройки потока данных установлены на Keep Identity
.
В настоящее время перед запуском пакета SSIS я удаляю параметры репликации и запускаю пакет. Как только пакет завершится, я снова создаю настройки репликации и повторно инициализирую подписчиков.
Я делаю это так (удаление репликации, а затем воссоздание) из страха перегрузки сервера с помощью команд репликации. Хотя большинство таблиц составляют от 10 до 1000 строк, пара из них превышает 35 миллионов.
Есть ли рекомендуемый способ опорожнения и повторной загрузки данных большой реплицированной базы данных?
Я не хочу реплицировать свою локальную БД на удаленный БД, поскольку это не всегда было бы уместно, и выполнение обратной задачи и восстановление локальной БД также не работало бы из-за характера более сложных разрешений, и т. д. на удаленной БД.
Это не конец света, чтобы каждый раз создавать и изменять параметры репликации, так как у меня есть все сценарии. Я просто уверен, что должен быть рекомендованный способ управления этим ...
Если вы используете Enterprise Edition, проверьте CDC (Change Data Capture). Он в основном просто регистрирует изменения данных, тем самым уменьшая объем данных, которые вам нужно загрузить. – SchmitzIT
@SchmitzIT Спасибо. Но это не EE :( – TechyGypo
, как говорит SchmitzIT, CDC может помочь вам (мы используем его с той же целью). В качестве альтернативы вы можете реализовать некоторые другие способы добавления/обновления новых данных, а не перезаписи всей таблицы. триггер и фиксировать все изменения в данных таблиц, а затем обрабатывать их в вашем пакете SSIS тремя способами: удаляет/обновляет/вставляет. –